diff --git a/bun.lock b/bun.lock index deeda06465..88d9635491 100644 --- a/bun.lock +++ b/bun.lock @@ -319,7 +319,7 @@ "@actions/core": "1.11.1", "@actions/github": "6.0.1", "@agentclientprotocol/sdk": "0.16.1", - "@ai-sdk/amazon-bedrock": "4.0.83", + "@ai-sdk/amazon-bedrock": "4.0.93", "@ai-sdk/anthropic": "3.0.67", "@ai-sdk/azure": "3.0.49", "@ai-sdk/cerebras": "2.0.41", @@ -331,7 +331,7 @@ "@ai-sdk/groq": "3.0.31", "@ai-sdk/mistral": "3.0.27", "@ai-sdk/openai": "3.0.48", - "@ai-sdk/openai-compatible": "2.0.37", + "@ai-sdk/openai-compatible": "2.0.41", "@ai-sdk/perplexity": "3.0.26", "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.23", @@ -341,7 +341,6 @@ "@aws-sdk/credential-providers": "3.993.0", "@clack/prompts": "1.0.0-alpha.1", "@effect/platform-node": "catalog:", - "@gitlab/gitlab-ai-provider": "3.6.0", "@gitlab/opencode-gitlab-auth": "1.3.3", "@hono/node-server": "1.19.11", "@hono/node-ws": "1.3.0", @@ -357,7 +356,7 @@ "@opencode-ai/script": "workspace:*", "@opencode-ai/sdk": "workspace:*", "@opencode-ai/util": "workspace:*", - "@openrouter/ai-sdk-provider": "2.4.2", + "@openrouter/ai-sdk-provider": "2.5.1", "@opentui/core": "0.1.97", "@opentui/solid": "0.1.97", "@parcel/watcher": "2.5.1", @@ -413,7 +412,7 @@ }, "devDependencies": { "@babel/core": "7.28.4", - "@effect/language-service": "0.79.0", + "@effect/language-service": "0.84.2", "@octokit/webhooks-types": "7.6.1", "@opencode-ai/script": "workspace:*", "@parcel/watcher-darwin-arm64": "2.5.1", @@ -450,6 +449,7 @@ "version": "1.4.3", "dependencies": { "@opencode-ai/sdk": "workspace:*", + "effect": "catalog:", "zod": "catalog:", }, "devDependencies": { @@ -641,7 +641,7 @@ }, "catalog": { "@cloudflare/workers-types": "4.20251008.0", - "@effect/platform-node": "4.0.0-beta.43", + "@effect/platform-node": "4.0.0-beta.46", "@hono/zod-validator": "0.4.2", "@kobalte/core": "0.13.11", "@lydell/node-pty": "1.2.0-beta.10", @@ -662,13 +662,13 @@ "@types/node": "22.13.9", "@types/semver": "7.7.1", "@typescript/native-preview": "7.0.0-dev.20251207.1", - "ai": "6.0.149", + "ai": "6.0.158", "cross-spawn": "7.0.6", "diff": "8.0.2", "dompurify": "3.3.1", "drizzle-kit": "1.0.0-beta.19-d95b7a4", "drizzle-orm": "1.0.0-beta.19-d95b7a4", - "effect": "4.0.0-beta.43", + "effect": "4.0.0-beta.46", "fuzzysort": "3.1.0", "hono": "4.10.7", "hono-openapi": "1.1.2", @@ -707,7 +707,7 @@ "@agentclientprotocol/sdk": ["@agentclientprotocol/sdk@0.16.1", "", { "peerDependencies": { "zod": "^3.25.0 || ^4.0.0" } }, "sha512-1ad+Sc/0sCtZGHthxxvgEUo5Wsbw16I+aF+YwdiLnPwkZG8KAGUEAPK6LM6Pf69lCyJPt1Aomk1d+8oE3C4ZEw=="], - "@ai-sdk/amazon-bedrock": ["@ai-sdk/amazon-bedrock@4.0.83", "", { "dependencies": { "@ai-sdk/anthropic": "3.0.64", "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.21", "@smithy/eventstream-codec": "^4.0.1", "@smithy/util-utf8": "^4.0.0", "aws4fetch": "^1.0.20" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-DoRpvIWGU/r83UeJAM9L93Lca8Kf/yP5fIhfEOltMPGP/PXrGe0BZaz0maLSRn8djJ6+HzWIsgu5ZI6bZqXEXg=="], + "@ai-sdk/amazon-bedrock": ["@ai-sdk/amazon-bedrock@4.0.93", "", { "dependencies": { "@ai-sdk/anthropic": "3.0.69", "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.23", "@smithy/eventstream-codec": "^4.0.1", "@smithy/util-utf8": "^4.0.0", "aws4fetch": "^1.0.20" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-hcXDU8QDwpAzLVTuY932TQVlIij9+iaVTxc5mPGY6yb//JMAAC5hMVhg93IrxlrxWLvMgjezNgoZGwquR+SGnw=="], "@ai-sdk/anthropic": ["@ai-sdk/anthropic@3.0.64", "", { "dependencies": { "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.21" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-rwLi/Rsuj2pYniQXIrvClHvXDzgM4UQHHnvHTWEF14efnlKclG/1ghpNC+adsRujAbCTr6gRsSbDE2vEqriV7g=="], @@ -1025,11 +1025,11 @@ "@drizzle-team/brocli": ["@drizzle-team/brocli@0.11.0", "", {}, "sha512-hD3pekGiPg0WPCCGAZmusBBJsDqGUR66Y452YgQsZOnkdQ7ViEPKuyP4huUGEZQefp8g34RRodXYmJ2TbCH+tg=="], - "@effect/language-service": ["@effect/language-service@0.79.0", "", { "bin": { "effect-language-service": "cli.js" } }, "sha512-DEmIOsg1GjjP6s9HXH1oJrW+gDmzkhVv9WOZl6to5eNyyCrjz1S2PDqQ7aYrW/HuifhfwI5Bik1pK4pj7Z+lrg=="], + "@effect/language-service": ["@effect/language-service@0.84.2", "", { "bin": { "effect-language-service": "cli.js" } }, "sha512-l04qNxpiA8rY5yXWckRPJ7Mk5MNerXuNymSFf+IdflfI5i8jgL1bpBNLuP6ijg7wgjdHc/KmTnCj2kT0SCntuA=="], - "@effect/platform-node": ["@effect/platform-node@4.0.0-beta.43", "", { "dependencies": { "@effect/platform-node-shared": "^4.0.0-beta.43", "mime": "^4.1.0", "undici": "^7.24.0" }, "peerDependencies": { "effect": "^4.0.0-beta.43", "ioredis": "^5.7.0" } }, "sha512-Uq6E1rjaIpjHauzjwoB2HzAg3battYt2Boy8XO50GoHiWCXKE6WapYZ0/AnaBx5v5qg2sOfqpuiLsUf9ZgxOkA=="], + "@effect/platform-node": ["@effect/platform-node@4.0.0-beta.46", "", { "dependencies": { "@effect/platform-node-shared": "^4.0.0-beta.46", "mime": "^4.1.0", "undici": "^7.24.0" }, "peerDependencies": { "effect": "^4.0.0-beta.46", "ioredis": "^5.7.0" } }, "sha512-6AFRKjJO95dFl5lK/YnJi04uePjQDFi3+K1aXwcz/EfVlRwJ4+lg5O4vbievfKL/hnfcShVp3/eXnNS9tvlMZQ=="], - "@effect/platform-node-shared": ["@effect/platform-node-shared@4.0.0-beta.43", "", { "dependencies": { "@types/ws": "^8.18.1", "ws": "^8.19.0" }, "peerDependencies": { "effect": "^4.0.0-beta.43" } }, "sha512-A9q0GEb61pYcQ06Dr6gXj1nKlDI3KHsar1sk3qb1ZY+kVSR64tBAylI8zGon23KY+NPtTUj/sEIToB7jc3Qt5w=="], + "@effect/platform-node-shared": ["@effect/platform-node-shared@4.0.0-beta.46", "", { "dependencies": { "@types/ws": "^8.18.1", "ws": "^8.19.0" }, "peerDependencies": { "effect": "^4.0.0-beta.46" } }, "sha512-Yzci82XbZ1W3tuiownsJawrJZTGeTrTZKLD0uxdBWCBzlVyqDwoSwRwO5qh33DurJj9B7iS8MDf14fpGRBPNGQ=="], "@electron/asar": ["@electron/asar@3.4.1", "", { "dependencies": { "commander": "^5.0.0", "glob": "^7.1.6", "minimatch": "^3.0.4" }, "bin": { "asar": "bin/asar.js" } }, "sha512-i4/rNPRS84t0vSRa2HorerGRXWyF4vThfHesw0dmcWHp+cspK743UanA0suA5Q5y8kzY2y6YKrvbIUn69BCAiA=="], @@ -1161,8 +1161,6 @@ "@gar/promise-retry": ["@gar/promise-retry@1.0.3", "", {}, "sha512-GmzA9ckNokPypTg10pgpeHNQe7ph+iIKKmhKu3Ob9ANkswreCx7R3cKmY781K8QK3AqVL3xVh9A42JvIAbkkSA=="], - "@gitlab/gitlab-ai-provider": ["@gitlab/gitlab-ai-provider@3.6.0", "", { "dependencies": { "@anthropic-ai/sdk": "^0.71.0", "@anycable/core": "^0.9.2", "graphql-request": "^6.1.0", "isomorphic-ws": "^5.0.0", "openai": "^6.16.0", "socket.io-client": "^4.8.1", "vscode-jsonrpc": "^8.2.1", "zod": "^3.25.76" }, "peerDependencies": { "@ai-sdk/provider": ">=2.0.0", "@ai-sdk/provider-utils": ">=3.0.0" } }, "sha512-8LmcIQ86xkMtC7L4P1/QYVEC+yKMTRerfPeniaaQGalnzXKtX6iMHLjLPOL9Rxp55lOXi6ed0WrFuJzZx+fNRg=="], - "@gitlab/opencode-gitlab-auth": ["@gitlab/opencode-gitlab-auth@1.3.3", "", { "dependencies": { "@fastify/rate-limit": "^10.2.0", "@opencode-ai/plugin": "*", "fastify": "^5.2.0", "open": "^10.0.0" } }, "sha512-FT+KsCmAJjtqWr1YAq0MywGgL9kaLQ4apmsoowAXrPqHtoYf2i/nY10/A+L06kNj22EATeEDRpbB1NWXMto/SA=="], "@graphql-typed-document-node/core": ["@graphql-typed-document-node/core@3.2.0", "", { "peerDependencies": { "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ=="], @@ -1539,7 +1537,7 @@ "@opencode-ai/web": ["@opencode-ai/web@workspace:packages/web"], - "@openrouter/ai-sdk-provider": ["@openrouter/ai-sdk-provider@2.4.2", "", { "peerDependencies": { "ai": "^6.0.0", "zod": "^3.25.0 || ^4.0.0" } }, "sha512-uRQZ4da77gru1I7/lNGJhKbqEIY7o/sPsLlbCM97VY9muGDjM/TaJzuwqIviqKTtXLzF0WDj5qBAi6FhxjvlSg=="], + "@openrouter/ai-sdk-provider": ["@openrouter/ai-sdk-provider@2.5.1", "", { "peerDependencies": { "ai": "^6.0.0", "zod": "^3.25.0 || ^4.0.0" } }, "sha512-r1fJL1Cb3gQDa2MpWH/sfx1BsEW0uzlRriJM6eihaKqbtKDmZoBisF32VcVaQYassighX7NGCkF68EsrZA43uQ=="], "@opentelemetry/api": ["@opentelemetry/api@1.9.0", "", {}, "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg=="], @@ -2385,7 +2383,7 @@ "agentkeepalive": ["agentkeepalive@4.6.0", "", { "dependencies": { "humanize-ms": "^1.2.1" } }, "sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ=="], - "ai": ["ai@6.0.149", "", { "dependencies": { "@ai-sdk/gateway": "3.0.91", "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.23", "@opentelemetry/api": "1.9.0" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-3asRb/m3ZGH7H4+VTuTgj8eQYJZ9IJUmV0ljLslY92mQp6Zj+NVn4SmFj0TBr2Y/wFBWC3xgn++47tSGOXxdbw=="], + "ai": ["ai@6.0.158", "", { "dependencies": { "@ai-sdk/gateway": "3.0.95", "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.23", "@opentelemetry/api": "1.9.0" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-gLTp1UXFtMqKUi3XHs33K7UFglbvojkxF/aq337TxnLGOhHIW9+GyP2jwW4hYX87f1es+wId3VQoPRRu9zEStQ=="], "ai-gateway-provider": ["ai-gateway-provider@3.1.2", "", { "optionalDependencies": { "@ai-sdk/amazon-bedrock": "^4.0.62", "@ai-sdk/anthropic": "^3.0.46", "@ai-sdk/azure": "^3.0.31", "@ai-sdk/cerebras": "^2.0.34", "@ai-sdk/cohere": "^3.0.21", "@ai-sdk/deepgram": "^2.0.20", "@ai-sdk/deepseek": "^2.0.20", "@ai-sdk/elevenlabs": "^2.0.20", "@ai-sdk/fireworks": "^2.0.34", "@ai-sdk/google": "^3.0.30", "@ai-sdk/google-vertex": "^4.0.61", "@ai-sdk/groq": "^3.0.24", "@ai-sdk/mistral": "^3.0.20", "@ai-sdk/openai": "^3.0.30", "@ai-sdk/perplexity": "^3.0.19", "@ai-sdk/xai": "^3.0.57", "@openrouter/ai-sdk-provider": "^2.2.3" }, "peerDependencies": { "@ai-sdk/openai-compatible": "^2.0.0", "@ai-sdk/provider": "^3.0.0", "@ai-sdk/provider-utils": "^4.0.0", "ai": "^6.0.0" } }, "sha512-krGNnJSoO/gJ7Hbe5nQDlsBpDUGIBGtMQTRUaW7s1MylsfvLduba0TLWzQaGtOmNRkP0pGhtGlwsnS6FNQMlyw=="], @@ -2889,7 +2887,7 @@ "ee-first": ["ee-first@1.1.1", "", {}, "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="], - "effect": ["effect@4.0.0-beta.43", "", { "dependencies": { "@standard-schema/spec": "^1.1.0", "fast-check": "^4.5.3", "find-my-way-ts": "^0.1.6", "ini": "^6.0.0", "kubernetes-types": "^1.30.0", "msgpackr": "^1.11.8", "multipasta": "^0.2.7", "toml": "^3.0.0", "uuid": "^13.0.0", "yaml": "^2.8.2" } }, "sha512-AJYyDimIwJOn87uUz/JzmgDc5GfjxJbXvEbTvNzMa+M3Uer344bLo/O5mMRkqc1vBleA+Ygs4+dbE3QsqOkKTQ=="], + "effect": ["effect@4.0.0-beta.46", "", { "dependencies": { "@standard-schema/spec": "^1.1.0", "fast-check": "^4.5.3", "find-my-way-ts": "^0.1.6", "ini": "^6.0.0", "kubernetes-types": "^1.30.0", "msgpackr": "^1.11.8", "multipasta": "^0.2.7", "toml": "^3.0.0", "uuid": "^13.0.0", "yaml": "^2.8.2" } }, "sha512-3f6gXvvUMtEueCRY0tU76Vq2Pej1SAwwE+s0Owd5nD53yS5n4RZhUA1rlCGFuSbQFA225pGy8vO72+lpvu7u5A=="], "ejs": ["ejs@3.1.10", "", { "dependencies": { "jake": "^10.8.5" }, "bin": { "ejs": "bin/cli.js" } }, "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA=="], @@ -5005,7 +5003,11 @@ "@actions/http-client/undici": ["undici@6.24.1", "", {}, "sha512-sC+b0tB1whOCzbtlx20fx3WgCXwkW627p4EA9uM+/tNNPkSS+eSEld6pAs9nDv7WbY1UUljBMYPtu9BCOrCWKA=="], - "@ai-sdk/amazon-bedrock/@ai-sdk/provider-utils": ["@ai-sdk/provider-utils@4.0.21", "", { "dependencies": { "@ai-sdk/provider": "3.0.8", "@standard-schema/spec": "^1.1.0", "eventsource-parser": "^3.0.6" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-MtFUYI1/8mgDvRmaBDjbLJPFFrMG777AvSgyIFQtZHIMzm88R/12vYBBpnk7pfiWLFE1DSZzY4WDYzGbKAcmiw=="], + "@ai-sdk/amazon-bedrock/@ai-sdk/anthropic": ["@ai-sdk/anthropic@3.0.69", "", { "dependencies": { "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.23" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-LshR7X3pFugY0o41G2VKTmg1XoGpSl7uoYWfzk6zjVZLhCfeFiwgpOga+eTV4XY1VVpZwKVqRnkDbIL7K2eH5g=="], + + "@ai-sdk/amazon-bedrock/@smithy/eventstream-codec": ["@smithy/eventstream-codec@4.2.12", "", { "dependencies": { "@aws-crypto/crc32": "5.2.0", "@smithy/types": "^4.13.1", "@smithy/util-hex-encoding": "^4.2.2", "tslib": "^2.6.2" } }, "sha512-FE3bZdEl62ojmy8x4FHqxq2+BuOHlcxiH5vaZ6aqHJr3AIZzwF5jfx8dEiU/X0a8RboyNDjmXjlbr8AdEyLgiA=="], + + "@ai-sdk/amazon-bedrock/@smithy/util-utf8": ["@smithy/util-utf8@4.2.2", "", { "dependencies": { "@smithy/util-buffer-from": "^4.2.2", "tslib": "^2.6.2" } }, "sha512-75MeYpjdWRe8M5E3AW0O4Cx3UadweS+cwdXjwYGBW5h/gxxnbeZ877sLPX/ZJA9GVTlL/qG0dXP29JWFCD1Ayw=="], "@ai-sdk/anthropic/@ai-sdk/provider-utils": ["@ai-sdk/provider-utils@4.0.21", "", { "dependencies": { "@ai-sdk/provider": "3.0.8", "@standard-schema/spec": "^1.1.0", "eventsource-parser": "^3.0.6" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-MtFUYI1/8mgDvRmaBDjbLJPFFrMG777AvSgyIFQtZHIMzm88R/12vYBBpnk7pfiWLFE1DSZzY4WDYzGbKAcmiw=="], @@ -5281,10 +5283,6 @@ "@fastify/proxy-addr/ipaddr.js": ["ipaddr.js@2.3.0", "", {}, "sha512-Zv/pA+ciVFbCSBBjGfaKUya/CcGmUHzTydLMaTwrUUEM2DIEO3iZvueGxmacvmN50fGpGVKeTXpb2LcYQxeVdg=="], - "@gitlab/gitlab-ai-provider/openai": ["openai@6.33.0", "", { "peerDependencies": { "ws": "^8.18.0", "zod": "^3.25 || ^4.0" }, "optionalPeers": ["ws", "zod"], "bin": { "openai": "bin/cli" } }, "sha512-xAYN1W3YsDXJWA5F277135YfkEk6H7D3D6vWwRhJ3OEkzRgcyK8z/P5P9Gyi/wB4N8kK9kM5ZjprfvyHagKmpw=="], - - "@gitlab/gitlab-ai-provider/zod": ["zod@3.25.76", "", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="], - "@gitlab/opencode-gitlab-auth/open": ["open@10.2.0", "", { "dependencies": { "default-browser": "^5.2.1", "define-lazy-prop": "^3.0.0", "is-inside-container": "^1.0.0", "wsl-utils": "^0.1.0" } }, "sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA=="], "@hey-api/openapi-ts/open": ["open@11.0.0", "", { "dependencies": { "default-browser": "^5.4.0", "define-lazy-prop": "^3.0.0", "is-in-ssh": "^1.0.0", "is-inside-container": "^1.0.0", "powershell-utils": "^0.1.0", "wsl-utils": "^0.3.0" } }, "sha512-smsWv2LzFjP03xmvFoJ331ss6h+jixfA4UUV/Bsiyuu4YJPfN+FIQGOIiv4w9/+MoHkfkJ22UIaQWRVFRfH6Vw=="], @@ -5509,6 +5507,10 @@ "@solidjs/start/vite-plugin-solid": ["vite-plugin-solid@2.11.11", "", { "dependencies": { "@babel/core": "^7.23.3", "@types/babel__core": "^7.20.4", "babel-preset-solid": "^1.8.4", "merge-anything": "^5.1.7", "solid-refresh": "^0.6.3", "vitefu": "^1.0.4" }, "peerDependencies": { "@testing-library/jest-dom": "^5.16.6 || ^5.17.0 || ^6.*", "solid-js": "^1.7.2", "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" }, "optionalPeers": ["@testing-library/jest-dom"] }, "sha512-YMZCXsLw9kyuvQFEdwLP27fuTQJLmjNoHy90AOJnbRuJ6DwShUxKFo38gdFrWn9v11hnGicKCZEaeI/TFs6JKw=="], + "@standard-community/standard-json/effect": ["effect@4.0.0-beta.43", "", { "dependencies": { "@standard-schema/spec": "^1.1.0", "fast-check": "^4.5.3", "find-my-way-ts": "^0.1.6", "ini": "^6.0.0", "kubernetes-types": "^1.30.0", "msgpackr": "^1.11.8", "multipasta": "^0.2.7", "toml": "^3.0.0", "uuid": "^13.0.0", "yaml": "^2.8.2" } }, "sha512-AJYyDimIwJOn87uUz/JzmgDc5GfjxJbXvEbTvNzMa+M3Uer344bLo/O5mMRkqc1vBleA+Ygs4+dbE3QsqOkKTQ=="], + + "@standard-community/standard-openapi/effect": ["effect@4.0.0-beta.43", "", { "dependencies": { "@standard-schema/spec": "^1.1.0", "fast-check": "^4.5.3", "find-my-way-ts": "^0.1.6", "ini": "^6.0.0", "kubernetes-types": "^1.30.0", "msgpackr": "^1.11.8", "multipasta": "^0.2.7", "toml": "^3.0.0", "uuid": "^13.0.0", "yaml": "^2.8.2" } }, "sha512-AJYyDimIwJOn87uUz/JzmgDc5GfjxJbXvEbTvNzMa+M3Uer344bLo/O5mMRkqc1vBleA+Ygs4+dbE3QsqOkKTQ=="], + "@tailwindcss/oxide/detect-libc": ["detect-libc@2.1.2", "", {}, "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ=="], "@tailwindcss/oxide-wasm32-wasi/@emnapi/core": ["@emnapi/core@1.9.1", "", { "dependencies": { "@emnapi/wasi-threads": "1.2.0", "tslib": "^2.4.0" }, "bundled": true }, "sha512-mukuNALVsoix/w1BJwFzwXBN/dHeejQtuVzcDsfOEsdpCumXb/E9j8w11h5S54tT1xhifGfbbSm/ICrObRb3KA=="], @@ -5549,7 +5551,9 @@ "accepts/mime-types": ["mime-types@2.1.35", "", { "dependencies": { "mime-db": "1.52.0" } }, "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="], - "ai/@ai-sdk/gateway": ["@ai-sdk/gateway@3.0.91", "", { "dependencies": { "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.23", "@vercel/oidc": "3.1.0" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-J39Dh6Gyg6HjG3A7OFKnJMp3QyZ3Eex+XDiX8aFBdRwwZm3jGWaMhkCxQPH7yiQ9kRiErZwHXX/Oexx4SyGGGA=="], + "ai/@ai-sdk/gateway": ["@ai-sdk/gateway@3.0.95", "", { "dependencies": { "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.23", "@vercel/oidc": "3.1.0" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-ZmUNNbZl3V42xwQzPaNUi+s8eqR2lnrxf0bvB6YbLXpLjHYv0k2Y78t12cNOfY0bxGeuVVTLyk856uLuQIuXEQ=="], + + "ai-gateway-provider/@ai-sdk/amazon-bedrock": ["@ai-sdk/amazon-bedrock@4.0.83", "", { "dependencies": { "@ai-sdk/anthropic": "3.0.64", "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.21", "@smithy/eventstream-codec": "^4.0.1", "@smithy/util-utf8": "^4.0.0", "aws4fetch": "^1.0.20" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-DoRpvIWGU/r83UeJAM9L93Lca8Kf/yP5fIhfEOltMPGP/PXrGe0BZaz0maLSRn8djJ6+HzWIsgu5ZI6bZqXEXg=="], "ai-gateway-provider/@openrouter/ai-sdk-provider": ["@openrouter/ai-sdk-provider@2.3.3", "", { "peerDependencies": { "ai": "^6.0.0", "zod": "^3.25.0 || ^4.0.0" } }, "sha512-4fVteGkVedc7fGoA9+qJs4tpYwALezMq14m2Sjub3KmyRlksCbK+WJf67NPdGem8+NZrV2tAN42A1NU3+SiV3w=="], @@ -5765,6 +5769,8 @@ "opencode/@ai-sdk/anthropic": ["@ai-sdk/anthropic@3.0.67", "", { "dependencies": { "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.23" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-FFX4P5Fd6lcQJc2OLngZQkbbJHa0IDDZi087Edb8qRZx6h90krtM61ArbMUL8us/7ZUwojCXnyJ/wQ2Eflx2jQ=="], + "opencode/@ai-sdk/openai-compatible": ["@ai-sdk/openai-compatible@2.0.41", "", { "dependencies": { "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.23" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-kNAGINk71AlOXx10Dq/PXw4t/9XjdK8uxfpVElRwtSFMdeSiLVt58p9TPx4/FJD+hxZuVhvxYj9r42osxWq79g=="], + "opencontrol/@modelcontextprotocol/sdk": ["@modelcontextprotocol/sdk@1.6.1", "", { "dependencies": { "content-type": "^1.0.5", "cors": "^2.8.5", "eventsource": "^3.0.2", "express": "^5.0.1", "express-rate-limit": "^7.5.0", "pkce-challenge": "^4.1.0", "raw-body": "^3.0.0", "zod": "^3.23.8", "zod-to-json-schema": "^3.24.1" } }, "sha512-oxzMzYCkZHMntzuyerehK3fV6A2Kwh5BD6CGEJSVDU2QNEhfLOptf2X7esQgaHZXHZY0oHmMsOtIDLP71UJXgA=="], "opencontrol/@tsconfig/bun": ["@tsconfig/bun@1.0.7", "", {}, "sha512-udGrGJBNQdXGVulehc1aWT73wkR9wdaGBtB6yL70RJsqwW/yJhIg6ZbRlPOfIUiFNrnBuYLBi9CSmMKfDC7dvA=="], @@ -5947,8 +5953,6 @@ "@actions/github/@octokit/plugin-rest-endpoint-methods/@octokit/types": ["@octokit/types@12.6.0", "", { "dependencies": { "@octokit/openapi-types": "^20.0.0" } }, "sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw=="], - "@ai-sdk/amazon-bedrock/@ai-sdk/provider-utils/@standard-schema/spec": ["@standard-schema/spec@1.1.0", "", {}, "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w=="], - "@ai-sdk/anthropic/@ai-sdk/provider-utils/@standard-schema/spec": ["@standard-schema/spec@1.1.0", "", {}, "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w=="], "@ai-sdk/azure/@ai-sdk/provider-utils/@standard-schema/spec": ["@standard-schema/spec@1.1.0", "", {}, "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w=="], @@ -6435,12 +6439,18 @@ "@solidjs/start/shiki/@shikijs/types": ["@shikijs/types@1.29.2", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.1", "@types/hast": "^3.0.4" } }, "sha512-VJjK0eIijTZf0QSTODEXCqinjBn0joAHQ+aPSBzrv4O2d/QSbsMw+ZeSRx03kV34Hy7NzUvV/7NqfYGRLrASmw=="], + "@standard-community/standard-json/effect/@standard-schema/spec": ["@standard-schema/spec@1.1.0", "", {}, "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w=="], + + "@standard-community/standard-openapi/effect/@standard-schema/spec": ["@standard-schema/spec@1.1.0", "", {}, "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w=="], + "@tailwindcss/oxide-wasm32-wasi/@napi-rs/wasm-runtime/@tybys/wasm-util": ["@tybys/wasm-util@0.10.1", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg=="], "@vitest/expect/@vitest/utils/@vitest/pretty-format": ["@vitest/pretty-format@3.2.4", "", { "dependencies": { "tinyrainbow": "^2.0.0" } }, "sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA=="], "accepts/mime-types/mime-db": ["mime-db@1.52.0", "", {}, "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="], + "ai-gateway-provider/@ai-sdk/amazon-bedrock/@ai-sdk/provider-utils": ["@ai-sdk/provider-utils@4.0.21", "", { "dependencies": { "@ai-sdk/provider": "3.0.8", "@standard-schema/spec": "^1.1.0", "eventsource-parser": "^3.0.6" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-MtFUYI1/8mgDvRmaBDjbLJPFFrMG777AvSgyIFQtZHIMzm88R/12vYBBpnk7pfiWLFE1DSZzY4WDYzGbKAcmiw=="], + "ajv-keywords/ajv/json-schema-traverse": ["json-schema-traverse@0.4.1", "", {}, "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="], "ansi-align/string-width/emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], @@ -6813,6 +6823,8 @@ "@solidjs/start/shiki/@shikijs/engine-javascript/oniguruma-to-es": ["oniguruma-to-es@2.3.0", "", { "dependencies": { "emoji-regex-xs": "^1.0.0", "regex": "^5.1.1", "regex-recursion": "^5.1.1" } }, "sha512-bwALDxriqfKGfUufKGGepCzu9x7nJQuoRoAFp4AnwehhC2crqrDIAP/uN2qdlsAvSMpeRC3+Yzhqc7hLmle5+g=="], + "ai-gateway-provider/@ai-sdk/amazon-bedrock/@ai-sdk/provider-utils/@standard-schema/spec": ["@standard-schema/spec@1.1.0", "", {}, "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w=="], + "ansi-align/string-width/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], "app-builder-lib/@electron/get/fs-extra/universalify": ["universalify@0.1.2", "", {}, "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="], diff --git a/nix/hashes.json b/nix/hashes.json index d827b203d2..13bb82201b 100644 --- a/nix/hashes.json +++ b/nix/hashes.json @@ -1,8 +1,8 @@ { "nodeModules": { - "x86_64-linux": "sha256-285KZ7rZLRoc6XqCZRHc25NE+mmpGh/BVeMpv8aPQtQ=", - "aarch64-linux": "sha256-qIwmY4TP4CI7R7G6A5OMYRrorVNXjkg25tTtVpIHm2o=", - "aarch64-darwin": "sha256-RwvnZQhdYZ0u7h7evyfxuPLHHX9eO/jXTAxIFc8B+IE=", - "x86_64-darwin": "sha256-vVj40al+TEeMpbe5XG2GmJEpN+eQAvtr9W0T98l5PBE=" + "x86_64-linux": "sha256-fNRQYkucjXr1D61HJRScJpDa6+oBdyhgTBxCu+PE2kQ=", + "aarch64-linux": "sha256-V8J6kn2nSdXrplyqi6aIqNlHcVjSxvye+yC/YFO7PF4=", + "aarch64-darwin": "sha256-6cLmUJVUycGALCmslXuloVGBSlFOSHRjsWjx7KOW8rg=", + "x86_64-darwin": "sha256-kcOSO3NFIJh79ylLotG41ovWLQfH5kh1WYFghUu+4HE=" } } diff --git a/package.json b/package.json index c0d3a568ff..d08bada052 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "packages/slack" ], "catalog": { - "@effect/platform-node": "4.0.0-beta.43", + "@effect/platform-node": "4.0.0-beta.46", "@types/bun": "1.3.11", "@types/cross-spawn": "6.0.6", "@octokit/rest": "22.0.0", @@ -47,8 +47,8 @@ "dompurify": "3.3.1", "drizzle-kit": "1.0.0-beta.19-d95b7a4", "drizzle-orm": "1.0.0-beta.19-d95b7a4", - "effect": "4.0.0-beta.43", - "ai": "6.0.149", + "effect": "4.0.0-beta.46", + "ai": "6.0.158", "cross-spawn": "7.0.6", "hono": "4.10.7", "hono-openapi": "1.1.2", diff --git a/packages/console/app/src/routes/download/index.css b/packages/console/app/src/routes/download/index.css index 705302616a..b2176c34a2 100644 --- a/packages/console/app/src/routes/download/index.css +++ b/packages/console/app/src/routes/download/index.css @@ -316,7 +316,8 @@ /* Download Hero Section */ [data-component="download-hero"] { - display: grid; + /* display: grid; */ + display: none; grid-template-columns: 260px 1fr; gap: 4rem; padding-bottom: 2rem; diff --git a/packages/opencode/package.json b/packages/opencode/package.json index 7cce131908..18feb46757 100644 --- a/packages/opencode/package.json +++ b/packages/opencode/package.json @@ -39,11 +39,16 @@ "bun": "./src/pty/pty.bun.ts", "node": "./src/pty/pty.node.ts", "default": "./src/pty/pty.bun.ts" + }, + "#hono": { + "bun": "./src/server/adapter.bun.ts", + "node": "./src/server/adapter.node.ts", + "default": "./src/server/adapter.bun.ts" } }, "devDependencies": { "@babel/core": "7.28.4", - "@effect/language-service": "0.79.0", + "@effect/language-service": "0.84.2", "@octokit/webhooks-types": "7.6.1", "@opencode-ai/script": "workspace:*", "@parcel/watcher-darwin-arm64": "2.5.1", @@ -78,7 +83,7 @@ "@actions/core": "1.11.1", "@actions/github": "6.0.1", "@agentclientprotocol/sdk": "0.16.1", - "@ai-sdk/amazon-bedrock": "4.0.83", + "@ai-sdk/amazon-bedrock": "4.0.93", "@ai-sdk/anthropic": "3.0.67", "@ai-sdk/azure": "3.0.49", "@ai-sdk/cerebras": "2.0.41", @@ -90,7 +95,7 @@ "@ai-sdk/groq": "3.0.31", "@ai-sdk/mistral": "3.0.27", "@ai-sdk/openai": "3.0.48", - "@ai-sdk/openai-compatible": "2.0.37", + "@ai-sdk/openai-compatible": "2.0.41", "@ai-sdk/perplexity": "3.0.26", "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.23", @@ -100,7 +105,6 @@ "@aws-sdk/credential-providers": "3.993.0", "@clack/prompts": "1.0.0-alpha.1", "@effect/platform-node": "catalog:", - "@gitlab/gitlab-ai-provider": "3.6.0", "@gitlab/opencode-gitlab-auth": "1.3.3", "@hono/node-server": "1.19.11", "@hono/node-ws": "1.3.0", @@ -116,7 +120,7 @@ "@opencode-ai/script": "workspace:*", "@opencode-ai/sdk": "workspace:*", "@opencode-ai/util": "workspace:*", - "@openrouter/ai-sdk-provider": "2.4.2", + "@openrouter/ai-sdk-provider": "2.5.1", "@opentui/core": "0.1.97", "@opentui/solid": "0.1.97", "@parcel/watcher": "2.5.1", diff --git a/packages/opencode/specs/effect-migration.md b/packages/opencode/specs/effect-migration.md index 5882f09fe5..1990f6a577 100644 --- a/packages/opencode/specs/effect-migration.md +++ b/packages/opencode/specs/effect-migration.md @@ -23,7 +23,7 @@ export namespace Foo { readonly get: (id: FooID) => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/Foo") {} + export class Service extends Context.Service()("@opencode/Foo") {} export const layer = Layer.effect( Service, @@ -219,34 +219,34 @@ Fully migrated (single namespace, InstanceState where needed, flattened facade): - [x] `Instruction` — `session/instruction.ts` - [x] `Provider` — `provider/provider.ts` - [x] `Storage` — `storage/storage.ts` +- [x] `ShareNext` — `share/share-next.ts` Still open: -- [ ] `SessionTodo` — `session/todo.ts` -- [ ] `ShareNext` — `share/share-next.ts` +- [x] `SessionTodo` — `session/todo.ts` - [ ] `SyncEvent` — `sync/index.ts` - [ ] `Workspace` — `control-plane/workspace.ts` ## Tool interface → Effect -Once individual tools are effectified, change `Tool.Info` (`tool/tool.ts`) so `init` and `execute` return `Effect` instead of `Promise`. This lets tool implementations compose natively with the Effect pipeline rather than being wrapped in `Effect.promise()` at the call site. Requires: +`Tool.Def.execute` and `Tool.Info.init` already return `Effect` on this branch. Tool definitions should now stay Effect-native all the way through initialization instead of using Promise-returning init callbacks. Tools can still use lazy init callbacks when they need instance-bound state at init time, but those callbacks should return `Effect`, not `Promise`. Remaining work is: -1. Migrate each tool to return Effects -2. Update `Tool.define()` factory to work with Effects -3. Update `SessionPrompt` to `yield*` tool results instead of `await`ing +1. Migrate each tool body to return Effects +2. Keep `Tool.define()` inputs Effect-native +3. Update remaining callers to `yield*` tool initialization instead of `await`ing ### Tool migration details -Until the tool interface itself returns `Effect`, use this transitional pattern for migrated tools: +With `Tool.Info.init()` now effectful, use this transitional pattern for migrated tools that still need Promise-based boundaries internally: - `Tool.defineEffect(...)` should `yield*` the services the tool depends on and close over them in the returned tool definition. -- Keep the bridge at the Promise boundary only. Prefer a single `Effect.runPromise(...)` in the temporary `async execute(...)` implementation, and move the inner logic into `Effect.fn(...)` helpers instead of scattering `runPromise` islands through the tool body. +- Keep the bridge at the Promise boundary only inside the tool body when required by external APIs. Do not return Promise-based init callbacks from `Tool.define()`. - If a tool starts requiring new services, wire them into `ToolRegistry.defaultLayer` so production callers resolve the same dependencies as tests. Tool tests should use the existing Effect helpers in `packages/opencode/test/lib/effect.ts`: - Use `testEffect(...)` / `it.live(...)` instead of creating fake local wrappers around effectful tools. -- Yield the real tool export, then initialize it: `const info = yield* ReadTool`, `const tool = yield* Effect.promise(() => info.init())`. +- Yield the real tool export, then initialize it: `const info = yield* ReadTool`, `const tool = yield* info.init()`. - Run tests inside a real instance with `provideTmpdirInstance(...)` or `provideInstance(tmpdirScoped(...))` so instance-scoped services resolve exactly as they do in production. This keeps migrated tool tests aligned with the production service graph today, and makes the eventual `Tool.Info` → `Effect` cleanup mostly mechanical later. @@ -308,3 +308,35 @@ Current raw fs users that will convert during tool migration: - [ ] `util/flock.ts` — file-based distributed lock with heartbeat → Effect.repeat + addFinalizer - [ ] `util/process.ts` — child process spawn wrapper → return Effect instead of Promise - [ ] `util/lazy.ts` — replace uses in Effect code with Effect.cached; keep for sync-only code + +## Destroying the facades + +Every service currently exports async facade functions at the bottom of its namespace — `export async function read(...) { return runPromise(...) }` — backed by a per-service `makeRuntime`. These exist because cyclic imports used to force each service to build its own independent runtime. Now that the layer DAG is acyclic and `AppRuntime` (`src/effect/app-runtime.ts`) composes everything into one `ManagedRuntime`, we're removing them. + +### Process + +For each service, the migration is roughly: + +1. **Find callers.** `grep -n "Namespace\.(methodA|methodB|...)"` across `src/` and `test/`. Skip the service file itself. +2. **Migrate production callers.** For each effectful caller that does `Effect.tryPromise(() => Namespace.method(...))`: + - Add the service to the caller's layer R type (`Layer.Layer`) + - Yield it at the top of the layer: `const ns = yield* Namespace.Service` + - Replace `Effect.tryPromise(() => Namespace.method(...))` with `yield* ns.method(...)` (or `ns.method(...).pipe(Effect.orElseSucceed(...))` for the common fallback case) + - Add `Layer.provide(Namespace.defaultLayer)` to the caller's own `defaultLayer` chain +3. **Fix tests that used the caller's raw `.layer`.** Any test that composes `Caller.layer` (not `defaultLayer`) needs to also provide the newly-required service tag. The fastest fix is usually switching to `Caller.defaultLayer` since it now pulls in the new dependency. +4. **Migrate test callers of the facade.** Tests calling `Namespace.method(...)` directly get converted to full effectful style using `testEffect(Namespace.defaultLayer)` + `it.live` / `it.effect` + `yield* svc.method(...)`. Don't wrap the test body in `Effect.promise(async () => {...})` — do the whole thing in `Effect.gen` and use `AppFileSystem.Service` / `tmpdirScoped` / `Effect.addFinalizer` for what used to be raw `fs` / `Bun.write` / `try/finally`. +5. **Delete the facades.** Once `grep` shows zero callers, remove the `export async function` block AND the `makeRuntime(...)` line from the service namespace. Also remove the now-unused `import { makeRuntime }`. + +### Pitfalls + +- **Layer caching inside tests.** `testEffect(layer)` constructs the Storage (or whatever) service once and memoizes it. If a test then tries `inner.pipe(Effect.provide(customStorage))` to swap in a differently-configured Storage, the outer cached one wins and the inner provision is a no-op. Fix: wrap the overriding layer in `Layer.fresh(...)`, which forces a new instance to be built instead of hitting the memoMap cache. This lets a single `testEffect(...)` serve both simple and per-test-customized cases. +- **`Effect.tryPromise` → `yield*` drops the Promise layer.** The old code was `Effect.tryPromise(() => Storage.read(...))` — a `tryPromise` wrapper because the facade returned a Promise. The new code is `yield* storage.read(...)` directly — the service method already returns an Effect, so no wrapper is needed. Don't reach for `Effect.promise` or `Effect.tryPromise` during migration; if you're using them on a service method call, you're doing it wrong. +- **Raw `.layer` test callers break silently in the type checker.** When you add a new R requirement to a service's `.layer`, any test that composes it raw (not `defaultLayer`) becomes under-specified. `tsgo` will flag this — the error looks like `Type 'Storage.Service' is not assignable to type '... | Service | TestConsole'`. Usually the fix is to switch that composition to `defaultLayer`, or add `Layer.provide(NewDep.defaultLayer)` to the custom composition. +- **Tests that do async setup with `fs`, `Bun.write`, `tmpdir`.** Convert these to `AppFileSystem.Service` calls inside `Effect.gen`, and use `tmpdirScoped()` instead of `tmpdir()` so cleanup happens via the scope finalizer. For file operations on the actual filesystem (not via a service), a small helper like `const writeJson = Effect.fnUntraced(function* (file, value) { const fs = yield* AppFileSystem.Service; yield* fs.makeDirectory(path.dirname(file), { recursive: true }); yield* fs.writeFileString(file, JSON.stringify(value, null, 2)) })` keeps the migration tests clean. + +### Migration log + +- `SessionStatus` — migrated 2026-04-11. Replaced the last route and retry-policy callers with `AppRuntime.runPromise(SessionStatus.Service.use(...))` and removed the `makeRuntime(...)` facade. +- `ShareNext` — migrated 2026-04-11. Swapped remaining async callers to `AppRuntime.runPromise(ShareNext.Service.use(...))`, removed the `makeRuntime(...)` facade, and kept instance bootstrap on the shared app runtime. +- `SessionTodo` — migrated 2026-04-10. Already matched the target service shape in `session/todo.ts`: single namespace, traced Effect methods, and no `makeRuntime(...)` facade remained; checklist updated to reflect the completed migration. +- `Storage` — migrated 2026-04-10. One production caller (`Session.diff`) and all storage.test.ts tests converted to effectful style. Facades and `makeRuntime` removed. diff --git a/packages/opencode/src/account/index.ts b/packages/opencode/src/account/index.ts index 0aca857822..4c875caa6b 100644 --- a/packages/opencode/src/account/index.ts +++ b/packages/opencode/src/account/index.ts @@ -1,4 +1,4 @@ -import { Cache, Clock, Duration, Effect, Layer, Option, Schema, SchemaGetter, ServiceMap } from "effect" +import { Cache, Clock, Duration, Effect, Layer, Option, Schema, SchemaGetter, Context } from "effect" import { FetchHttpClient, HttpClient, @@ -7,7 +7,6 @@ import { HttpClientResponse, } from "effect/unstable/http" -import { makeRuntime } from "@/effect/run-service" import { withTransientReadRetry } from "@/util/effect-http-client" import { AccountRepo, type AccountRow } from "./repo" import { normalizeServerUrl } from "./url" @@ -181,7 +180,7 @@ export namespace Account { readonly poll: (input: Login) => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/Account") {} + export class Service extends Context.Service()("@opencode/Account") {} export const layer: Layer.Layer = Layer.effect( Service, @@ -454,18 +453,4 @@ export namespace Account { ) export const defaultLayer = layer.pipe(Layer.provide(AccountRepo.layer), Layer.provide(FetchHttpClient.layer)) - - export const { runPromise } = makeRuntime(Service, defaultLayer) - - export async function active(): Promise { - return Option.getOrUndefined(await runPromise((service) => service.active())) - } - - export async function orgsByAccount(): Promise { - return runPromise((service) => service.orgsByAccount()) - } - - export async function switchOrg(accountID: AccountID, orgID: OrgID) { - return runPromise((service) => service.use(accountID, Option.some(orgID))) - } } diff --git a/packages/opencode/src/account/repo.ts b/packages/opencode/src/account/repo.ts index 4dbb9cab43..b2b084c08d 100644 --- a/packages/opencode/src/account/repo.ts +++ b/packages/opencode/src/account/repo.ts @@ -1,5 +1,5 @@ import { eq } from "drizzle-orm" -import { Effect, Layer, Option, Schema, ServiceMap } from "effect" +import { Effect, Layer, Option, Schema, Context } from "effect" import { Database } from "@/storage/db" import { AccountStateTable, AccountTable } from "./account.sql" @@ -38,7 +38,7 @@ export namespace AccountRepo { } } -export class AccountRepo extends ServiceMap.Service()("@opencode/AccountRepo") { +export class AccountRepo extends Context.Service()("@opencode/AccountRepo") { static readonly layer: Layer.Layer = Layer.effect( AccountRepo, Effect.gen(function* () { diff --git a/packages/opencode/src/account/schema.ts b/packages/opencode/src/account/schema.ts index f8b3c2cf93..222296ff1b 100644 --- a/packages/opencode/src/account/schema.ts +++ b/packages/opencode/src/account/schema.ts @@ -1,42 +1,22 @@ import { Schema } from "effect" import type * as HttpClientError from "effect/unstable/http/HttpClientError" -import { withStatics } from "@/util/schema" - -export const AccountID = Schema.String.pipe( - Schema.brand("AccountID"), - withStatics((s) => ({ make: (id: string) => s.makeUnsafe(id) })), -) +export const AccountID = Schema.String.pipe(Schema.brand("AccountID")) export type AccountID = Schema.Schema.Type -export const OrgID = Schema.String.pipe( - Schema.brand("OrgID"), - withStatics((s) => ({ make: (id: string) => s.makeUnsafe(id) })), -) +export const OrgID = Schema.String.pipe(Schema.brand("OrgID")) export type OrgID = Schema.Schema.Type -export const AccessToken = Schema.String.pipe( - Schema.brand("AccessToken"), - withStatics((s) => ({ make: (token: string) => s.makeUnsafe(token) })), -) +export const AccessToken = Schema.String.pipe(Schema.brand("AccessToken")) export type AccessToken = Schema.Schema.Type -export const RefreshToken = Schema.String.pipe( - Schema.brand("RefreshToken"), - withStatics((s) => ({ make: (token: string) => s.makeUnsafe(token) })), -) +export const RefreshToken = Schema.String.pipe(Schema.brand("RefreshToken")) export type RefreshToken = Schema.Schema.Type -export const DeviceCode = Schema.String.pipe( - Schema.brand("DeviceCode"), - withStatics((s) => ({ make: (code: string) => s.makeUnsafe(code) })), -) +export const DeviceCode = Schema.String.pipe(Schema.brand("DeviceCode")) export type DeviceCode = Schema.Schema.Type -export const UserCode = Schema.String.pipe( - Schema.brand("UserCode"), - withStatics((s) => ({ make: (code: string) => s.makeUnsafe(code) })), -) +export const UserCode = Schema.String.pipe(Schema.brand("UserCode")) export type UserCode = Schema.Schema.Type export class Info extends Schema.Class("Account")({ diff --git a/packages/opencode/src/agent/agent.ts b/packages/opencode/src/agent/agent.ts index 2a8bed0927..fd9ac43e8b 100644 --- a/packages/opencode/src/agent/agent.ts +++ b/packages/opencode/src/agent/agent.ts @@ -19,7 +19,7 @@ import { Global } from "@/global" import path from "path" import { Plugin } from "@/plugin" import { Skill } from "../skill" -import { Effect, ServiceMap, Layer } from "effect" +import { Effect, Context, Layer } from "effect" import { InstanceState } from "@/effect/instance-state" import { makeRuntime } from "@/effect/run-service" @@ -67,7 +67,7 @@ export namespace Agent { type State = Omit - export class Service extends ServiceMap.Service()("@opencode/Agent") {} + export class Service extends Context.Service()("@opencode/Agent") {} export const layer = Layer.effect( Service, @@ -398,13 +398,11 @@ export namespace Agent { }), ) - export const defaultLayer = Layer.suspend(() => - layer.pipe( - Layer.provide(Provider.defaultLayer), - Layer.provide(Auth.defaultLayer), - Layer.provide(Config.defaultLayer), - Layer.provide(Skill.defaultLayer), - ), + export const defaultLayer = layer.pipe( + Layer.provide(Provider.defaultLayer), + Layer.provide(Auth.defaultLayer), + Layer.provide(Config.defaultLayer), + Layer.provide(Skill.defaultLayer), ) const { runPromise } = makeRuntime(Service, defaultLayer) diff --git a/packages/opencode/src/auth/index.ts b/packages/opencode/src/auth/index.ts index 2a9fb6c19e..2e83fe287e 100644 --- a/packages/opencode/src/auth/index.ts +++ b/packages/opencode/src/auth/index.ts @@ -1,5 +1,5 @@ import path from "path" -import { Effect, Layer, Record, Result, Schema, ServiceMap } from "effect" +import { Effect, Layer, Record, Result, Schema, Context } from "effect" import { makeRuntime } from "@/effect/run-service" import { zod } from "@/util/effect-zod" import { Global } from "../global" @@ -49,7 +49,7 @@ export namespace Auth { readonly remove: (key: string) => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/Auth") {} + export class Service extends Context.Service()("@opencode/Auth") {} export const layer = Layer.effect( Service, diff --git a/packages/opencode/src/bus/index.ts b/packages/opencode/src/bus/index.ts index 87b08d6101..0638777bd4 100644 --- a/packages/opencode/src/bus/index.ts +++ b/packages/opencode/src/bus/index.ts @@ -1,5 +1,6 @@ import z from "zod" -import { Effect, Exit, Layer, PubSub, Scope, ServiceMap, Stream } from "effect" +import { Effect, Exit, Layer, PubSub, Scope, Context, Stream } from "effect" +import { EffectLogger } from "@/effect/logger" import { Log } from "../util/log" import { BusEvent } from "./bus-event" import { GlobalBus } from "./global" @@ -41,7 +42,7 @@ export namespace Bus { readonly subscribeAllCallback: (callback: (event: any) => unknown) => Effect.Effect<() => void> } - export class Service extends ServiceMap.Service()("@opencode/Bus") {} + export class Service extends Context.Service()("@opencode/Bus") {} export const layer = Layer.effect( Service, @@ -146,7 +147,7 @@ export namespace Bus { return () => { log.info("unsubscribing", { type }) - Effect.runFork(Scope.close(scope, Exit.void)) + Effect.runFork(Scope.close(scope, Exit.void).pipe(Effect.provide(EffectLogger.layer))) } }) } diff --git a/packages/opencode/src/cli/cmd/account.ts b/packages/opencode/src/cli/cmd/account.ts index c09294eddd..89680ebe0a 100644 --- a/packages/opencode/src/cli/cmd/account.ts +++ b/packages/opencode/src/cli/cmd/account.ts @@ -3,6 +3,7 @@ import { Duration, Effect, Match, Option } from "effect" import { UI } from "../ui" import { AccountID, Account, OrgID, PollExpired, type PollResult } from "@/account" import { type AccountError } from "@/account/schema" +import { AppRuntime } from "@/effect/app-runtime" import * as Prompt from "../effect/prompt" import open from "open" @@ -182,7 +183,7 @@ export const LoginCommand = cmd({ }), async handler(args) { UI.empty() - await Account.runPromise((_svc) => loginEffect(args.url)) + await AppRuntime.runPromise(loginEffect(args.url)) }, }) @@ -196,7 +197,7 @@ export const LogoutCommand = cmd({ }), async handler(args) { UI.empty() - await Account.runPromise((_svc) => logoutEffect(args.email)) + await AppRuntime.runPromise(logoutEffect(args.email)) }, }) @@ -205,7 +206,7 @@ export const SwitchCommand = cmd({ describe: false, async handler() { UI.empty() - await Account.runPromise((_svc) => switchEffect()) + await AppRuntime.runPromise(switchEffect()) }, }) @@ -214,7 +215,7 @@ export const OrgsCommand = cmd({ describe: false, async handler() { UI.empty() - await Account.runPromise((_svc) => orgsEffect()) + await AppRuntime.runPromise(orgsEffect()) }, }) @@ -223,7 +224,7 @@ export const OpenCommand = cmd({ describe: false, async handler() { UI.empty() - await Account.runPromise((_svc) => openEffect()) + await AppRuntime.runPromise(openEffect()) }, }) diff --git a/packages/opencode/src/cli/cmd/debug/agent.ts b/packages/opencode/src/cli/cmd/debug/agent.ts index 458f925474..32d10d5d71 100644 --- a/packages/opencode/src/cli/cmd/debug/agent.ts +++ b/packages/opencode/src/cli/cmd/debug/agent.ts @@ -1,5 +1,6 @@ import { EOL } from "os" import { basename } from "path" +import { Effect } from "effect" import { Agent } from "../../../agent/agent" import { Provider } from "../../../provider/provider" import { Session } from "../../../session" @@ -157,14 +158,16 @@ async function createToolContext(agent: Agent.Info) { agent: agent.name, abort: new AbortController().signal, messages: [], - metadata: () => {}, - async ask(req: Omit) { - for (const pattern of req.patterns) { - const rule = Permission.evaluate(req.permission, pattern, ruleset) - if (rule.action === "deny") { - throw new Permission.DeniedError({ ruleset }) + metadata: () => Effect.void, + ask(req: Omit) { + return Effect.sync(() => { + for (const pattern of req.patterns) { + const rule = Permission.evaluate(req.permission, pattern, ruleset) + if (rule.action === "deny") { + throw new Permission.DeniedError({ ruleset }) + } } - } + }) }, } } diff --git a/packages/opencode/src/cli/cmd/github.ts b/packages/opencode/src/cli/cmd/github.ts index 8b693e79ae..28a05512de 100644 --- a/packages/opencode/src/cli/cmd/github.ts +++ b/packages/opencode/src/cli/cmd/github.ts @@ -29,6 +29,7 @@ import { Provider } from "../../provider/provider" import { Bus } from "../../bus" import { MessageV2 } from "../../session/message-v2" import { SessionPrompt } from "@/session/prompt" +import { AppRuntime } from "@/effect/app-runtime" import { Git } from "@/git" import { setTimeout as sleep } from "node:timers/promises" import { Process } from "@/util/process" @@ -258,7 +259,9 @@ export const GithubInstallCommand = cmd({ } // Get repo info - const info = (await Git.run(["remote", "get-url", "origin"], { cwd: Instance.worktree })).text().trim() + const info = await AppRuntime.runPromise( + Git.Service.use((git) => git.run(["remote", "get-url", "origin"], { cwd: Instance.worktree })), + ).then((x) => x.text().trim()) const parsed = parseGitHubRemote(info) if (!parsed) { prompts.log.error(`Could not find git repository. Please run this command from a git repository.`) @@ -497,20 +500,21 @@ export const GithubRunCommand = cmd({ : "issue" : undefined const gitText = async (args: string[]) => { - const result = await Git.run(args, { cwd: Instance.worktree }) + const result = await AppRuntime.runPromise(Git.Service.use((git) => git.run(args, { cwd: Instance.worktree }))) if (result.exitCode !== 0) { throw new Process.RunFailedError(["git", ...args], result.exitCode, result.stdout, result.stderr) } return result.text().trim() } const gitRun = async (args: string[]) => { - const result = await Git.run(args, { cwd: Instance.worktree }) + const result = await AppRuntime.runPromise(Git.Service.use((git) => git.run(args, { cwd: Instance.worktree }))) if (result.exitCode !== 0) { throw new Process.RunFailedError(["git", ...args], result.exitCode, result.stdout, result.stderr) } return result } - const gitStatus = (args: string[]) => Git.run(args, { cwd: Instance.worktree }) + const gitStatus = (args: string[]) => + AppRuntime.runPromise(Git.Service.use((git) => git.run(args, { cwd: Instance.worktree }))) const commitChanges = async (summary: string, actor?: string) => { const args = ["commit", "-m", summary] if (actor) args.push("-m", `Co-authored-by: ${actor} <${actor}@users.noreply.github.com>`) diff --git a/packages/opencode/src/cli/cmd/import.ts b/packages/opencode/src/cli/cmd/import.ts index a0c0101fea..1232f07422 100644 --- a/packages/opencode/src/cli/cmd/import.ts +++ b/packages/opencode/src/cli/cmd/import.ts @@ -10,6 +10,7 @@ import { Instance } from "../../project/instance" import { ShareNext } from "../../share/share-next" import { EOL } from "os" import { Filesystem } from "../../util/filesystem" +import { AppRuntime } from "@/effect/app-runtime" /** Discriminated union returned by the ShareNext API (GET /api/shares/:id/data) */ export type ShareData = @@ -100,7 +101,7 @@ export const ImportCommand = cmd({ if (isUrl) { const slug = parseShareUrl(args.file) if (!slug) { - const baseUrl = await ShareNext.url() + const baseUrl = await AppRuntime.runPromise(ShareNext.Service.use((svc) => svc.url())) process.stdout.write(`Invalid URL format. Expected: ${baseUrl}/share/`) process.stdout.write(EOL) return @@ -108,7 +109,7 @@ export const ImportCommand = cmd({ const parsed = new URL(args.file) const baseUrl = parsed.origin - const req = await ShareNext.request() + const req = await AppRuntime.runPromise(ShareNext.Service.use((svc) => svc.request())) const headers = shouldAttachShareAuthHeaders(args.file, req.baseUrl) ? req.headers : {} const dataPath = req.api.data(slug) diff --git a/packages/opencode/src/cli/cmd/pr.ts b/packages/opencode/src/cli/cmd/pr.ts index 58d42c6ef0..f392bab4c8 100644 --- a/packages/opencode/src/cli/cmd/pr.ts +++ b/packages/opencode/src/cli/cmd/pr.ts @@ -1,5 +1,6 @@ import { UI } from "../ui" import { cmd } from "./cmd" +import { AppRuntime } from "@/effect/app-runtime" import { Git } from "@/git" import { Instance } from "@/project/instance" import { Process } from "@/util/process" @@ -67,19 +68,29 @@ export const PrCommand = cmd({ const remoteName = forkOwner // Check if remote already exists - const remotes = (await Git.run(["remote"], { cwd: Instance.worktree })).text().trim() + const remotes = await AppRuntime.runPromise( + Git.Service.use((git) => git.run(["remote"], { cwd: Instance.worktree })), + ).then((x) => x.text().trim()) if (!remotes.split("\n").includes(remoteName)) { - await Git.run(["remote", "add", remoteName, `https://github.com/${forkOwner}/${forkName}.git`], { - cwd: Instance.worktree, - }) + await AppRuntime.runPromise( + Git.Service.use((git) => + git.run(["remote", "add", remoteName, `https://github.com/${forkOwner}/${forkName}.git`], { + cwd: Instance.worktree, + }), + ), + ) UI.println(`Added fork remote: ${remoteName}`) } // Set upstream to the fork so pushes go there const headRefName = prInfo.headRefName - await Git.run(["branch", `--set-upstream-to=${remoteName}/${headRefName}`, localBranchName], { - cwd: Instance.worktree, - }) + await AppRuntime.runPromise( + Git.Service.use((git) => + git.run(["branch", `--set-upstream-to=${remoteName}/${headRefName}`, localBranchName], { + cwd: Instance.worktree, + }), + ), + ) } // Check for opencode session link in PR body diff --git a/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx b/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx index ba6df1d6bb..5a3e1d451d 100644 --- a/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx +++ b/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx @@ -589,6 +589,13 @@ export function Prompt(props: PromptProps) { ]) async function submit() { + // IME: double-defer may fire before onContentChange flushes the last + // composed character (e.g. Korean hangul) to the store, so read + // plainText directly and sync before any downstream reads. + if (input && !input.isDestroyed && input.plainText !== store.prompt.input) { + setStore("prompt", "input", input.plainText) + syncExtmarksWithPromptParts() + } if (props.disabled) return if (autocomplete?.visible) return if (!store.prompt.input) return @@ -994,7 +1001,11 @@ export function Prompt(props: PromptProps) { input.cursorOffset = input.plainText.length } }} - onSubmit={submit} + onSubmit={() => { + // IME: double-defer so the last composed character (e.g. Korean + // hangul) is flushed to plainText before we read it for submission. + setTimeout(() => setTimeout(() => submit(), 0), 0) + }} onPaste={async (event: PasteEvent) => { if (props.disabled) { event.preventDefault() diff --git a/packages/opencode/src/cli/cmd/tui/thread.ts b/packages/opencode/src/cli/cmd/tui/thread.ts index 0534b147a5..972e67d103 100644 --- a/packages/opencode/src/cli/cmd/tui/thread.ts +++ b/packages/opencode/src/cli/cmd/tui/thread.ts @@ -137,12 +137,18 @@ export const TuiThreadCommand = cmd({ ), }) worker.onerror = (e) => { - Log.Default.error(e) + Log.Default.error("thread error", { + message: e.message, + filename: e.filename, + lineno: e.lineno, + colno: e.colno, + error: e.error, + }) } const client = Rpc.client(worker) const error = (e: unknown) => { - Log.Default.error(e) + Log.Default.error("process error", { error: errorMessage(e) }) } const reload = () => { client.call("reload", undefined).catch((err) => { diff --git a/packages/opencode/src/cli/cmd/uninstall.ts b/packages/opencode/src/cli/cmd/uninstall.ts index de41f32a0d..31830f0859 100644 --- a/packages/opencode/src/cli/cmd/uninstall.ts +++ b/packages/opencode/src/cli/cmd/uninstall.ts @@ -1,6 +1,7 @@ import type { Argv } from "yargs" import { UI } from "../ui" import * as prompts from "@clack/prompts" +import { AppRuntime } from "@/effect/app-runtime" import { Installation } from "../../installation" import { Global } from "../../global" import fs from "fs/promises" @@ -57,7 +58,7 @@ export const UninstallCommand = { UI.empty() prompts.intro("Uninstall OpenCode") - const method = await Installation.method() + const method = await AppRuntime.runPromise(Installation.Service.use((svc) => svc.method())) prompts.log.info(`Installation method: ${method}`) const targets = await collectRemovalTargets(args, method) diff --git a/packages/opencode/src/cli/cmd/upgrade.ts b/packages/opencode/src/cli/cmd/upgrade.ts index 0182056633..3ffa0f228c 100644 --- a/packages/opencode/src/cli/cmd/upgrade.ts +++ b/packages/opencode/src/cli/cmd/upgrade.ts @@ -1,6 +1,7 @@ import type { Argv } from "yargs" import { UI } from "../ui" import * as prompts from "@clack/prompts" +import { AppRuntime } from "@/effect/app-runtime" import { Installation } from "../../installation" export const UpgradeCommand = { @@ -24,7 +25,7 @@ export const UpgradeCommand = { UI.println(UI.logo(" ")) UI.empty() prompts.intro("Upgrade") - const detectedMethod = await Installation.method() + const detectedMethod = await AppRuntime.runPromise(Installation.Service.use((svc) => svc.method())) const method = (args.method as Installation.Method) ?? detectedMethod if (method === "unknown") { prompts.log.error(`opencode is installed to ${process.execPath} and may be managed by a package manager`) @@ -42,7 +43,9 @@ export const UpgradeCommand = { } } prompts.log.info("Using method: " + method) - const target = args.target ? args.target.replace(/^v/, "") : await Installation.latest() + const target = args.target + ? args.target.replace(/^v/, "") + : await AppRuntime.runPromise(Installation.Service.use((svc) => svc.latest())) if (Installation.VERSION === target) { prompts.log.warn(`opencode upgrade skipped: ${target} is already installed`) @@ -53,7 +56,9 @@ export const UpgradeCommand = { prompts.log.info(`From ${Installation.VERSION} → ${target}`) const spinner = prompts.spinner() spinner.start("Upgrading...") - const err = await Installation.upgrade(method, target).catch((err) => err) + const err = await AppRuntime.runPromise(Installation.Service.use((svc) => svc.upgrade(method, target))).catch( + (err) => err, + ) if (err) { spinner.stop("Upgrade failed", 1) if (err instanceof Installation.UpgradeFailedError) { diff --git a/packages/opencode/src/cli/upgrade.ts b/packages/opencode/src/cli/upgrade.ts index 7b7199d4ea..e902dcb921 100644 --- a/packages/opencode/src/cli/upgrade.ts +++ b/packages/opencode/src/cli/upgrade.ts @@ -1,12 +1,13 @@ import { Bus } from "@/bus" import { Config } from "@/config/config" +import { AppRuntime } from "@/effect/app-runtime" import { Flag } from "@/flag/flag" import { Installation } from "@/installation" export async function upgrade() { const config = await Config.getGlobal() - const method = await Installation.method() - const latest = await Installation.latest(method).catch(() => {}) + const method = await AppRuntime.runPromise(Installation.Service.use((svc) => svc.method())) + const latest = await AppRuntime.runPromise(Installation.Service.use((svc) => svc.latest(method))).catch(() => {}) if (!latest) return if (Flag.OPENCODE_ALWAYS_NOTIFY_UPDATE) { @@ -25,7 +26,7 @@ export async function upgrade() { } if (method === "unknown") return - await Installation.upgrade(method, latest) + await AppRuntime.runPromise(Installation.Service.use((svc) => svc.upgrade(method, latest))) .then(() => Bus.publish(Installation.Event.Updated, { version: latest })) .catch(() => {}) } diff --git a/packages/opencode/src/command/index.ts b/packages/opencode/src/command/index.ts index 088d7c5659..42f53301b2 100644 --- a/packages/opencode/src/command/index.ts +++ b/packages/opencode/src/command/index.ts @@ -1,8 +1,9 @@ import { BusEvent } from "@/bus/bus-event" import { InstanceState } from "@/effect/instance-state" -import { makeRuntime } from "@/effect/run-service" +import type { InstanceContext } from "@/project/instance" import { SessionID, MessageID } from "@/session/schema" -import { Effect, Layer, ServiceMap } from "effect" +import { Effect, Layer, Context } from "effect" +import { EffectLogger } from "@/effect/logger" import z from "zod" import { Config } from "../config/config" import { MCP } from "../mcp" @@ -70,7 +71,7 @@ export namespace Command { readonly list: () => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/Command") {} + export class Service extends Context.Service()("@opencode/Command") {} export const layer = Layer.effect( Service, @@ -79,7 +80,7 @@ export namespace Command { const mcp = yield* MCP.Service const skill = yield* Skill.Service - const init = Effect.fn("Command.state")(function* (ctx) { + const init = Effect.fn("Command.state")(function* (ctx: InstanceContext) { const cfg = yield* config.get() const commands: Record = {} @@ -140,6 +141,7 @@ export namespace Command { .map((message) => (message.content.type === "text" ? message.content.text : "")) .join("\n") || "", ), + Effect.provide(EffectLogger.layer), ), ) }, @@ -186,10 +188,4 @@ export namespace Command { Layer.provide(MCP.defaultLayer), Layer.provide(Skill.defaultLayer), ) - - const { runPromise } = makeRuntime(Service, defaultLayer) - - export async function list() { - return runPromise((svc) => svc.list()) - } } diff --git a/packages/opencode/src/config/config.ts b/packages/opencode/src/config/config.ts index ff79b739fe..ecce8fb8f8 100644 --- a/packages/opencode/src/config/config.ts +++ b/packages/opencode/src/config/config.ts @@ -4,7 +4,6 @@ import { pathToFileURL } from "url" import os from "os" import { Process } from "../util/process" import z from "zod" -import { ModelsDev } from "../provider/models" import { mergeDeep, pipe, unique } from "remeda" import { Global } from "../global" import fsNode from "fs/promises" @@ -37,10 +36,11 @@ import type { ConsoleState } from "./console-state" import { AppFileSystem } from "@/filesystem" import { InstanceState } from "@/effect/instance-state" import { makeRuntime } from "@/effect/run-service" -import { Duration, Effect, Layer, Option, ServiceMap } from "effect" +import { Duration, Effect, Layer, Option, Context } from "effect" import { Flock } from "@/util/flock" import { isPathPluginSpec, parsePluginSpecifier, resolvePathPluginTarget } from "@/plugin/shared" import { Npm } from "@/npm" +import { InstanceRef } from "@/effect/instance-ref" export namespace Config { const ModelId = z.string().meta({ $ref: "https://models.dev/model-schema.json#/$defs/Model" }) @@ -1126,7 +1126,7 @@ export namespace Config { readonly waitForDependencies: () => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/Config") {} + export class Service extends Context.Service()("@opencode/Config") {} function globalConfigFile() { const candidates = ["opencode.jsonc", "opencode.json", "config.json"].map((file) => @@ -1327,27 +1327,31 @@ export namespace Config { const consoleManagedProviders = new Set() let activeOrgName: string | undefined - const scope = (source: string): PluginScope => { + const scope = Effect.fnUntraced(function* (source: string) { if (source.startsWith("http://") || source.startsWith("https://")) return "global" if (source === "OPENCODE_CONFIG_CONTENT") return "local" - if (Instance.containsPath(source)) return "local" + if (yield* InstanceRef.use((ctx) => Effect.succeed(Instance.containsPath(source, ctx)))) return "local" return "global" - } + }) - const track = (source: string, list: PluginSpec[] | undefined, kind?: PluginScope) => { + const track = Effect.fnUntraced(function* ( + source: string, + list: PluginSpec[] | undefined, + kind?: PluginScope, + ) { if (!list?.length) return - const hit = kind ?? scope(source) + const hit = kind ?? (yield* scope(source)) const plugins = deduplicatePluginOrigins([ ...(result.plugin_origins ?? []), ...list.map((spec) => ({ spec, source, scope: hit })), ]) result.plugin = plugins.map((item) => item.spec) result.plugin_origins = plugins - } + }) const merge = (source: string, next: Info, kind?: PluginScope) => { result = mergeConfigConcatArrays(result, next) - track(source, next.plugin, kind) + return track(source, next.plugin, kind) } for (const [key, value] of Object.entries(auth)) { @@ -1367,16 +1371,16 @@ export namespace Config { dir: path.dirname(source), source, }) - merge(source, next, "global") + yield* merge(source, next, "global") log.debug("loaded remote config from well-known", { url }) } } const global = yield* getGlobal() - merge(Global.Path.config, global, "global") + yield* merge(Global.Path.config, global, "global") if (Flag.OPENCODE_CONFIG) { - merge(Flag.OPENCODE_CONFIG, yield* loadFile(Flag.OPENCODE_CONFIG)) + yield* merge(Flag.OPENCODE_CONFIG, yield* loadFile(Flag.OPENCODE_CONFIG)) log.debug("loaded custom config", { path: Flag.OPENCODE_CONFIG }) } @@ -1384,7 +1388,7 @@ export namespace Config { for (const file of yield* Effect.promise(() => ConfigPaths.projectFiles("opencode", ctx.directory, ctx.worktree), )) { - merge(file, yield* loadFile(file), "local") + yield* merge(file, yield* loadFile(file), "local") } } @@ -1405,7 +1409,7 @@ export namespace Config { for (const file of ["opencode.json", "opencode.jsonc"]) { const source = path.join(dir, file) log.debug(`loading config from ${source}`) - merge(source, yield* loadFile(source)) + yield* merge(source, yield* loadFile(source)) result.agent ??= {} result.mode ??= {} result.plugin ??= [] @@ -1424,7 +1428,7 @@ export namespace Config { result.agent = mergeDeep(result.agent, yield* Effect.promise(() => loadAgent(dir))) result.agent = mergeDeep(result.agent, yield* Effect.promise(() => loadMode(dir))) const list = yield* Effect.promise(() => loadPlugin(dir)) - track(dir, list) + yield* track(dir, list) } if (process.env.OPENCODE_CONFIG_CONTENT) { @@ -1433,7 +1437,7 @@ export namespace Config { dir: ctx.directory, source, }) - merge(source, next, "local") + yield* merge(source, next, "local") log.debug("loaded custom config from OPENCODE_CONFIG_CONTENT") } @@ -1462,7 +1466,7 @@ export namespace Config { for (const providerID of Object.keys(next.provider ?? {})) { consoleManagedProviders.add(providerID) } - merge(source, next, "global") + yield* merge(source, next, "global") } }).pipe( Effect.catch((err) => { @@ -1477,7 +1481,7 @@ export namespace Config { if (existsSync(managedDir)) { for (const file of ["opencode.json", "opencode.jsonc"]) { const source = path.join(managedDir, file) - merge(source, yield* loadFile(source), "global") + yield* merge(source, yield* loadFile(source), "global") } } diff --git a/packages/opencode/src/control-plane/schema.ts b/packages/opencode/src/control-plane/schema.ts index 7618f46ad4..7262a380b0 100644 --- a/packages/opencode/src/control-plane/schema.ts +++ b/packages/opencode/src/control-plane/schema.ts @@ -10,8 +10,7 @@ export type WorkspaceID = typeof workspaceIdSchema.Type export const WorkspaceID = workspaceIdSchema.pipe( withStatics((schema: typeof workspaceIdSchema) => ({ - make: (id: string) => schema.makeUnsafe(id), - ascending: (id?: string) => schema.makeUnsafe(Identifier.ascending("workspace", id)), + ascending: (id?: string) => schema.make(Identifier.ascending("workspace", id)), zod: Identifier.schema("workspace").pipe(z.custom()), })), ) diff --git a/packages/opencode/src/control-plane/workspace-context.ts b/packages/opencode/src/control-plane/workspace-context.ts index 37204d17d6..173ec6178a 100644 --- a/packages/opencode/src/control-plane/workspace-context.ts +++ b/packages/opencode/src/control-plane/workspace-context.ts @@ -1,11 +1,11 @@ -import { Context } from "../util/context" +import { LocalContext } from "../util/local-context" import type { WorkspaceID } from "../control-plane/schema" export interface WorkspaceContext { workspaceID: string } -const context = Context.create("instance") +const context = LocalContext.create("instance") export const WorkspaceContext = { async provide(input: { workspaceID: WorkspaceID; fn: () => R }): Promise { diff --git a/packages/opencode/src/effect/bootstrap-runtime.ts b/packages/opencode/src/effect/bootstrap-runtime.ts new file mode 100644 index 0000000000..648f2484e6 --- /dev/null +++ b/packages/opencode/src/effect/bootstrap-runtime.ts @@ -0,0 +1,9 @@ +import { Layer, ManagedRuntime } from "effect" +import { memoMap } from "./run-service" + +import { Format } from "@/format" +import { ShareNext } from "@/share/share-next" + +export const BootstrapLayer = Layer.mergeAll(Format.defaultLayer, ShareNext.defaultLayer) + +export const BootstrapRuntime = ManagedRuntime.make(BootstrapLayer, { memoMap }) diff --git a/packages/opencode/src/effect/cross-spawn-spawner.ts b/packages/opencode/src/effect/cross-spawn-spawner.ts index 76982a6133..5e25263a08 100644 --- a/packages/opencode/src/effect/cross-spawn-spawner.ts +++ b/packages/opencode/src/effect/cross-spawn-spawner.ts @@ -402,6 +402,7 @@ export const make = Effect.gen(function* () { const fd = yield* setupFds(command, proc, extra) const out = setupOutput(command, proc, sout, serr) + let ref = true return makeHandle({ pid: ProcessId(proc.pid!), stdin: yield* setupStdin(command, proc, sin), @@ -432,6 +433,18 @@ export const make = Effect.gen(function* () { orElse: () => send("SIGKILL").pipe(Effect.andThen(Deferred.await(signal)), Effect.asVoid), }) }, + unref: Effect.sync(() => { + if (ref) { + proc.unref() + ref = false + } + return Effect.sync(() => { + if (!ref) { + proc.ref() + ref = true + } + }) + }), }) } case "PipedCommand": { diff --git a/packages/opencode/src/effect/instance-ref.ts b/packages/opencode/src/effect/instance-ref.ts index 07a510a4f8..301316c771 100644 --- a/packages/opencode/src/effect/instance-ref.ts +++ b/packages/opencode/src/effect/instance-ref.ts @@ -1,10 +1,10 @@ -import { ServiceMap } from "effect" +import { Context } from "effect" import type { InstanceContext } from "@/project/instance" -export const InstanceRef = ServiceMap.Reference("~opencode/InstanceRef", { +export const InstanceRef = Context.Reference("~opencode/InstanceRef", { defaultValue: () => undefined, }) -export const WorkspaceRef = ServiceMap.Reference("~opencode/WorkspaceRef", { +export const WorkspaceRef = Context.Reference("~opencode/WorkspaceRef", { defaultValue: () => undefined, }) diff --git a/packages/opencode/src/effect/instance-state.ts b/packages/opencode/src/effect/instance-state.ts index 878648855e..b3392d1563 100644 --- a/packages/opencode/src/effect/instance-state.ts +++ b/packages/opencode/src/effect/instance-state.ts @@ -1,6 +1,7 @@ -import { Effect, Fiber, ScopedCache, Scope, ServiceMap } from "effect" +import { Effect, Fiber, ScopedCache, Scope, Context } from "effect" +import { EffectLogger } from "@/effect/logger" import { Instance, type InstanceContext } from "@/project/instance" -import { Context } from "@/util/context" +import { LocalContext } from "@/util/local-context" import { InstanceRef, WorkspaceRef } from "./instance-ref" import { registerDisposer } from "./instance-registry" import { WorkspaceContext } from "@/control-plane/workspace-context" @@ -17,10 +18,10 @@ export namespace InstanceState { try { return Instance.bind(fn) } catch (err) { - if (!(err instanceof Context.NotFound)) throw err + if (!(err instanceof LocalContext.NotFound)) throw err } const fiber = Fiber.getCurrent() - const ctx = fiber ? ServiceMap.getReferenceUnsafe(fiber.services, InstanceRef) : undefined + const ctx = fiber ? Context.getReferenceUnsafe(fiber.context, InstanceRef) : undefined if (!ctx) return fn return ((...args: any[]) => Instance.restore(ctx, () => fn(...args))) as F } @@ -47,7 +48,9 @@ export namespace InstanceState { }), }) - const off = registerDisposer((directory) => Effect.runPromise(ScopedCache.invalidate(cache, directory))) + const off = registerDisposer((directory) => + Effect.runPromise(ScopedCache.invalidate(cache, directory).pipe(Effect.provide(EffectLogger.layer))), + ) yield* Effect.addFinalizer(() => Effect.sync(off)) return { diff --git a/packages/opencode/src/effect/logger.ts b/packages/opencode/src/effect/logger.ts new file mode 100644 index 0000000000..7a7f0a541a --- /dev/null +++ b/packages/opencode/src/effect/logger.ts @@ -0,0 +1,67 @@ +import { Cause, Effect, Logger, References } from "effect" +import { Log } from "@/util/log" + +export namespace EffectLogger { + type Fields = Record + + export interface Handle { + readonly debug: (msg?: unknown, extra?: Fields) => Effect.Effect + readonly info: (msg?: unknown, extra?: Fields) => Effect.Effect + readonly warn: (msg?: unknown, extra?: Fields) => Effect.Effect + readonly error: (msg?: unknown, extra?: Fields) => Effect.Effect + readonly with: (extra: Fields) => Handle + } + + const clean = (input?: Fields): Fields => + Object.fromEntries(Object.entries(input ?? {}).filter((entry) => entry[1] !== undefined && entry[1] !== null)) + + const text = (input: unknown): string => { + if (Array.isArray(input)) return input.map((item) => String(item)).join(" ") + return input === undefined ? "" : String(input) + } + + const call = (run: (msg?: unknown) => Effect.Effect, base: Fields, msg?: unknown, extra?: Fields) => { + const ann = clean({ ...base, ...extra }) + const fx = run(msg) + return Object.keys(ann).length ? Effect.annotateLogs(fx, ann) : fx + } + + export const logger = Logger.make((opts) => { + const extra = clean(opts.fiber.getRef(References.CurrentLogAnnotations)) + const now = opts.date.getTime() + for (const [key, start] of opts.fiber.getRef(References.CurrentLogSpans)) { + extra[`logSpan.${key}`] = `${now - start}ms` + } + if (opts.cause.reasons.length > 0) { + extra.cause = Cause.pretty(opts.cause) + } + + const svc = typeof extra.service === "string" ? extra.service : undefined + if (svc) delete extra.service + const log = svc ? Log.create({ service: svc }) : Log.Default + const msg = text(opts.message) + + switch (opts.logLevel) { + case "Trace": + case "Debug": + return log.debug(msg, extra) + case "Warn": + return log.warn(msg, extra) + case "Error": + case "Fatal": + return log.error(msg, extra) + default: + return log.info(msg, extra) + } + }) + + export const layer = Logger.layer([logger], { mergeWithExisting: false }) + + export const create = (base: Fields = {}): Handle => ({ + debug: (msg, extra) => call((item) => Effect.logDebug(item), base, msg, extra), + info: (msg, extra) => call((item) => Effect.logInfo(item), base, msg, extra), + warn: (msg, extra) => call((item) => Effect.logWarning(item), base, msg, extra), + error: (msg, extra) => call((item) => Effect.logError(item), base, msg, extra), + with: (extra) => create({ ...base, ...extra }), + }) +} diff --git a/packages/opencode/src/effect/oltp.ts b/packages/opencode/src/effect/oltp.ts index 1fa697fb6e..33b67151af 100644 --- a/packages/opencode/src/effect/oltp.ts +++ b/packages/opencode/src/effect/oltp.ts @@ -1,34 +1,41 @@ -import { Layer } from "effect" +import { Duration, Layer } from "effect" import { FetchHttpClient } from "effect/unstable/http" import { Otlp } from "effect/unstable/observability" +import { EffectLogger } from "@/effect/logger" import { Flag } from "@/flag/flag" import { CHANNEL, VERSION } from "@/installation/meta" export namespace Observability { - export const enabled = !!Flag.OTEL_EXPORTER_OTLP_ENDPOINT + const base = Flag.OTEL_EXPORTER_OTLP_ENDPOINT + export const enabled = !!base - export const layer = !Flag.OTEL_EXPORTER_OTLP_ENDPOINT - ? Layer.empty - : Otlp.layerJson({ - baseUrl: Flag.OTEL_EXPORTER_OTLP_ENDPOINT, - loggerMergeWithExisting: false, - resource: { - serviceName: "opencode", - serviceVersion: VERSION, - attributes: { - "deployment.environment.name": CHANNEL === "local" ? "local" : CHANNEL, - "opencode.client": Flag.OPENCODE_CLIENT, - }, + const resource = { + serviceName: "opencode", + serviceVersion: VERSION, + attributes: { + "deployment.environment.name": CHANNEL === "local" ? "local" : CHANNEL, + "opencode.client": Flag.OPENCODE_CLIENT, + }, + } + + const headers = Flag.OTEL_EXPORTER_OTLP_HEADERS + ? Flag.OTEL_EXPORTER_OTLP_HEADERS.split(",").reduce( + (acc, x) => { + const [key, value] = x.split("=") + acc[key] = value + return acc }, - headers: Flag.OTEL_EXPORTER_OTLP_HEADERS - ? Flag.OTEL_EXPORTER_OTLP_HEADERS.split(",").reduce( - (acc, x) => { - const [key, value] = x.split("=") - acc[key] = value - return acc - }, - {} as Record, - ) - : undefined, - }).pipe(Layer.provide(FetchHttpClient.layer)) + {} as Record, + ) + : undefined + + export const layer = !base + ? EffectLogger.layer + : Otlp.layerJson({ + baseUrl: base, + loggerExportInterval: Duration.seconds(1), + loggerMergeWithExisting: true, + resource, + headers, + }).pipe(Layer.provide(EffectLogger.layer), Layer.provide(FetchHttpClient.layer)) } diff --git a/packages/opencode/src/effect/run-service.ts b/packages/opencode/src/effect/run-service.ts index 7dffa8caea..5322786125 100644 --- a/packages/opencode/src/effect/run-service.ts +++ b/packages/opencode/src/effect/run-service.ts @@ -1,7 +1,7 @@ import { Effect, Layer, ManagedRuntime } from "effect" -import * as ServiceMap from "effect/ServiceMap" +import * as Context from "effect/Context" import { Instance } from "@/project/instance" -import { Context } from "@/util/context" +import { LocalContext } from "@/util/local-context" import { InstanceRef, WorkspaceRef } from "./instance-ref" import { Observability } from "./oltp" import { WorkspaceContext } from "@/control-plane/workspace-context" @@ -14,12 +14,12 @@ export function attach(effect: Effect.Effect): Effect.Effect(service: ServiceMap.Service, layer: Layer.Layer) { +export function makeRuntime(service: Context.Service, layer: Layer.Layer) { let rt: ManagedRuntime.ManagedRuntime | undefined const getRuntime = () => (rt ??= ManagedRuntime.make(Layer.merge(layer, Observability.layer), { memoMap })) diff --git a/packages/opencode/src/file/index.ts b/packages/opencode/src/file/index.ts index 47d15fbb00..80ed2b7efb 100644 --- a/packages/opencode/src/file/index.ts +++ b/packages/opencode/src/file/index.ts @@ -3,7 +3,7 @@ import { InstanceState } from "@/effect/instance-state" import { makeRuntime } from "@/effect/run-service" import { AppFileSystem } from "@/filesystem" import { Git } from "@/git" -import { Effect, Layer, ServiceMap } from "effect" +import { Effect, Layer, Context } from "effect" import { formatPatch, structuredPatch } from "diff" import fuzzysort from "fuzzysort" import ignore from "ignore" @@ -337,7 +337,7 @@ export namespace File { }) => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/File") {} + export class Service extends Context.Service()("@opencode/File") {} export const layer = Layer.effect( Service, diff --git a/packages/opencode/src/file/ripgrep.ts b/packages/opencode/src/file/ripgrep.ts index 4f02c97b17..4d0fc5598f 100644 --- a/packages/opencode/src/file/ripgrep.ts +++ b/packages/opencode/src/file/ripgrep.ts @@ -3,7 +3,7 @@ import path from "path" import { Global } from "../global" import fs from "fs/promises" import z from "zod" -import { Effect, Layer, ServiceMap } from "effect" +import { Effect, Layer, Context } from "effect" import * as Stream from "effect/Stream" import { ChildProcess } from "effect/unstable/process" import { ChildProcessSpawner } from "effect/unstable/process/ChildProcessSpawner" @@ -291,7 +291,7 @@ export namespace Ripgrep { }) => Stream.Stream } - export class Service extends ServiceMap.Service()("@opencode/Ripgrep") {} + export class Service extends Context.Service()("@opencode/Ripgrep") {} export const layer: Layer.Layer = Layer.effect( Service, diff --git a/packages/opencode/src/file/time.ts b/packages/opencode/src/file/time.ts index d5ca3db853..05a70f80e8 100644 --- a/packages/opencode/src/file/time.ts +++ b/packages/opencode/src/file/time.ts @@ -1,4 +1,4 @@ -import { DateTime, Effect, Layer, Option, Semaphore, ServiceMap } from "effect" +import { DateTime, Effect, Layer, Option, Semaphore, Context } from "effect" import { InstanceState } from "@/effect/instance-state" import { makeRuntime } from "@/effect/run-service" import { AppFileSystem } from "@/filesystem" @@ -34,10 +34,10 @@ export namespace FileTime { readonly read: (sessionID: SessionID, file: string) => Effect.Effect readonly get: (sessionID: SessionID, file: string) => Effect.Effect readonly assert: (sessionID: SessionID, filepath: string) => Effect.Effect - readonly withLock: (filepath: string, fn: () => Promise) => Effect.Effect + readonly withLock: (filepath: string, fn: () => Effect.Effect) => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/FileTime") {} + export class Service extends Context.Service()("@opencode/FileTime") {} export const layer = Layer.effect( Service, @@ -103,8 +103,8 @@ export namespace FileTime { ) }) - const withLock = Effect.fn("FileTime.withLock")(function* (filepath: string, fn: () => Promise) { - return yield* Effect.promise(fn).pipe((yield* getLock(filepath)).withPermits(1)) + const withLock = Effect.fn("FileTime.withLock")(function* (filepath: string, fn: () => Effect.Effect) { + return yield* fn().pipe((yield* getLock(filepath)).withPermits(1)) }) return Service.of({ read, get, assert, withLock }) @@ -128,6 +128,6 @@ export namespace FileTime { } export async function withLock(filepath: string, fn: () => Promise): Promise { - return runPromise((s) => s.withLock(filepath, fn)) + return runPromise((s) => s.withLock(filepath, () => Effect.promise(fn))) } } diff --git a/packages/opencode/src/file/watcher.ts b/packages/opencode/src/file/watcher.ts index dd8b5798ca..609543fb06 100644 --- a/packages/opencode/src/file/watcher.ts +++ b/packages/opencode/src/file/watcher.ts @@ -1,4 +1,4 @@ -import { Cause, Effect, Layer, Scope, ServiceMap } from "effect" +import { Cause, Effect, Layer, Scope, Context } from "effect" // @ts-ignore import { createWrapper } from "@parcel/watcher/wrapper" import type ParcelWatcher from "@parcel/watcher" @@ -65,7 +65,7 @@ export namespace FileWatcher { readonly init: () => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/FileWatcher") {} + export class Service extends Context.Service()("@opencode/FileWatcher") {} export const layer = Layer.effect( Service, diff --git a/packages/opencode/src/filesystem/index.ts b/packages/opencode/src/filesystem/index.ts index 01fdcd2e5e..2c3964ec25 100644 --- a/packages/opencode/src/filesystem/index.ts +++ b/packages/opencode/src/filesystem/index.ts @@ -3,7 +3,7 @@ import { dirname, join, relative, resolve as pathResolve } from "path" import { realpathSync } from "fs" import * as NFS from "fs/promises" import { lookup } from "mime-types" -import { Effect, FileSystem, Layer, Schema, ServiceMap } from "effect" +import { Effect, FileSystem, Layer, Schema, Context } from "effect" import type { PlatformError } from "effect/PlatformError" import { Glob } from "../util/glob" @@ -36,7 +36,7 @@ export namespace AppFileSystem { readonly globMatch: (pattern: string, filepath: string) => boolean } - export class Service extends ServiceMap.Service()("@opencode/FileSystem") {} + export class Service extends Context.Service()("@opencode/FileSystem") {} export const layer = Layer.effect( Service, diff --git a/packages/opencode/src/format/index.ts b/packages/opencode/src/format/index.ts index 56df63cf96..1aeb2e51a4 100644 --- a/packages/opencode/src/format/index.ts +++ b/packages/opencode/src/format/index.ts @@ -1,8 +1,7 @@ -import { Effect, Layer, ServiceMap } from "effect" +import { Effect, Layer, Context } from "effect" import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process" import * as CrossSpawnSpawner from "@/effect/cross-spawn-spawner" import { InstanceState } from "@/effect/instance-state" -import { makeRuntime } from "@/effect/run-service" import path from "path" import { mergeDeep } from "remeda" import z from "zod" @@ -31,7 +30,7 @@ export namespace Format { readonly file: (filepath: string) => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/Format") {} + export class Service extends Context.Service()("@opencode/Format") {} export const layer = Layer.effect( Service, @@ -193,18 +192,4 @@ export namespace Format { Layer.provide(Config.defaultLayer), Layer.provide(CrossSpawnSpawner.defaultLayer), ) - - const { runPromise } = makeRuntime(Service, defaultLayer) - - export async function init() { - return runPromise((s) => s.init()) - } - - export async function status() { - return runPromise((s) => s.status()) - } - - export async function file(filepath: string) { - return runPromise((s) => s.file(filepath)) - } } diff --git a/packages/opencode/src/git/index.ts b/packages/opencode/src/git/index.ts index 10c96d560b..ac964ee0a0 100644 --- a/packages/opencode/src/git/index.ts +++ b/packages/opencode/src/git/index.ts @@ -1,7 +1,6 @@ import * as CrossSpawnSpawner from "@/effect/cross-spawn-spawner" -import { Effect, Layer, ServiceMap, Stream } from "effect" +import { Effect, Layer, Context, Stream } from "effect" import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process" -import { makeRuntime } from "@/effect/run-service" export namespace Git { const cfg = [ @@ -80,7 +79,7 @@ export namespace Git { return "modified" } - export class Service extends ServiceMap.Service()("@opencode/Git") {} + export class Service extends Context.Service()("@opencode/Git") {} export const layer = Layer.effect( Service, @@ -258,14 +257,4 @@ export namespace Git { ) export const defaultLayer = layer.pipe(Layer.provide(CrossSpawnSpawner.defaultLayer)) - - const { runPromise } = makeRuntime(Service, defaultLayer) - - export async function run(args: string[], opts: Options) { - return runPromise((git) => git.run(args, opts)) - } - - export async function defaultBranch(cwd: string) { - return runPromise((git) => git.defaultBranch(cwd)) - } } diff --git a/packages/opencode/src/installation/index.ts b/packages/opencode/src/installation/index.ts index f4cd4d09fa..29f9bf1be2 100644 --- a/packages/opencode/src/installation/index.ts +++ b/packages/opencode/src/installation/index.ts @@ -1,7 +1,6 @@ -import { Effect, Layer, Schema, ServiceMap, Stream } from "effect" +import { Effect, Layer, Schema, Context, Stream } from "effect" import { FetchHttpClient, HttpClient, HttpClientRequest, HttpClientResponse } from "effect/unstable/http" import * as CrossSpawnSpawner from "@/effect/cross-spawn-spawner" -import { makeRuntime } from "@/effect/run-service" import { withTransientReadRetry } from "@/util/effect-http-client" import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process" import path from "path" @@ -91,7 +90,7 @@ export namespace Installation { readonly upgrade: (method: Method, target: string) => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/Installation") {} + export class Service extends Context.Service()("@opencode/Installation") {} export const layer: Layer.Layer = Layer.effect( @@ -338,18 +337,4 @@ export namespace Installation { Layer.provide(FetchHttpClient.layer), Layer.provide(CrossSpawnSpawner.defaultLayer), ) - - const { runPromise } = makeRuntime(Service, defaultLayer) - - export async function method(): Promise { - return runPromise((svc) => svc.method()) - } - - export async function latest(installMethod?: Method): Promise { - return runPromise((svc) => svc.latest(installMethod)) - } - - export async function upgrade(m: Method, target: string): Promise { - return runPromise((svc) => svc.upgrade(m, target)) - } } diff --git a/packages/opencode/src/lsp/index.ts b/packages/opencode/src/lsp/index.ts index 33fd209ccc..8e34a88546 100644 --- a/packages/opencode/src/lsp/index.ts +++ b/packages/opencode/src/lsp/index.ts @@ -11,7 +11,7 @@ import { Instance } from "../project/instance" import { Flag } from "@/flag/flag" import { Process } from "../util/process" import { spawn as lspspawn } from "./launch" -import { Effect, Layer, ServiceMap } from "effect" +import { Effect, Layer, Context } from "effect" import { InstanceState } from "@/effect/instance-state" import { makeRuntime } from "@/effect/run-service" @@ -156,7 +156,7 @@ export namespace LSP { readonly outgoingCalls: (input: LocInput) => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/LSP") {} + export class Service extends Context.Service()("@opencode/LSP") {} export const layer = Layer.effect( Service, @@ -540,6 +540,8 @@ export namespace LSP { export const outgoingCalls = async (input: LocInput) => runPromise((svc) => svc.outgoingCalls(input)) export namespace Diagnostic { + const MAX_PER_FILE = 20 + export function pretty(diagnostic: LSPClient.Diagnostic) { const severityMap = { 1: "ERROR", @@ -554,5 +556,14 @@ export namespace LSP { return `${severity} [${line}:${col}] ${diagnostic.message}` } + + export function report(file: string, issues: LSPClient.Diagnostic[]) { + const errors = issues.filter((item) => item.severity === 1) + if (errors.length === 0) return "" + const limited = errors.slice(0, MAX_PER_FILE) + const more = errors.length - MAX_PER_FILE + const suffix = more > 0 ? `\n... and ${more} more` : "" + return `\n${limited.map(pretty).join("\n")}${suffix}\n` + } } } diff --git a/packages/opencode/src/mcp/auth.ts b/packages/opencode/src/mcp/auth.ts index e9c3db8a94..7f33f32b84 100644 --- a/packages/opencode/src/mcp/auth.ts +++ b/packages/opencode/src/mcp/auth.ts @@ -1,7 +1,7 @@ import path from "path" import z from "zod" import { Global } from "../global" -import { Effect, Layer, ServiceMap } from "effect" +import { Effect, Layer, Context } from "effect" import { AppFileSystem } from "@/filesystem" import { makeRuntime } from "@/effect/run-service" @@ -49,7 +49,7 @@ export namespace McpAuth { readonly isTokenExpired: (mcpName: string) => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/McpAuth") {} + export class Service extends Context.Service()("@opencode/McpAuth") {} export const layer = Layer.effect( Service, diff --git a/packages/opencode/src/mcp/index.ts b/packages/opencode/src/mcp/index.ts index 2599a8dec9..696a662c12 100644 --- a/packages/opencode/src/mcp/index.ts +++ b/packages/opencode/src/mcp/index.ts @@ -24,7 +24,8 @@ import { BusEvent } from "../bus/bus-event" import { Bus } from "@/bus" import { TuiEvent } from "@/cli/cmd/tui/event" import open from "open" -import { Effect, Exit, Layer, Option, ServiceMap, Stream } from "effect" +import { Effect, Exit, Layer, Option, Context, Stream } from "effect" +import { EffectLogger } from "@/effect/logger" import { InstanceState } from "@/effect/instance-state" import { makeRuntime } from "@/effect/run-service" import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process" @@ -239,7 +240,7 @@ export namespace MCP { readonly getAuthStatus: (mcpName: string) => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/MCP") {} + export class Service extends Context.Service()("@opencode/MCP") {} export const layer = Layer.effect( Service, @@ -469,12 +470,14 @@ export namespace MCP { log.info("tools list changed notification received", { server: name }) if (s.clients[name] !== client || s.status[name]?.status !== "connected") return - const listed = await Effect.runPromise(defs(name, client, timeout)) + const listed = await Effect.runPromise(defs(name, client, timeout).pipe(Effect.provide(EffectLogger.layer))) if (!listed) return if (s.clients[name] !== client || s.status[name]?.status !== "connected") return s.defs[name] = listed - await Effect.runPromise(bus.publish(ToolsChanged, { server: name }).pipe(Effect.ignore)) + await Effect.runPromise( + bus.publish(ToolsChanged, { server: name }).pipe(Effect.ignore, Effect.provide(EffectLogger.layer)), + ) }) } diff --git a/packages/opencode/src/permission/index.ts b/packages/opencode/src/permission/index.ts index b2cc0f9bbc..a45aaf59d5 100644 --- a/packages/opencode/src/permission/index.ts +++ b/packages/opencode/src/permission/index.ts @@ -10,7 +10,7 @@ import { PermissionTable } from "@/session/session.sql" import { Database, eq } from "@/storage/db" import { Log } from "@/util/log" import { Wildcard } from "@/util/wildcard" -import { Deferred, Effect, Layer, Schema, ServiceMap } from "effect" +import { Deferred, Effect, Layer, Schema, Context } from "effect" import os from "os" import z from "zod" import { evaluate as evalRule } from "./evaluate" @@ -135,7 +135,7 @@ export namespace Permission { return evalRule(permission, pattern, ...rulesets) } - export class Service extends ServiceMap.Service()("@opencode/Permission") {} + export class Service extends Context.Service()("@opencode/Permission") {} export const layer = Layer.effect( Service, diff --git a/packages/opencode/src/permission/schema.ts b/packages/opencode/src/permission/schema.ts index bfa2b49577..2f1190a238 100644 --- a/packages/opencode/src/permission/schema.ts +++ b/packages/opencode/src/permission/schema.ts @@ -5,12 +5,8 @@ import { Identifier } from "@/id/id" import { Newtype } from "@/util/schema" export class PermissionID extends Newtype()("PermissionID", Schema.String) { - static make(id: string): PermissionID { - return this.makeUnsafe(id) - } - static ascending(id?: string): PermissionID { - return this.makeUnsafe(Identifier.ascending("permission", id)) + return this.make(Identifier.ascending("permission", id)) } static readonly zod = Identifier.schema("permission") as unknown as z.ZodType diff --git a/packages/opencode/src/plugin/index.ts b/packages/opencode/src/plugin/index.ts index 814e7870a4..e0478e0b3c 100644 --- a/packages/opencode/src/plugin/index.ts +++ b/packages/opencode/src/plugin/index.ts @@ -11,7 +11,8 @@ import { CopilotAuthPlugin } from "./github-copilot/copilot" import { gitlabAuthPlugin as GitlabAuthPlugin } from "opencode-gitlab-auth" import { PoeAuthPlugin } from "opencode-poe-auth" import { CloudflareAIGatewayAuthPlugin, CloudflareWorkersAuthPlugin } from "./cloudflare" -import { Effect, Layer, ServiceMap, Stream } from "effect" +import { Effect, Layer, Context, Stream } from "effect" +import { EffectLogger } from "@/effect/logger" import { InstanceState } from "@/effect/instance-state" import { makeRuntime } from "@/effect/run-service" import { errorMessage } from "@/util/error" @@ -44,7 +45,7 @@ export namespace Plugin { readonly init: () => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/Plugin") {} + export class Service extends Context.Service()("@opencode/Plugin") {} // Built-in plugins that are directly imported (not installed from npm) const INTERNAL_PLUGINS: PluginInstance[] = [ @@ -83,7 +84,11 @@ export namespace Plugin { } function publishPluginError(bus: Bus.Interface, message: string) { - Effect.runFork(bus.publish(Session.Event.Error, { error: new NamedError.Unknown({ message }).toObject() })) + Effect.runFork( + bus + .publish(Session.Event.Error, { error: new NamedError.Unknown({ message }).toObject() }) + .pipe(Effect.provide(EffectLogger.layer)), + ) } async function applyPlugin(load: PluginLoader.Loaded, input: PluginInput, hooks: Hooks[]) { @@ -119,7 +124,7 @@ export namespace Plugin { Authorization: `Basic ${Buffer.from(`${Flag.OPENCODE_SERVER_USERNAME ?? "opencode"}:${Flag.OPENCODE_SERVER_PASSWORD}`).toString("base64")}`, } : undefined, - fetch: async (...args) => Server.Default().app.fetch(...args), + fetch: async (...args) => (await Server.Default()).app.fetch(...args), }) const cfg = yield* config.get() const input: PluginInput = { @@ -205,13 +210,15 @@ export namespace Plugin { return message }, }).pipe( - Effect.catch((message) => - bus.publish(Session.Event.Error, { - error: new NamedError.Unknown({ - message: `Failed to load plugin ${load.spec}: ${message}`, - }).toObject(), - }), - ), + Effect.catch(() => { + // TODO: make proper events for this + // bus.publish(Session.Event.Error, { + // error: new NamedError.Unknown({ + // message: `Failed to load plugin ${load.spec}: ${message}`, + // }).toObject(), + // }) + return Effect.void + }), ) } diff --git a/packages/opencode/src/project/bootstrap.ts b/packages/opencode/src/project/bootstrap.ts index a8ad84297a..9f6f7fa6fa 100644 --- a/packages/opencode/src/project/bootstrap.ts +++ b/packages/opencode/src/project/bootstrap.ts @@ -10,13 +10,14 @@ import { Bus } from "../bus" import { Command } from "../command" import { Instance } from "./instance" import { Log } from "@/util/log" +import { BootstrapRuntime } from "@/effect/bootstrap-runtime" import { ShareNext } from "@/share/share-next" export async function InstanceBootstrap() { Log.Default.info("bootstrapping", { directory: Instance.directory }) await Plugin.init() - ShareNext.init() - Format.init() + void BootstrapRuntime.runPromise(ShareNext.Service.use((svc) => svc.init())) + void BootstrapRuntime.runPromise(Format.Service.use((svc) => svc.init())) await LSP.init() File.init() FileWatcher.init() diff --git a/packages/opencode/src/project/instance.ts b/packages/opencode/src/project/instance.ts index 33078183b9..8d2d51db68 100644 --- a/packages/opencode/src/project/instance.ts +++ b/packages/opencode/src/project/instance.ts @@ -3,7 +3,7 @@ import { disposeInstance } from "@/effect/instance-registry" import { Filesystem } from "@/util/filesystem" import { iife } from "@/util/iife" import { Log } from "@/util/log" -import { Context } from "../util/context" +import { LocalContext } from "../util/local-context" import { Project } from "./project" import { WorkspaceContext } from "@/control-plane/workspace-context" import { State } from "./state" @@ -14,7 +14,7 @@ export interface InstanceContext { project: Project.Info } -const context = Context.create("instance") +const context = LocalContext.create("instance") const cache = new Map>() const disposal = { @@ -90,12 +90,13 @@ export const Instance = { * Returns true if path is inside Instance.directory OR Instance.worktree. * Paths within the worktree but outside the working directory should not trigger external_directory permission. */ - containsPath(filepath: string) { - if (Filesystem.contains(Instance.directory, filepath)) return true + containsPath(filepath: string, ctx?: InstanceContext) { + const instance = ctx ?? Instance + if (Filesystem.contains(instance.directory, filepath)) return true // Non-git projects set worktree to "/" which would match ANY absolute path. // Skip worktree check in this case to preserve external_directory permissions. if (Instance.worktree === "/") return false - return Filesystem.contains(Instance.worktree, filepath) + return Filesystem.contains(instance.worktree, filepath) }, /** * Captures the current instance ALS context and returns a wrapper that diff --git a/packages/opencode/src/project/project.ts b/packages/opencode/src/project/project.ts index 8db8df5d55..df07ca2219 100644 --- a/packages/opencode/src/project/project.ts +++ b/packages/opencode/src/project/project.ts @@ -8,7 +8,7 @@ import { BusEvent } from "@/bus/bus-event" import { GlobalBus } from "@/bus/global" import { which } from "../util/which" import { ProjectID } from "./schema" -import { Effect, Layer, Path, Scope, ServiceMap, Stream } from "effect" +import { Effect, Layer, Path, Scope, Context, Stream } from "effect" import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process" import { NodeFileSystem, NodePath } from "@effect/platform-node" import { makeRuntime } from "@/effect/run-service" @@ -100,7 +100,7 @@ export namespace Project { readonly removeSandbox: (id: ProjectID, directory: string) => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/Project") {} + export class Service extends Context.Service()("@opencode/Project") {} type GitResult = { code: number; text: string; stderr: string } diff --git a/packages/opencode/src/project/schema.ts b/packages/opencode/src/project/schema.ts index e904ff5a84..d10c82e2c3 100644 --- a/packages/opencode/src/project/schema.ts +++ b/packages/opencode/src/project/schema.ts @@ -9,8 +9,7 @@ export type ProjectID = typeof projectIdSchema.Type export const ProjectID = projectIdSchema.pipe( withStatics((schema: typeof projectIdSchema) => ({ - global: schema.makeUnsafe("global"), - make: (id: string) => schema.makeUnsafe(id), + global: schema.make("global"), zod: z.string().pipe(z.custom()), })), ) diff --git a/packages/opencode/src/project/vcs.ts b/packages/opencode/src/project/vcs.ts index 0e430d41b9..1b1f21f908 100644 --- a/packages/opencode/src/project/vcs.ts +++ b/packages/opencode/src/project/vcs.ts @@ -1,4 +1,4 @@ -import { Effect, Layer, ServiceMap, Stream } from "effect" +import { Effect, Layer, Context, Stream } from "effect" import { formatPatch, structuredPatch } from "diff" import path from "path" import { Bus } from "@/bus" @@ -151,7 +151,7 @@ export namespace Vcs { root: Git.Base | undefined } - export class Service extends ServiceMap.Service()("@opencode/Vcs") {} + export class Service extends Context.Service()("@opencode/Vcs") {} export const layer: Layer.Layer = Layer.effect( Service, diff --git a/packages/opencode/src/provider/auth.ts b/packages/opencode/src/provider/auth.ts index 38ef4b11f4..e410b86365 100644 --- a/packages/opencode/src/provider/auth.ts +++ b/packages/opencode/src/provider/auth.ts @@ -2,10 +2,9 @@ import type { AuthOAuthResult, Hooks } from "@opencode-ai/plugin" import { NamedError } from "@opencode-ai/util/error" import { Auth } from "@/auth" import { InstanceState } from "@/effect/instance-state" -import { makeRuntime } from "@/effect/run-service" import { Plugin } from "../plugin" import { ProviderID } from "./schema" -import { Array as Arr, Effect, Layer, Record, Result, ServiceMap } from "effect" +import { Array as Arr, Effect, Layer, Record, Result, Context } from "effect" import z from "zod" export namespace ProviderAuth { @@ -109,7 +108,7 @@ export namespace ProviderAuth { pending: Map } - export class Service extends ServiceMap.Service()("@opencode/ProviderAuth") {} + export class Service extends Context.Service()("@opencode/ProviderAuth") {} export const layer: Layer.Layer = Layer.effect( Service, @@ -232,22 +231,4 @@ export namespace ProviderAuth { export const defaultLayer = Layer.suspend(() => layer.pipe(Layer.provide(Auth.defaultLayer), Layer.provide(Plugin.defaultLayer)), ) - - const { runPromise } = makeRuntime(Service, defaultLayer) - - export async function methods() { - return runPromise((svc) => svc.methods()) - } - - export async function authorize(input: { - providerID: ProviderID - method: number - inputs?: Record - }): Promise { - return runPromise((svc) => svc.authorize(input)) - } - - export async function callback(input: { providerID: ProviderID; method: number; code?: string }) { - return runPromise((svc) => svc.callback(input)) - } } diff --git a/packages/opencode/src/provider/models-snapshot.js b/packages/opencode/src/provider/models-snapshot.js index 7b3c6a6a6f..f6a6d09afa 100644 --- a/packages/opencode/src/provider/models-snapshot.js +++ b/packages/opencode/src/provider/models-snapshot.js @@ -1,17057 +1,981 @@ // @ts-nocheck // Auto-generated by build.ts - do not edit export const snapshot = { - evroc: { - id: "evroc", - env: ["EVROC_API_KEY"], + "302ai": { + id: "302ai", + env: ["302AI_API_KEY"], npm: "@ai-sdk/openai-compatible", - api: "https://models.think.evroc.com/v1", - name: "evroc", - doc: "https://docs.evroc.com/products/think/overview.html", + api: "https://api.302.ai/v1", + name: "302.AI", + doc: "https://doc.302.ai", models: { - "nvidia/Llama-3.3-70B-Instruct-FP8": { - id: "nvidia/Llama-3.3-70B-Instruct-FP8", - name: "Llama 3.3 70B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.18, output: 1.18 }, - limit: { context: 131072, output: 32768 }, - }, - "microsoft/Phi-4-multimodal-instruct": { - id: "microsoft/Phi-4-multimodal-instruct", - name: "Phi-4 15B", - family: "phi", - attachment: false, - reasoning: false, - tool_call: false, - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.24, output: 0.47 }, - limit: { context: 32000, output: 32000 }, - }, - "intfloat/multilingual-e5-large-instruct": { - id: "intfloat/multilingual-e5-large-instruct", - name: "E5 Multi-Lingual Large Embeddings 0.6B", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - release_date: "2024-06-01", - last_updated: "2024-06-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.12, output: 0.12 }, - limit: { context: 512, output: 512 }, - }, - "moonshotai/Kimi-K2.5": { - id: "moonshotai/Kimi-K2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 1.47, output: 5.9 }, - limit: { context: 262144, output: 262144 }, - }, - "KBLab/kb-whisper-large": { - id: "KBLab/kb-whisper-large", - name: "KB Whisper", - family: "whisper", - attachment: false, - reasoning: false, - tool_call: false, - release_date: "2024-10-01", - last_updated: "2024-10-01", - modalities: { input: ["audio"], output: ["text"] }, - open_weights: true, - cost: { input: 0.00236, output: 0.00236, output_audio: 2.36 }, - limit: { context: 448, output: 448 }, - }, - "Qwen/Qwen3-30B-A3B-Instruct-2507-FP8": { - id: "Qwen/Qwen3-30B-A3B-Instruct-2507-FP8", - name: "Qwen3 30B 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - release_date: "2025-07-30", - last_updated: "2025-07-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.35, output: 1.42 }, - limit: { context: 64000, output: 64000 }, - }, - "Qwen/Qwen3-Embedding-8B": { - id: "Qwen/Qwen3-Embedding-8B", - name: "Qwen3 Embedding 8B", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - release_date: "2025-07-30", - last_updated: "2025-07-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.12, output: 0.12 }, - limit: { context: 40960, output: 40960 }, - }, - "Qwen/Qwen3-VL-30B-A3B-Instruct": { - id: "Qwen/Qwen3-VL-30B-A3B-Instruct", - name: "Qwen3 VL 30B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - release_date: "2025-07-30", - last_updated: "2025-07-30", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.24, output: 0.94 }, - limit: { context: 100000, output: 100000 }, - }, - "mistralai/Voxtral-Small-24B-2507": { - id: "mistralai/Voxtral-Small-24B-2507", - name: "Voxtral Small 24B", - family: "voxtral", - attachment: false, - reasoning: false, - tool_call: false, - release_date: "2025-03-01", - last_updated: "2025-03-01", - modalities: { input: ["audio", "text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.00236, output: 0.00236, output_audio: 2.36 }, - limit: { context: 32000, output: 32000 }, - }, - "mistralai/devstral-small-2-24b-instruct-2512": { - id: "mistralai/devstral-small-2-24b-instruct-2512", - name: "Devstral Small 2 24B Instruct 2512", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: true, - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.12, output: 0.47 }, - limit: { context: 32768, output: 32768 }, - }, - "mistralai/Magistral-Small-2509": { - id: "mistralai/Magistral-Small-2509", - name: "Magistral Small 1.2 24B", - family: "magistral-small", - attachment: false, - reasoning: false, - tool_call: false, - release_date: "2025-06-01", - last_updated: "2025-06-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.59, output: 2.36 }, - limit: { context: 131072, output: 131072 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "GPT OSS 120B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.24, output: 0.94 }, - limit: { context: 65536, output: 65536 }, - }, - "openai/whisper-large-v3": { - id: "openai/whisper-large-v3", - name: "Whisper 3 Large", - family: "whisper", - attachment: false, - reasoning: false, - tool_call: false, - release_date: "2024-10-01", - last_updated: "2024-10-01", - modalities: { input: ["audio"], output: ["text"] }, - open_weights: true, - cost: { input: 0.00236, output: 0.00236, output_audio: 2.36 }, - limit: { context: 448, output: 4096 }, - }, - }, - }, - zai: { - id: "zai", - env: ["ZHIPU_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.z.ai/api/paas/v4", - name: "Z.AI", - doc: "https://docs.z.ai/guides/overview/pricing", - models: { - "glm-5": { - id: "glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3.2, cache_read: 0.2, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "glm-4.7-flashx": { - id: "glm-4.7-flashx", - name: "GLM-4.7-FlashX", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.4, cache_read: 0.01, cache_write: 0 }, - limit: { context: 200000, output: 131072 }, - }, - "glm-4.5-air": { - id: "glm-4.5-air", - name: "GLM-4.5-Air", - family: "glm-air", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 1.1, cache_read: 0.03, cache_write: 0 }, - limit: { context: 131072, output: 98304 }, - }, - "glm-4.5": { - id: "glm-4.5", - name: "GLM-4.5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2, cache_read: 0.11, cache_write: 0 }, - limit: { context: 131072, output: 98304 }, - }, - "glm-4.5-flash": { - id: "glm-4.5-flash", - name: "GLM-4.5-Flash", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 131072, output: 98304 }, - }, - "glm-4.7-flash": { - id: "glm-4.7-flash", - name: "GLM-4.7-Flash", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 200000, output: 131072 }, - }, - "glm-4.6": { - id: "glm-4.6", - name: "GLM-4.6", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2, cache_read: 0.11, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "glm-4.7": { - id: "glm-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2, cache_read: 0.11, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "glm-5-turbo": { - id: "glm-5-turbo", - name: "GLM-5-Turbo", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-03-16", - last_updated: "2026-03-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.2, output: 4, cache_read: 0.24, cache_write: 0 }, - limit: { context: 200000, output: 131072 }, - }, - "glm-4.5v": { - id: "glm-4.5v", - name: "GLM-4.5V", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-08-11", - last_updated: "2025-08-11", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 1.8 }, - limit: { context: 64000, output: 16384 }, - }, - "glm-4.6v": { - id: "glm-4.6v", - name: "GLM-4.6V", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-08", - last_updated: "2025-12-08", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.9 }, - limit: { context: 128000, output: 32768 }, - }, - }, - }, - "alibaba-coding-plan": { - id: "alibaba-coding-plan", - env: ["ALIBABA_CODING_PLAN_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://coding-intl.dashscope.aliyuncs.com/v1", - name: "Alibaba Coding Plan", - doc: "https://www.alibabacloud.com/help/en/model-studio/coding-plan", - models: { - "glm-5": { - id: "glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 202752, output: 16384 }, - }, - "MiniMax-M2.5": { - id: "MiniMax-M2.5", - name: "MiniMax-M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 196608, input: 196601, output: 24576 }, - }, - "qwen3-coder-next": { - id: "qwen3-coder-next", - name: "Qwen3 Coder Next", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-03", - last_updated: "2026-02-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 262144, output: 65536 }, - }, - "kimi-k2.5": { - id: "kimi-k2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 262144, output: 32768 }, - }, - "qwen3-max-2026-01-23": { - id: "qwen3-max-2026-01-23", - name: "Qwen3 Max", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-01-23", - last_updated: "2026-01-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 262144, output: 32768 }, - }, - "glm-4.7": { - id: "glm-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 202752, output: 16384 }, - }, - "qwen3.5-plus": { - id: "qwen3.5-plus", - name: "Qwen3.5 Plus", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02-16", - last_updated: "2026-02-16", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 1000000, output: 65536 }, - }, - "qwen3-coder-plus": { - id: "qwen3-coder-plus", - name: "Qwen3 Coder Plus", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 1000000, output: 65536 }, - }, - }, - }, - zenmux: { - id: "zenmux", - env: ["ZENMUX_API_KEY"], - npm: "@ai-sdk/anthropic", - api: "https://zenmux.ai/api/anthropic/v1", - name: "ZenMux", - doc: "https://docs.zenmux.ai", - models: { - "xiaomi/mimo-v2-omni": { - id: "xiaomi/mimo-v2-omni", - name: "MiMo V2 Omni", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-03-20", - last_updated: "2026-03-20", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2 }, - limit: { context: 265000, output: 265000 }, - }, - "xiaomi/mimo-v2-flash-free": { - id: "xiaomi/mimo-v2-flash-free", - name: "MiMo-V2-Flash Free", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 262000, output: 64000 }, - }, - "xiaomi/mimo-v2-flash": { - id: "xiaomi/mimo-v2-flash", - name: "MiMo-V2-Flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.3, cache_read: 0.01 }, - limit: { context: 262000, output: 64000 }, - }, - "xiaomi/mimo-v2-pro": { - id: "xiaomi/mimo-v2-pro", - name: "MiMo V2 Pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-03-20", - last_updated: "2026-03-20", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 1.5, output: 4.5 }, - limit: { context: 1000000, output: 256000 }, - }, - "kuaishou/kat-coder-pro-v1-free": { - id: "kuaishou/kat-coder-pro-v1-free", - name: "KAT-Coder-Pro-V1 Free", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-10-23", - last_updated: "2025-10-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 64000 }, - }, - "kuaishou/kat-coder-pro-v1": { - id: "kuaishou/kat-coder-pro-v1", - name: "KAT-Coder-Pro-V1", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-10-23", - last_updated: "2025-10-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2, cache_read: 0.06 }, - limit: { context: 256000, output: 64000 }, - }, - "stepfun/step-3.5-flash-free": { - id: "stepfun/step-3.5-flash-free", - name: "Step 3.5 Flash (Free)", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-02-02", - last_updated: "2026-02-02", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 64000 }, - }, - "stepfun/step-3.5-flash": { - id: "stepfun/step-3.5-flash", - name: "Step 3.5 Flash", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-02-02", - last_updated: "2026-02-02", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 256000, output: 64000 }, - }, - "stepfun/step-3": { - id: "stepfun/step-3", - name: "Step-3", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-07-31", - last_updated: "2025-07-31", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.21, output: 0.57 }, - limit: { context: 65536, output: 64000 }, - }, - "inclusionai/ling-1t": { - id: "inclusionai/ling-1t", - name: "Ling-1T", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-10-09", - last_updated: "2025-10-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.56, output: 2.24, cache_read: 0.11 }, - limit: { context: 128000, output: 64000 }, - }, - "inclusionai/ring-1t": { - id: "inclusionai/ring-1t", - name: "Ring-1T", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-10-12", - last_updated: "2025-10-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.56, output: 2.24, cache_read: 0.11 }, - limit: { context: 128000, output: 64000 }, - }, - "volcengine/doubao-seed-1.8": { - id: "volcengine/doubao-seed-1.8", - name: "Doubao-Seed-1.8", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-12-18", - last_updated: "2025-12-18", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.11, output: 0.28, cache_read: 0.02, cache_write: 0.0024 }, - limit: { context: 256000, output: 64000 }, - }, - "volcengine/doubao-seed-2.0-pro": { - id: "volcengine/doubao-seed-2.0-pro", - name: "Doubao-Seed-2.0-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2026-02-14", - release_date: "2026-02-14", - last_updated: "2026-02-14", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.45, output: 2.24, cache_read: 0.09, cache_write: 0.0024 }, - limit: { context: 256000, output: 64000 }, - }, - "volcengine/doubao-seed-2.0-mini": { - id: "volcengine/doubao-seed-2.0-mini", - name: "Doubao-Seed-2.0-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2026-02-14", - release_date: "2026-02-14", - last_updated: "2026-02-14", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.03, output: 0.28, cache_read: 0.01, cache_write: 0.0024 }, - limit: { context: 256000, output: 64000 }, - }, - "volcengine/doubao-seed-code": { - id: "volcengine/doubao-seed-code", - name: "Doubao-Seed-Code", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-11-11", - last_updated: "2025-11-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.17, output: 1.12, cache_read: 0.03 }, - limit: { context: 256000, output: 64000 }, - }, - "volcengine/doubao-seed-2.0-lite": { - id: "volcengine/doubao-seed-2.0-lite", - name: "Doubao-Seed-2.0-lite", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2026-02-14", - release_date: "2026-02-14", - last_updated: "2026-02-14", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.09, output: 0.51, cache_read: 0.02, cache_write: 0.0024 }, - limit: { context: 256000, output: 64000 }, - }, - "volcengine/doubao-seed-2.0-code": { - id: "volcengine/doubao-seed-2.0-code", - name: "Doubao Seed 2.0 Code", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-03-20", - last_updated: "2026-03-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.9, output: 4.48 }, - limit: { context: 256000, output: 32000 }, - }, - "deepseek/deepseek-v3.2": { - id: "deepseek/deepseek-v3.2", - name: "DeepSeek V3.2", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-12-05", - last_updated: "2025-12-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.28, output: 0.43 }, - limit: { context: 128000, output: 64000 }, - }, - "deepseek/deepseek-chat": { - id: "deepseek/deepseek-chat", - name: "DeepSeek-V3.2 (Non-thinking Mode)", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.28, output: 0.42, cache_read: 0.03 }, - limit: { context: 128000, output: 64000 }, - }, - "deepseek/deepseek-v3.2-exp": { - id: "deepseek/deepseek-v3.2-exp", - name: "DeepSeek-V3.2-Exp", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.22, output: 0.33 }, - limit: { context: 163000, output: 64000 }, - }, - "moonshotai/kimi-k2-0905": { - id: "moonshotai/kimi-k2-0905", - name: "Kimi K2 0905", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-09-04", - last_updated: "2025-09-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, - limit: { context: 262000, output: 64000 }, - }, - "moonshotai/kimi-k2.5": { - id: "moonshotai/kimi-k2.5", - name: "Kimi K2.5", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.58, output: 3.02, cache_read: 0.1 }, - limit: { context: 262000, output: 64000 }, - }, - "moonshotai/kimi-k2-thinking": { - id: "moonshotai/kimi-k2-thinking", - name: "Kimi K2 Thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-11-06", - last_updated: "2025-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, - limit: { context: 262000, output: 64000 }, - }, - "moonshotai/kimi-k2-thinking-turbo": { - id: "moonshotai/kimi-k2-thinking-turbo", - name: "Kimi K2 Thinking Turbo", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-11-06", - last_updated: "2025-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.15, output: 8, cache_read: 0.15 }, - limit: { context: 262000, output: 64000 }, - }, - "baidu/ernie-5.0-thinking-preview": { - id: "baidu/ernie-5.0-thinking-preview", - name: "ERNIE 5.0", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-01-22", - last_updated: "2026-01-22", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.84, output: 3.37 }, - limit: { context: 128000, output: 64000 }, - }, - "google/gemini-2.5-flash": { - id: "google/gemini-2.5-flash", - name: "Gemini 2.5 Flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["pdf", "image", "text", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5, cache_read: 0.07, cache_write: 1 }, - limit: { context: 1048000, output: 64000 }, - }, - "google/gemini-3.1-flash-lite-preview": { - id: "google/gemini-3.1-flash-lite-preview", - name: "Gemini 3.1 Flash Lite Preview", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-03-20", - last_updated: "2025-03-20", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1.5 }, - limit: { context: 1050000, output: 65530 }, - }, - "google/gemini-3-flash-preview": { - id: "google/gemini-3-flash-preview", - name: "Gemini 3 Flash Preview", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text", "image", "pdf", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 3, cache_read: 0.05, cache_write: 1 }, - limit: { context: 1048000, output: 64000 }, - }, - "google/gemini-2.5-flash-lite": { - id: "google/gemini-2.5-flash-lite", - name: "Gemini 2.5 Flash Lite", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-07-22", - last_updated: "2025-07-22", - modalities: { input: ["pdf", "image", "text", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.03, cache_write: 1 }, - limit: { context: 1048000, output: 64000 }, - }, - "google/gemini-3.1-pro-preview": { - id: "google/gemini-3.1-pro-preview", - name: "Gemini 3.1 Pro Preview", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2026-02-19", - release_date: "2026-02-19", - last_updated: "2026-02-19", - modalities: { input: ["text", "image", "pdf", "audio", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2, cache_write: 4.5 }, - limit: { context: 1048000, output: 64000 }, - }, - "google/gemini-3-pro-image-preview": { - id: "google/gemini-3-pro-image-preview", - name: "Gemini 3 Pro Image Preview", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-03-20", - last_updated: "2025-03-20", - modalities: { input: ["text", "image", "pdf", "audio", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2, cache_write: 4.5 }, - limit: { context: 1048000, output: 64000 }, - }, - "google/gemini-3-pro-preview": { - id: "google/gemini-3-pro-preview", - name: "Gemini 3 Pro Preview", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image", "pdf", "audio", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2, cache_write: 4.5 }, - limit: { context: 1048000, output: 64000 }, - }, - "google/gemini-2.5-pro": { - id: "google/gemini-2.5-pro", - name: "Gemini 2.5 Pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["pdf", "image", "text", "audio", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.31, cache_write: 4.5 }, - limit: { context: 1048000, output: 64000 }, - }, - "z-ai/glm-5": { - id: "z-ai/glm-5", - name: "GLM 5", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.58, output: 2.6, cache_read: 0.14 }, - limit: { context: 200000, output: 128000 }, - }, - "z-ai/glm-4.7-flashx": { - id: "z-ai/glm-4.7-flashx", - name: "GLM 4.7 FlashX", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.07, output: 0.42, cache_read: 0.01 }, - limit: { context: 200000, output: 64000 }, - }, - "z-ai/glm-4.5-air": { - id: "z-ai/glm-4.5-air", - name: "GLM 4.5 Air", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-07-25", - last_updated: "2025-07-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.11, output: 0.56, cache_read: 0.02 }, - limit: { context: 128000, output: 64000 }, - }, - "z-ai/glm-4.5": { - id: "z-ai/glm-4.5", - name: "GLM 4.5", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-07-25", - last_updated: "2025-07-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.35, output: 1.54, cache_read: 0.07 }, - limit: { context: 128000, output: 64000 }, - }, - "z-ai/glm-4.6v-flash-free": { - id: "z-ai/glm-4.6v-flash-free", - name: "GLM 4.6V Flash (Free)", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-12-08", - last_updated: "2025-12-08", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 200000, output: 64000 }, - }, - "z-ai/glm-4.6": { - id: "z-ai/glm-4.6", - name: "GLM 4.6", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.35, output: 1.54, cache_read: 0.07 }, - limit: { context: 200000, output: 64000 }, - }, - "z-ai/glm-4.7": { - id: "z-ai/glm-4.7", - name: "GLM 4.7", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.28, output: 1.14, cache_read: 0.06 }, - limit: { context: 200000, output: 64000 }, - }, - "z-ai/glm-4.7-flash-free": { - id: "z-ai/glm-4.7-flash-free", - name: "GLM 4.7 Flash (Free)", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 200000, output: 64000 }, - }, - "z-ai/glm-4.6v-flash": { - id: "z-ai/glm-4.6v-flash", - name: "GLM 4.6V FlashX", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-12-08", - last_updated: "2025-12-08", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.02, output: 0.21, cache_read: 0.0043 }, - limit: { context: 200000, output: 64000 }, - }, - "z-ai/glm-5-turbo": { - id: "z-ai/glm-5-turbo", - name: "GLM 5 Turbo", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-03-20", - last_updated: "2026-03-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.88, output: 3.48 }, - limit: { context: 200000, output: 128000 }, - }, - "z-ai/glm-4.6v": { - id: "z-ai/glm-4.6v", - name: "GLM 4.6V", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-12-08", - last_updated: "2025-12-08", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.42, cache_read: 0.03 }, - limit: { context: 200000, output: 64000 }, - }, - "qwen/qwen3.5-flash": { - id: "qwen/qwen3.5-flash", - name: "Qwen3.5 Flash", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-03-20", - last_updated: "2026-03-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 1020000, output: 1020000 }, - }, - "qwen/qwen3.5-plus": { - id: "qwen/qwen3.5-plus", - name: "Qwen3.5 Plus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-03-20", - last_updated: "2026-03-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 4.8 }, - limit: { context: 1000000, output: 64000 }, - }, - "qwen/qwen3-max": { - id: "qwen/qwen3-max", - name: "Qwen3-Max-Thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-01-23", - last_updated: "2026-01-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.2, output: 6 }, - limit: { context: 256000, output: 64000 }, - }, - "qwen/qwen3-coder-plus": { - id: "qwen/qwen3-coder-plus", - name: "Qwen3-Coder-Plus", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 1000000, output: 64000 }, - }, - "x-ai/grok-code-fast-1": { - id: "x-ai/grok-code-fast-1", - name: "Grok Code Fast 1", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-08-26", - last_updated: "2025-08-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.5, cache_read: 0.02 }, - limit: { context: 256000, output: 64000 }, - }, - "x-ai/grok-4-fast": { - id: "x-ai/grok-4-fast", - name: "Grok 4 Fast", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-09-19", - last_updated: "2025-09-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 64000 }, - }, - "x-ai/grok-4": { - id: "x-ai/grok-4", - name: "Grok 4", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.75 }, - limit: { context: 256000, output: 64000 }, - }, - "x-ai/grok-4.1-fast-non-reasoning": { - id: "x-ai/grok-4.1-fast-non-reasoning", - name: "Grok 4.1 Fast Non Reasoning", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-11-20", - last_updated: "2025-11-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 64000 }, - }, - "x-ai/grok-4.1-fast": { - id: "x-ai/grok-4.1-fast", - name: "Grok 4.1 Fast", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-11-20", - last_updated: "2025-11-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 64000 }, - }, - "x-ai/grok-4.2-fast": { - id: "x-ai/grok-4.2-fast", - name: "Grok 4.2 Fast", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2026-03-20", - last_updated: "2026-03-20", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 9 }, - limit: { context: 2000000, output: 30000 }, - }, - "x-ai/grok-4.2-fast-non-reasoning": { - id: "x-ai/grok-4.2-fast-non-reasoning", - name: "Grok 4.2 Fast Non Reasoning", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2026-03-20", - last_updated: "2026-03-20", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 9 }, - limit: { context: 2000000, output: 30000 }, - }, - "openai/gpt-5.3-codex": { - id: "openai/gpt-5.3-codex", - name: "GPT-5.3 Codex", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2026-03-20", - last_updated: "2026-03-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5-codex": { - id: "openai/gpt-5-codex", - name: "GPT-5 Codex", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-09-23", - last_updated: "2025-09-23", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.12 }, - limit: { context: 400000, output: 64000 }, - }, - "openai/gpt-5.2-codex": { - id: "openai/gpt-5.2-codex", - name: "GPT-5.2-Codex", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2025-01-01", - release_date: "2026-01-15", - last_updated: "2026-01-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.17 }, - limit: { context: 400000, output: 64000 }, - }, - "openai/gpt-5.1": { - id: "openai/gpt-5.1", - name: "GPT-5.1", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["image", "text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.12 }, - limit: { context: 400000, output: 64000 }, - }, - "openai/gpt-5.1-chat": { - id: "openai/gpt-5.1-chat", - name: "GPT-5.1 Chat", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["pdf", "image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.12 }, - limit: { context: 128000, output: 64000 }, - }, - "openai/gpt-5.1-codex-mini": { - id: "openai/gpt-5.1-codex-mini", - name: "GPT-5.1-Codex-Mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.03 }, - limit: { context: 400000, output: 64000 }, - }, - "openai/gpt-5.2": { - id: "openai/gpt-5.2", - name: "GPT-5.2", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2025-01-01", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["image", "text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.17 }, - limit: { context: 400000, output: 64000 }, - }, - "openai/gpt-5": { - id: "openai/gpt-5", - name: "GPT-5", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.12 }, - limit: { context: 400000, output: 64000 }, - }, - "openai/gpt-5.4": { - id: "openai/gpt-5.4", - name: "GPT-5.4", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2026-03-20", - last_updated: "2026-03-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3.75, output: 18.75 }, - limit: { context: 1050000, output: 128000 }, - }, - "openai/gpt-5.4-pro": { - id: "openai/gpt-5.4-pro", - name: "GPT-5.4 Pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2026-03-20", - last_updated: "2026-03-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 45, output: 225 }, - limit: { context: 1050000, output: 128000 }, - }, - "openai/gpt-5.3-chat": { - id: "openai/gpt-5.3-chat", - name: "GPT-5.3 Chat", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2026-03-20", - last_updated: "2026-03-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14 }, - limit: { context: 128000, output: 16380 }, - }, - "openai/gpt-5.1-codex": { - id: "openai/gpt-5.1-codex", - name: "GPT-5.1-Codex", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.12 }, - limit: { context: 400000, output: 64000 }, - }, - "openai/gpt-5.2-pro": { - id: "openai/gpt-5.2-pro", - name: "GPT-5.2-Pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 21, output: 168 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.4-nano": { - id: "openai/gpt-5.4-nano", - name: "GPT-5.4 Nano", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2026-03-20", - last_updated: "2026-03-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.25 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.4-mini": { - id: "openai/gpt-5.4-mini", - name: "GPT-5.4 Mini", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2026-03-20", - last_updated: "2026-03-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.75, output: 4.5 }, - limit: { context: 400000, output: 128000 }, - }, - "minimax/minimax-m2.5-lightning": { - id: "minimax/minimax-m2.5-lightning", - name: "MiniMax M2.5 highspeed", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-02-13", - last_updated: "2026-02-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 4.8, cache_read: 0.06, cache_write: 0.75 }, - limit: { context: 204800, output: 131072 }, - }, - "minimax/minimax-m2.1": { - id: "minimax/minimax-m2.1", - name: "MiniMax M2.1", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2, cache_read: 0.03, cache_write: 0.38 }, - limit: { context: 204000, output: 64000 }, - }, - "minimax/minimax-m2.7": { - id: "minimax/minimax-m2.7", - name: "MiniMax M2.7", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-03-20", - last_updated: "2026-03-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3055, output: 1.2219 }, - limit: { context: 204800, output: 131070 }, - }, - "minimax/minimax-m2.7-highspeed": { - id: "minimax/minimax-m2.7-highspeed", - name: "MiniMax M2.7 highspeed", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-03-20", - last_updated: "2026-03-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.611, output: 2.4439 }, - limit: { context: 204800, output: 131070 }, - }, - "minimax/minimax-m2": { - id: "minimax/minimax-m2", - name: "MiniMax M2", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-10-27", - last_updated: "2025-10-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2, cache_read: 0.03, cache_write: 0.38 }, - limit: { context: 204000, output: 64000 }, - }, - "minimax/minimax-m2.5": { - id: "minimax/minimax-m2.5", - name: "MiniMax M2.5", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-02-13", - last_updated: "2026-02-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2, cache_read: 0.03, cache_write: 0.375 }, - limit: { context: 204800, output: 131072 }, - }, - "anthropic/claude-3.5-sonnet": { - id: "anthropic/claude-3.5-sonnet", - name: "Claude 3.5 Sonnet (Retiring Soon)", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - status: "deprecated", - }, - "anthropic/claude-3.7-sonnet": { - id: "anthropic/claude-3.7-sonnet", - name: "Claude 3.7 Sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-02-24", - last_updated: "2025-02-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-opus-4.1": { - id: "anthropic/claude-opus-4.1", - name: "Claude Opus 4.1", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["image", "text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-sonnet-4.6": { - id: "anthropic/claude-sonnet-4.6", - name: "Claude Sonnet 4.6", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-02-18", - last_updated: "2026-02-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 1000000, output: 64000 }, - }, - "anthropic/claude-haiku-4.5": { - id: "anthropic/claude-haiku-4.5", - name: "Claude Haiku 4.5", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-3.5-haiku": { - id: "anthropic/claude-3.5-haiku", - name: "Claude 3.5 Haiku", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2024-11-04", - last_updated: "2024-11-04", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-opus-4.5": { - id: "anthropic/claude-opus-4.5", - name: "Claude Opus 4.5", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-11-24", - last_updated: "2025-11-24", - modalities: { input: ["pdf", "image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-opus-4": { - id: "anthropic/claude-opus-4", - name: "Claude Opus 4", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["image", "text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-sonnet-4": { - id: "anthropic/claude-sonnet-4", - name: "Claude Sonnet 4", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["image", "text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 1000000, output: 64000 }, - }, - "anthropic/claude-sonnet-4.5": { - id: "anthropic/claude-sonnet-4.5", - name: "Claude Sonnet 4.5", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 1000000, output: 64000 }, - }, - "anthropic/claude-opus-4.6": { - id: "anthropic/claude-opus-4.6", - name: "Claude Opus 4.6", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-02-06", - last_updated: "2026-02-06", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 1000000, output: 128000 }, - }, - }, - }, - "io-net": { - id: "io-net", - env: ["IOINTELLIGENCE_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.intelligence.io.solutions/api/v1", - name: "IO.NET", - doc: "https://io.net/docs/guides/intelligence/io-intelligence", - models: { - "zai-org/GLM-4.6": { - id: "zai-org/GLM-4.6", - name: "GLM 4.6", - family: "glm", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-11-15", - last_updated: "2024-11-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.75, cache_read: 0.2, cache_write: 0.8 }, - limit: { context: 200000, output: 4096 }, - }, - "deepseek-ai/DeepSeek-R1-0528": { - id: "deepseek-ai/DeepSeek-R1-0528", - name: "DeepSeek R1", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-01-20", - last_updated: "2025-05-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2, output: 8.75, cache_read: 1, cache_write: 4 }, - limit: { context: 128000, output: 4096 }, - }, - "Intel/Qwen3-Coder-480B-A35B-Instruct-int4-mixed-ar": { - id: "Intel/Qwen3-Coder-480B-A35B-Instruct-int4-mixed-ar", - name: "Qwen 3 Coder 480B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-01-15", - last_updated: "2025-01-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.22, output: 0.95, cache_read: 0.11, cache_write: 0.44 }, - limit: { context: 106000, output: 4096 }, - }, - "moonshotai/Kimi-K2-Instruct-0905": { - id: "moonshotai/Kimi-K2-Instruct-0905", - name: "Kimi K2 Instruct", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2024-09-05", - last_updated: "2024-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.39, output: 1.9, cache_read: 0.195, cache_write: 0.78 }, - limit: { context: 32768, output: 4096 }, - }, - "moonshotai/Kimi-K2-Thinking": { - id: "moonshotai/Kimi-K2-Thinking", - name: "Kimi K2 Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2024-11-01", - last_updated: "2024-11-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.55, output: 2.25, cache_read: 0.275, cache_write: 1.1 }, - limit: { context: 32768, output: 4096 }, - }, - "meta-llama/Llama-3.2-90B-Vision-Instruct": { - id: "meta-llama/Llama-3.2-90B-Vision-Instruct", - name: "Llama 3.2 90B Vision Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-09-25", - last_updated: "2024-09-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.35, output: 0.4, cache_read: 0.175, cache_write: 0.7 }, - limit: { context: 16000, output: 4096 }, - }, - "meta-llama/Llama-3.3-70B-Instruct": { - id: "meta-llama/Llama-3.3-70B-Instruct", - name: "Llama 3.3 70B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.13, output: 0.38, cache_read: 0.065, cache_write: 0.26 }, - limit: { context: 128000, output: 4096 }, - }, - "meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8": { - id: "meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8", - name: "Llama 4 Maverick 17B 128E Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-01-15", - last_updated: "2025-01-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6, cache_read: 0.075, cache_write: 0.3 }, - limit: { context: 430000, output: 4096 }, - }, - "Qwen/Qwen3-Next-80B-A3B-Instruct": { - id: "Qwen/Qwen3-Next-80B-A3B-Instruct", - name: "Qwen 3 Next 80B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-01-10", - last_updated: "2025-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.8, cache_read: 0.05, cache_write: 0.2 }, - limit: { context: 262144, output: 4096 }, - }, - "Qwen/Qwen3-235B-A22B-Thinking-2507": { - id: "Qwen/Qwen3-235B-A22B-Thinking-2507", - name: "Qwen 3 235B Thinking", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-07-01", - last_updated: "2025-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.11, output: 0.6, cache_read: 0.055, cache_write: 0.22 }, - limit: { context: 262144, output: 4096 }, - }, - "Qwen/Qwen2.5-VL-32B-Instruct": { - id: "Qwen/Qwen2.5-VL-32B-Instruct", - name: "Qwen 2.5 VL 32B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-09", - release_date: "2024-11-01", - last_updated: "2024-11-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.22, cache_read: 0.025, cache_write: 0.1 }, - limit: { context: 32000, output: 4096 }, - }, - "mistralai/Mistral-Nemo-Instruct-2407": { - id: "mistralai/Mistral-Nemo-Instruct-2407", - name: "Mistral Nemo Instruct 2407", - family: "mistral-nemo", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-05", - release_date: "2024-07-01", - last_updated: "2024-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0.04, cache_read: 0.01, cache_write: 0.04 }, - limit: { context: 128000, output: 4096 }, - }, - "mistralai/Magistral-Small-2506": { - id: "mistralai/Magistral-Small-2506", - name: "Magistral Small 2506", - family: "magistral-small", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-06-01", - last_updated: "2025-06-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 1.5, cache_read: 0.25, cache_write: 1 }, - limit: { context: 128000, output: 4096 }, - }, - "mistralai/Mistral-Large-Instruct-2411": { - id: "mistralai/Mistral-Large-Instruct-2411", - name: "Mistral Large Instruct 2411", - family: "mistral-large", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-11-01", - last_updated: "2024-11-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6, cache_read: 1, cache_write: 4 }, - limit: { context: 128000, output: 4096 }, - }, - "mistralai/Devstral-Small-2505": { - id: "mistralai/Devstral-Small-2505", - name: "Devstral Small 2505", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-05-01", - last_updated: "2025-05-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.22, cache_read: 0.025, cache_write: 0.1 }, - limit: { context: 128000, output: 4096 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "GPT-OSS 120B", - family: "gpt-oss", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.04, output: 0.4, cache_read: 0.02, cache_write: 0.08 }, - limit: { context: 131072, output: 4096 }, - }, - "openai/gpt-oss-20b": { - id: "openai/gpt-oss-20b", - name: "GPT-OSS 20B", - family: "gpt-oss", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.14, cache_read: 0.015, cache_write: 0.06 }, - limit: { context: 64000, output: 4096 }, - }, - }, - }, - nvidia: { - id: "nvidia", - env: ["NVIDIA_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://integrate.api.nvidia.com/v1", - name: "Nvidia", - doc: "https://docs.api.nvidia.com/nim/", - models: { - "nvidia/nemotron-3-super-120b-a12b": { - id: "nvidia/nemotron-3-super-120b-a12b", - name: "Nemotron 3 Super", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2026-03-11", - last_updated: "2026-03-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 262144, output: 262144 }, - }, - "nvidia/llama-3.1-nemotron-70b-instruct": { - id: "nvidia/llama-3.1-nemotron-70b-instruct", - name: "Llama 3.1 Nemotron 70b Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-10-12", - last_updated: "2024-10-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "nvidia/llama-3.1-nemotron-ultra-253b-v1": { - id: "nvidia/llama-3.1-nemotron-ultra-253b-v1", - name: "Llama-3.1-Nemotron-Ultra-253B-v1", - family: "llama", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2024-07-01", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 8192 }, - }, - "nvidia/llama-3.1-nemotron-51b-instruct": { - id: "nvidia/llama-3.1-nemotron-51b-instruct", - name: "Llama 3.1 Nemotron 51b Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-09-22", - last_updated: "2024-09-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "nvidia/parakeet-tdt-0.6b-v2": { - id: "nvidia/parakeet-tdt-0.6b-v2", - name: "Parakeet TDT 0.6B v2", - family: "parakeet", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2024-01", - release_date: "2024-01-01", - last_updated: "2025-09-05", - modalities: { input: ["audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 0, output: 4096 }, - }, - "nvidia/nvidia-nemotron-nano-9b-v2": { - id: "nvidia/nvidia-nemotron-nano-9b-v2", - name: "nvidia-nemotron-nano-9b-v2", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-09", - release_date: "2025-08-18", - last_updated: "2025-08-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 131072 }, - }, - "nvidia/llama-embed-nemotron-8b": { - id: "nvidia/llama-embed-nemotron-8b", - name: "Llama Embed Nemotron 8B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2025-03", - release_date: "2025-03-18", - last_updated: "2025-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 32768, output: 2048 }, - }, - "nvidia/llama-3.3-nemotron-super-49b-v1.5": { - id: "nvidia/llama-3.3-nemotron-super-49b-v1.5", - name: "Llama 3.3 Nemotron Super 49b V1.5", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-03-16", - last_updated: "2025-03-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "nvidia/llama-3.3-nemotron-super-49b-v1": { - id: "nvidia/llama-3.3-nemotron-super-49b-v1", - name: "Llama 3.3 Nemotron Super 49b V1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-03-16", - last_updated: "2025-03-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "nvidia/llama3-chatqa-1.5-70b": { - id: "nvidia/llama3-chatqa-1.5-70b", - name: "Llama3 Chatqa 1.5 70b", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-04-28", - last_updated: "2024-04-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "nvidia/cosmos-nemotron-34b": { - id: "nvidia/cosmos-nemotron-34b", - name: "Cosmos Nemotron 34B", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2024-01", - release_date: "2024-01-01", - last_updated: "2025-09-05", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 8192 }, - }, - "nvidia/nemoretriever-ocr-v1": { - id: "nvidia/nemoretriever-ocr-v1", - name: "NeMo Retriever OCR v1", - family: "nemoretriever", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2024-01", - release_date: "2024-01-01", - last_updated: "2025-09-05", - modalities: { input: ["image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 0, output: 4096 }, - }, - "nvidia/nemotron-4-340b-instruct": { - id: "nvidia/nemotron-4-340b-instruct", - name: "Nemotron 4 340b Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-06-13", - last_updated: "2024-06-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "nvidia/nemotron-3-nano-30b-a3b": { - id: "nvidia/nemotron-3-nano-30b-a3b", - name: "nemotron-3-nano-30b-a3b", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-09", - release_date: "2024-12", - last_updated: "2024-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 131072 }, - }, - "microsoft/phi-3-small-128k-instruct": { - id: "microsoft/phi-3-small-128k-instruct", - name: "Phi 3 Small 128k Instruct", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-05-07", - last_updated: "2024-05-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "microsoft/phi-3-medium-128k-instruct": { - id: "microsoft/phi-3-medium-128k-instruct", - name: "Phi 3 Medium 128k Instruct", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-05-07", - last_updated: "2024-05-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "microsoft/phi-3.5-moe-instruct": { - id: "microsoft/phi-3.5-moe-instruct", - name: "Phi 3.5 Moe Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-08-17", - last_updated: "2024-08-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "microsoft/phi-3-vision-128k-instruct": { - id: "microsoft/phi-3-vision-128k-instruct", - name: "Phi 3 Vision 128k Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-05-19", - last_updated: "2024-05-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "microsoft/phi-4-mini-instruct": { - id: "microsoft/phi-4-mini-instruct", - name: "Phi-4-Mini", - family: "phi", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2024-12-01", - last_updated: "2025-09-05", - modalities: { input: ["text", "image", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 8192 }, - }, - "microsoft/phi-3.5-vision-instruct": { - id: "microsoft/phi-3.5-vision-instruct", - name: "Phi 3.5 Vision Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-08-16", - last_updated: "2024-08-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "microsoft/phi-3-medium-4k-instruct": { - id: "microsoft/phi-3-medium-4k-instruct", - name: "Phi 3 Medium 4k Instruct", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-05-07", - last_updated: "2024-05-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 4000, output: 4096 }, - }, - "microsoft/phi-3-small-8k-instruct": { - id: "microsoft/phi-3-small-8k-instruct", - name: "Phi 3 Small 8k Instruct", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-05-07", - last_updated: "2024-05-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 8000, output: 4096 }, - }, - "minimaxai/minimax-m2.1": { - id: "minimaxai/minimax-m2.1", - name: "MiniMax-M2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "minimaxai/minimax-m2.5": { - id: "minimaxai/minimax-m2.5", - name: "MiniMax-M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "deepseek-ai/deepseek-v3.1": { - id: "deepseek-ai/deepseek-v3.1", - name: "DeepSeek V3.1", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-08-20", - last_updated: "2025-08-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 8192 }, - }, - "deepseek-ai/deepseek-r1-0528": { - id: "deepseek-ai/deepseek-r1-0528", - name: "Deepseek R1 0528", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-05-28", - last_updated: "2025-05-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "deepseek-ai/deepseek-r1": { - id: "deepseek-ai/deepseek-r1", - name: "Deepseek R1", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "deepseek-ai/deepseek-v3.1-terminus": { - id: "deepseek-ai/deepseek-v3.1-terminus", - name: "DeepSeek V3.1 Terminus", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-09-22", - last_updated: "2025-09-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 8192 }, - }, - "deepseek-ai/deepseek-coder-6.7b-instruct": { - id: "deepseek-ai/deepseek-coder-6.7b-instruct", - name: "Deepseek Coder 6.7b Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2023-10-29", - last_updated: "2023-10-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "deepseek-ai/deepseek-v3.2": { - id: "deepseek-ai/deepseek-v3.2", - name: "DeepSeek V3.2", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 163840, output: 65536 }, - }, - "moonshotai/kimi-k2-instruct": { - id: "moonshotai/kimi-k2-instruct", - name: "Kimi K2 Instruct", - family: "kimi", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-01", - release_date: "2025-01-01", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 8192 }, - }, - "moonshotai/kimi-k2-instruct-0905": { - id: "moonshotai/kimi-k2-instruct-0905", - name: "Kimi K2 0905", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 262144 }, - }, - "moonshotai/kimi-k2.5": { - id: "moonshotai/kimi-k2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-07", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 262144 }, - }, - "moonshotai/kimi-k2-thinking": { - id: "moonshotai/kimi-k2-thinking", - name: "Kimi K2 Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: true, - structured_output: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-11", - last_updated: "2025-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 262144, output: 262144 }, - }, - "google/codegemma-7b": { - id: "google/codegemma-7b", - name: "Codegemma 7b", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2024-03-21", - last_updated: "2024-03-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "google/gemma-2-2b-it": { - id: "google/gemma-2-2b-it", - name: "Gemma 2 2b It", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-07-16", - last_updated: "2024-07-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "google/gemma-3-1b-it": { - id: "google/gemma-3-1b-it", - name: "Gemma 3 1b It", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-03-10", - last_updated: "2025-03-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "google/gemma-2-27b-it": { - id: "google/gemma-2-27b-it", - name: "Gemma 2 27b It", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-06-24", - last_updated: "2024-06-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "google/gemma-3n-e2b-it": { - id: "google/gemma-3n-e2b-it", - name: "Gemma 3n E2b It", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-06", - release_date: "2025-06-12", - last_updated: "2025-06-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "google/codegemma-1.1-7b": { - id: "google/codegemma-1.1-7b", - name: "Codegemma 1.1 7b", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2024-04-30", - last_updated: "2024-04-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "google/gemma-3n-e4b-it": { - id: "google/gemma-3n-e4b-it", - name: "Gemma 3n E4b It", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-06", - release_date: "2025-06-03", - last_updated: "2025-06-03", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "google/gemma-3-12b-it": { - id: "google/gemma-3-12b-it", - name: "Gemma 3 12b It", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-03-01", - last_updated: "2025-03-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "google/gemma-3-27b-it": { - id: "google/gemma-3-27b-it", - name: "Gemma-3-27B-IT", - family: "gemma", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2024-12-01", - last_updated: "2025-09-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 8192 }, - }, - "z-ai/glm4.7": { - id: "z-ai/glm4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "z-ai/glm5": { - id: "z-ai/glm5", - name: "GLM5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 202752, output: 131000 }, - }, - "stepfun-ai/step-3.5-flash": { - id: "stepfun-ai/step-3.5-flash", - name: "Step 3.5 Flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-02", - last_updated: "2026-02-02", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 16384 }, - }, - "qwen/qwen3-next-80b-a3b-thinking": { - id: "qwen/qwen3-next-80b-a3b-thinking", - name: "Qwen3-Next-80B-A3B-Thinking", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2024-12-01", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 16384 }, - }, - "qwen/qwen3-coder-480b-a35b-instruct": { - id: "qwen/qwen3-coder-480b-a35b-instruct", - name: "Qwen3 Coder 480B A35B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 66536 }, - }, - "qwen/qwq-32b": { - id: "qwen/qwq-32b", - name: "Qwq 32b", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-03-05", - last_updated: "2025-03-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "qwen/qwen2.5-coder-7b-instruct": { - id: "qwen/qwen2.5-coder-7b-instruct", - name: "Qwen2.5 Coder 7b Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-09-17", - last_updated: "2024-09-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "qwen/qwen3.5-397b-a17b": { - id: "qwen/qwen3.5-397b-a17b", - name: "Qwen3.5-397B-A17B", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2026-01", - release_date: "2026-02-16", - last_updated: "2026-02-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 8192 }, - }, - "qwen/qwen2.5-coder-32b-instruct": { - id: "qwen/qwen2.5-coder-32b-instruct", - name: "Qwen2.5 Coder 32b Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-11-06", - last_updated: "2024-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "qwen/qwen3-235b-a22b": { - id: "qwen/qwen3-235b-a22b", - name: "Qwen3-235B-A22B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2024-12-01", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen/qwen3-next-80b-a3b-instruct": { - id: "qwen/qwen3-next-80b-a3b-instruct", - name: "Qwen3-Next-80B-A3B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2024-12-01", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 16384 }, - }, - "meta/llama-3.1-70b-instruct": { - id: "meta/llama-3.1-70b-instruct", - name: "Llama 3.1 70b Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-07-16", - last_updated: "2024-07-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "meta/llama-3.3-70b-instruct": { - id: "meta/llama-3.3-70b-instruct", - name: "Llama 3.3 70b Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-11-26", - last_updated: "2024-11-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "meta/llama-4-scout-17b-16e-instruct": { - id: "meta/llama-4-scout-17b-16e-instruct", - name: "Llama 4 Scout 17b 16e Instruct", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-02", - release_date: "2025-04-02", - last_updated: "2025-04-02", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "meta/llama-3.2-11b-vision-instruct": { - id: "meta/llama-3.2-11b-vision-instruct", - name: "Llama 3.2 11b Vision Instruct", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-09-18", - last_updated: "2024-09-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "meta/llama3-8b-instruct": { - id: "meta/llama3-8b-instruct", - name: "Llama3 8b Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-04-17", - last_updated: "2024-04-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "meta/codellama-70b": { - id: "meta/codellama-70b", - name: "Codellama 70b", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2024-01-29", - last_updated: "2024-01-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "meta/llama-3.2-1b-instruct": { - id: "meta/llama-3.2-1b-instruct", - name: "Llama 3.2 1b Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-09-18", - last_updated: "2024-09-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "meta/llama-3.1-405b-instruct": { - id: "meta/llama-3.1-405b-instruct", - name: "Llama 3.1 405b Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-07-16", - last_updated: "2024-07-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "meta/llama3-70b-instruct": { - id: "meta/llama3-70b-instruct", - name: "Llama3 70b Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-04-17", - last_updated: "2024-04-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "meta/llama-4-maverick-17b-128e-instruct": { - id: "meta/llama-4-maverick-17b-128e-instruct", - name: "Llama 4 Maverick 17b 128e Instruct", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-02", - release_date: "2025-04-01", - last_updated: "2025-04-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "mistralai/mistral-large-3-675b-instruct-2512": { - id: "mistralai/mistral-large-3-675b-instruct-2512", - name: "Mistral Large 3 675B Instruct 2512", - family: "mistral-large", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-12-02", - last_updated: "2025-12-02", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 262144 }, - }, - "mistralai/mamba-codestral-7b-v0.1": { - id: "mistralai/mamba-codestral-7b-v0.1", - name: "Mamba Codestral 7b V0.1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2024-07-16", - last_updated: "2024-07-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "mistralai/codestral-22b-instruct-v0.1": { - id: "mistralai/codestral-22b-instruct-v0.1", - name: "Codestral 22b Instruct V0.1", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-05-29", - last_updated: "2024-05-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "mistralai/mistral-large-2-instruct": { - id: "mistralai/mistral-large-2-instruct", - name: "Mistral Large 2 Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-07-24", - last_updated: "2024-07-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "mistralai/ministral-14b-instruct-2512": { - id: "mistralai/ministral-14b-instruct-2512", - name: "Ministral 3 14B Instruct 2512", - family: "ministral", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-12", - release_date: "2025-12-01", - last_updated: "2025-12-08", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 262144 }, - }, - "mistralai/mistral-small-3.1-24b-instruct-2503": { - id: "mistralai/mistral-small-3.1-24b-instruct-2503", - name: "Mistral Small 3.1 24b Instruct 2503", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-03-11", - last_updated: "2025-03-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "mistralai/devstral-2-123b-instruct-2512": { - id: "mistralai/devstral-2-123b-instruct-2512", - name: "Devstral-2-123B-Instruct-2512", - family: "devstral", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-12", - release_date: "2025-12-08", - last_updated: "2025-12-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 262144 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "GPT-OSS-120B", - family: "gpt-oss", - attachment: true, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2025-08", - release_date: "2025-08-04", - last_updated: "2025-08-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 8192 }, - }, - "openai/whisper-large-v3": { - id: "openai/whisper-large-v3", - name: "Whisper Large v3", - family: "whisper", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2023-09", - release_date: "2023-09-01", - last_updated: "2025-09-05", - modalities: { input: ["audio"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 0, output: 4096 }, - }, - "black-forest-labs/flux.1-dev": { - id: "black-forest-labs/flux.1-dev", - name: "FLUX.1-dev", - family: "flux", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-08", - release_date: "2024-08-01", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 4096, output: 0 }, - }, - }, - }, - fastrouter: { - id: "fastrouter", - env: ["FASTROUTER_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://go.fastrouter.ai/api/v1", - name: "FastRouter", - doc: "https://fastrouter.ai/models", - models: { - "deepseek-ai/deepseek-r1-distill-llama-70b": { - id: "deepseek-ai/deepseek-r1-distill-llama-70b", - name: "DeepSeek R1 Distill Llama 70B", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2024-10", - release_date: "2025-01-23", - last_updated: "2025-01-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.14 }, - limit: { context: 131072, output: 131072 }, - }, - "moonshotai/kimi-k2": { - id: "moonshotai/kimi-k2", - name: "Kimi K2", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-07-11", - last_updated: "2025-07-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.2 }, - limit: { context: 131072, output: 32768 }, - }, - "google/gemini-2.5-flash": { - id: "google/gemini-2.5-flash", - name: "Gemini 2.5 Flash", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5, cache_read: 0.0375 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-2.5-pro": { - id: "google/gemini-2.5-pro", - name: "Gemini 2.5 Pro", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.31 }, - limit: { context: 1048576, output: 65536 }, - }, - "z-ai/glm-5": { - id: "z-ai/glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.95, output: 3.15 }, - limit: { context: 204800, output: 131072 }, - }, - "qwen/qwen3-coder": { - id: "qwen/qwen3-coder", - name: "Qwen3 Coder", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 262144, output: 66536 }, - }, - "x-ai/grok-4": { - id: "x-ai/grok-4", - name: "Grok 4", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.75, cache_write: 15 }, - limit: { context: 256000, output: 64000 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "GPT OSS 120B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 131072, output: 32768 }, - }, - "openai/gpt-4.1": { - id: "openai/gpt-4.1", - name: "GPT-4.1", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 1047576, output: 32768 }, - }, - "openai/gpt-5": { - id: "openai/gpt-5", - name: "GPT-5", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10-01", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5-mini": { - id: "openai/gpt-5-mini", - name: "GPT-5 Mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10-01", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.025 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-oss-20b": { - id: "openai/gpt-oss-20b", - name: "GPT OSS 20B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.2 }, - limit: { context: 131072, output: 65536 }, - }, - "openai/gpt-5-nano": { - id: "openai/gpt-5-nano", - name: "GPT-5 Nano", - family: "gpt-nano", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10-01", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.4, cache_read: 0.005 }, - limit: { context: 400000, output: 128000 }, - }, - "anthropic/claude-opus-4.1": { - id: "anthropic/claude-opus-4.1", - name: "Claude Opus 4.1", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "anthropic/claude-sonnet-4": { - id: "anthropic/claude-sonnet-4", - name: "Claude Sonnet 4", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - }, - }, - iflowcn: { - id: "iflowcn", - env: ["IFLOW_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://apis.iflow.cn/v1", - name: "iFlow", - doc: "https://platform.iflow.cn/en/docs", - models: { - "kimi-k2": { - id: "kimi-k2", - name: "Kimi-K2", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 64000 }, - }, - "qwen3-max-preview": { - id: "qwen3-max-preview", - name: "Qwen3-Max-Preview", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 32000 }, - }, - "deepseek-v3": { - id: "deepseek-v3", - name: "DeepSeek-V3", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12-26", - last_updated: "2024-12-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 32000 }, - }, - "kimi-k2-0905": { - id: "kimi-k2-0905", - name: "Kimi-K2-0905", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 64000 }, - }, - "qwen3-235b-a22b-instruct": { - id: "qwen3-235b-a22b-instruct", - name: "Qwen3-235B-A22B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-01", - last_updated: "2025-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 64000 }, - }, - "glm-4.6": { - id: "glm-4.6", - name: "GLM-4.6", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12-01", - last_updated: "2025-11-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 200000, output: 128000 }, - }, - "deepseek-r1": { - id: "deepseek-r1", - name: "DeepSeek-R1", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 32000 }, - }, - "qwen3-32b": { - id: "qwen3-32b", - name: "Qwen3-32B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 32000 }, - }, - "deepseek-v3.2": { - id: "deepseek-v3.2", - name: "DeepSeek-V3.2-Exp", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 64000 }, - }, - "qwen3-235b": { - id: "qwen3-235b", - name: "Qwen3-235B-A22B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 32000 }, - }, - "qwen3-vl-plus": { - id: "qwen3-vl-plus", - name: "Qwen3-VL-Plus", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 32000 }, - }, - "qwen3-235b-a22b-thinking-2507": { - id: "qwen3-235b-a22b-thinking-2507", - name: "Qwen3-235B-A22B-Thinking", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-01", - last_updated: "2025-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 64000 }, - }, - "qwen3-max": { - id: "qwen3-max", - name: "Qwen3-Max", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 32000 }, - }, - "qwen3-coder-plus": { - id: "qwen3-coder-plus", - name: "Qwen3-Coder-Plus", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-01", - last_updated: "2025-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 64000 }, - }, - }, - }, - modelscope: { - id: "modelscope", - env: ["MODELSCOPE_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api-inference.modelscope.cn/v1", - name: "ModelScope", - doc: "https://modelscope.cn/docs/model-service/API-Inference/intro", - models: { - "Qwen/Qwen3-30B-A3B-Instruct-2507": { - id: "Qwen/Qwen3-30B-A3B-Instruct-2507", - name: "Qwen3 30B A3B Instruct 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-30", - last_updated: "2025-07-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 16384 }, - }, - "Qwen/Qwen3-235B-A22B-Thinking-2507": { - id: "Qwen/Qwen3-235B-A22B-Thinking-2507", - name: "Qwen3-235B-A22B-Thinking-2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-25", - last_updated: "2025-07-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 131072 }, - }, - "Qwen/Qwen3-30B-A3B-Thinking-2507": { - id: "Qwen/Qwen3-30B-A3B-Thinking-2507", - name: "Qwen3 30B A3B Thinking 2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-30", - last_updated: "2025-07-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 32768 }, - }, - "Qwen/Qwen3-Coder-30B-A3B-Instruct": { - id: "Qwen/Qwen3-Coder-30B-A3B-Instruct", - name: "Qwen3 Coder 30B A3B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-31", - last_updated: "2025-07-31", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 65536 }, - }, - "Qwen/Qwen3-235B-A22B-Instruct-2507": { - id: "Qwen/Qwen3-235B-A22B-Instruct-2507", - name: "Qwen3 235B A22B Instruct 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04-28", - last_updated: "2025-07-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 131072 }, - }, - "ZhipuAI/GLM-4.6": { - id: "ZhipuAI/GLM-4.6", - name: "GLM-4.6", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 202752, output: 98304 }, - }, - "ZhipuAI/GLM-4.5": { - id: "ZhipuAI/GLM-4.5", - name: "GLM-4.5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 98304 }, - }, - }, - }, - llama: { - id: "llama", - env: ["LLAMA_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.llama.com/compat/v1/", - name: "Llama", - doc: "https://llama.developer.meta.com/docs/models", - models: { - "cerebras-llama-4-maverick-17b-128e-instruct": { - id: "cerebras-llama-4-maverick-17b-128e-instruct", - name: "Cerebras-Llama-4-Maverick-17B-128E-Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "llama-4-scout-17b-16e-instruct-fp8": { - id: "llama-4-scout-17b-16e-instruct-fp8", - name: "Llama-4-Scout-17B-16E-Instruct-FP8", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "llama-3.3-8b-instruct": { - id: "llama-3.3-8b-instruct", - name: "Llama-3.3-8B-Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "groq-llama-4-maverick-17b-128e-instruct": { - id: "groq-llama-4-maverick-17b-128e-instruct", - name: "Groq-Llama-4-Maverick-17B-128E-Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "llama-3.3-70b-instruct": { - id: "llama-3.3-70b-instruct", - name: "Llama-3.3-70B-Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "cerebras-llama-4-scout-17b-16e-instruct": { - id: "cerebras-llama-4-scout-17b-16e-instruct", - name: "Cerebras-Llama-4-Scout-17B-16E-Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "llama-4-maverick-17b-128e-instruct-fp8": { - id: "llama-4-maverick-17b-128e-instruct-fp8", - name: "Llama-4-Maverick-17B-128E-Instruct-FP8", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - }, - }, - inference: { - id: "inference", - env: ["INFERENCE_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://inference.net/v1", - name: "Inference", - doc: "https://inference.net/models", - models: { - "mistral/mistral-nemo-12b-instruct": { - id: "mistral/mistral-nemo-12b-instruct", - name: "Mistral Nemo 12B Instruct", - family: "mistral-nemo", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.038, output: 0.1 }, - limit: { context: 16000, output: 4096 }, - }, - "google/gemma-3": { - id: "google/gemma-3", - name: "Google Gemma 3", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.3 }, - limit: { context: 125000, output: 4096 }, - }, - "qwen/qwen3-embedding-4b": { - id: "qwen/qwen3-embedding-4b", - name: "Qwen 3 Embedding 4B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2024-12", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.01, output: 0 }, - limit: { context: 32000, output: 2048 }, - }, - "qwen/qwen-2.5-7b-vision-instruct": { - id: "qwen/qwen-2.5-7b-vision-instruct", - name: "Qwen 2.5 7B Vision Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 125000, output: 4096 }, - }, - "meta/llama-3.2-11b-vision-instruct": { - id: "meta/llama-3.2-11b-vision-instruct", - name: "Llama 3.2 11B Vision Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.055, output: 0.055 }, - limit: { context: 16000, output: 4096 }, - }, - "meta/llama-3.2-3b-instruct": { - id: "meta/llama-3.2-3b-instruct", - name: "Llama 3.2 3B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0.02 }, - limit: { context: 16000, output: 4096 }, - }, - "meta/llama-3.2-1b-instruct": { - id: "meta/llama-3.2-1b-instruct", - name: "Llama 3.2 1B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.01, output: 0.01 }, - limit: { context: 16000, output: 4096 }, - }, - "meta/llama-3.1-8b-instruct": { - id: "meta/llama-3.1-8b-instruct", - name: "Llama 3.1 8B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.025, output: 0.025 }, - limit: { context: 16000, output: 4096 }, - }, - "osmosis/osmosis-structure-0.6b": { - id: "osmosis/osmosis-structure-0.6b", - name: "Osmosis Structure 0.6B", - family: "osmosis", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.5 }, - limit: { context: 4000, output: 2048 }, - }, - }, - }, - deepinfra: { - id: "deepinfra", - env: ["DEEPINFRA_API_KEY"], - npm: "@ai-sdk/deepinfra", - name: "Deep Infra", - doc: "https://deepinfra.com/models", - models: { - "zai-org/GLM-4.7-Flash": { - id: "zai-org/GLM-4.7-Flash", - name: "GLM-4.7-Flash", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.06, output: 0.4 }, - limit: { context: 202752, output: 16384 }, - }, - "zai-org/GLM-4.6": { - id: "zai-org/GLM-4.6", - name: "GLM-4.6", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.43, output: 1.74, cache_read: 0.08 }, - limit: { context: 204800, output: 131072 }, - }, - "zai-org/GLM-4.7": { - id: "zai-org/GLM-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.43, output: 1.75, cache_read: 0.08 }, - limit: { context: 202752, output: 16384 }, - }, - "zai-org/GLM-4.6V": { - id: "zai-org/GLM-4.6V", - name: "GLM-4.6V", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.9 }, - limit: { context: 204800, output: 131072 }, - }, - "zai-org/GLM-4.5": { - id: "zai-org/GLM-4.5", - name: "GLM-4.5", - family: "glm", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2 }, - limit: { context: 131072, output: 98304 }, - status: "deprecated", - }, - "zai-org/GLM-5": { - id: "zai-org/GLM-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-12", - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.8, output: 2.56, cache_read: 0.16 }, - limit: { context: 202752, output: 16384 }, - }, - "MiniMaxAI/MiniMax-M2.5": { - id: "MiniMaxAI/MiniMax-M2.5", - name: "MiniMax M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-06", - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 0.95, cache_read: 0.03, cache_write: 0.375 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMaxAI/MiniMax-M2": { - id: "MiniMaxAI/MiniMax-M2", - name: "MiniMax M2", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-10", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.254, output: 1.02 }, - limit: { context: 262144, output: 32768 }, - }, - "MiniMaxAI/MiniMax-M2.1": { - id: "MiniMaxAI/MiniMax-M2.1", - name: "MiniMax M2.1", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-06", - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.28, output: 1.2 }, - limit: { context: 196608, output: 196608 }, - }, - "deepseek-ai/DeepSeek-R1-0528": { - id: "deepseek-ai/DeepSeek-R1-0528", - name: "DeepSeek-R1-0528", - attachment: false, - reasoning: true, - tool_call: false, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-07", - release_date: "2025-05-28", - last_updated: "2025-05-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 2.15, cache_read: 0.35 }, - limit: { context: 163840, output: 64000 }, - }, - "deepseek-ai/DeepSeek-V3.2": { - id: "deepseek-ai/DeepSeek-V3.2", - name: "DeepSeek-V3.2", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-12", - release_date: "2025-12-02", - last_updated: "2025-12-02", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.26, output: 0.38, cache_read: 0.13 }, - limit: { context: 163840, output: 64000 }, - }, - "moonshotai/Kimi-K2-Instruct": { - id: "moonshotai/Kimi-K2-Instruct", - name: "Kimi K2", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-07-11", - last_updated: "2025-07-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 2 }, - limit: { context: 131072, output: 32768 }, - }, - "moonshotai/Kimi-K2-Instruct-0905": { - id: "moonshotai/Kimi-K2-Instruct-0905", - name: "Kimi K2 0905", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 2, cache_read: 0.15 }, - limit: { context: 262144, output: 262144 }, - }, - "moonshotai/Kimi-K2.5": { - id: "moonshotai/Kimi-K2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 2.8 }, - limit: { context: 262144, output: 32768 }, - }, - "moonshotai/Kimi-K2-Thinking": { - id: "moonshotai/Kimi-K2-Thinking", - name: "Kimi K2 Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-10", - release_date: "2025-11-06", - last_updated: "2025-11-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.47, output: 2 }, - limit: { context: 131072, output: 32768 }, - }, - "meta-llama/Llama-3.1-8B-Instruct-Turbo": { - id: "meta-llama/Llama-3.1-8B-Instruct-Turbo", - name: "Llama 3.1 8B Turbo", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0.03 }, - limit: { context: 131072, output: 16384 }, - }, - "meta-llama/Llama-3.1-70B-Instruct-Turbo": { - id: "meta-llama/Llama-3.1-70B-Instruct-Turbo", - name: "Llama 3.1 70B Turbo", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 0.4 }, - limit: { context: 131072, output: 16384 }, - }, - "meta-llama/Llama-4-Scout-17B-16E-Instruct": { - id: "meta-llama/Llama-4-Scout-17B-16E-Instruct", - name: "Llama 4 Scout 17B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.08, output: 0.3 }, - limit: { context: 10000000, output: 16384 }, - }, - "meta-llama/Llama-3.1-70B-Instruct": { - id: "meta-llama/Llama-3.1-70B-Instruct", - name: "Llama 3.1 70B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 0.4 }, - limit: { context: 131072, output: 16384 }, - }, - "meta-llama/Llama-3.1-8B-Instruct": { - id: "meta-llama/Llama-3.1-8B-Instruct", - name: "Llama 3.1 8B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0.05 }, - limit: { context: 131072, output: 16384 }, - }, - "meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8": { - id: "meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8", - name: "Llama 4 Maverick 17B FP8", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 1000000, output: 16384 }, - }, - "meta-llama/Llama-3.3-70B-Instruct-Turbo": { - id: "meta-llama/Llama-3.3-70B-Instruct-Turbo", - name: "Llama 3.3 70B Turbo", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.32 }, - limit: { context: 131072, output: 16384 }, - }, - "Qwen/Qwen3-Coder-480B-A35B-Instruct-Turbo": { - id: "Qwen/Qwen3-Coder-480B-A35B-Instruct-Turbo", - name: "Qwen3 Coder 480B A35B Instruct Turbo", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 262144, output: 66536 }, - }, - "Qwen/Qwen3-Coder-480B-A35B-Instruct": { - id: "Qwen/Qwen3-Coder-480B-A35B-Instruct", - name: "Qwen3 Coder 480B A35B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 1.6 }, - limit: { context: 262144, output: 66536 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "GPT OSS 120B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.24 }, - limit: { context: 131072, output: 16384 }, - }, - "openai/gpt-oss-20b": { - id: "openai/gpt-oss-20b", - name: "GPT OSS 20B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.14 }, - limit: { context: 131072, output: 16384 }, - }, - "anthropic/claude-3-7-sonnet-latest": { - id: "anthropic/claude-3-7-sonnet-latest", - name: "Claude Sonnet 3.7 (Latest)", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10-31", - release_date: "2025-03-13", - last_updated: "2025-03-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3.3, output: 16.5, cache_read: 0.33 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-4-opus": { - id: "anthropic/claude-4-opus", - name: "Claude Opus 4", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-06-12", - last_updated: "2025-06-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 16.5, output: 82.5 }, - limit: { context: 200000, output: 32000 }, - }, - }, - }, - "perplexity-agent": { - id: "perplexity-agent", - env: ["PERPLEXITY_API_KEY"], - npm: "@ai-sdk/openai", - api: "https://api.perplexity.ai/v1", - name: "Perplexity Agent", - doc: "https://docs.perplexity.ai/docs/agent-api/models", - models: { - "nvidia/nemotron-3-super-120b-a12b": { - id: "nvidia/nemotron-3-super-120b-a12b", - name: "Nemotron 3 Super 120B", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2026-02", - release_date: "2026-03-11", - last_updated: "2026-03-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.25, output: 2.5 }, - limit: { context: 1000000, output: 32000 }, - }, - "google/gemini-2.5-flash": { - id: "google/gemini-2.5-flash", - name: "Gemini 2.5 Flash", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-03-20", - last_updated: "2025-06-05", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5, cache_read: 0.03 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-3-flash-preview": { - id: "google/gemini-3-flash-preview", - name: "Gemini 3 Flash Preview", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 0.5, - output: 3, - cache_read: 0.05, - context_over_200k: { input: 0.5, output: 3, cache_read: 0.05 }, - }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-3.1-pro-preview": { - id: "google/gemini-3.1-pro-preview", - name: "Gemini 3.1 Pro Preview", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-02-19", - last_updated: "2026-02-19", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-2.5-pro": { - id: "google/gemini-2.5-pro", - name: "Gemini 2.5 Pro", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-03-20", - last_updated: "2025-06-05", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 1.25, - output: 10, - cache_read: 0.125, - context_over_200k: { input: 2.5, output: 15, cache_read: 0.25 }, - }, - limit: { context: 1048576, output: 65536 }, - }, - "openai/gpt-5.1": { - id: "openai/gpt-5.1", - name: "GPT-5.1", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "openai/gpt-5.2": { - id: "openai/gpt-5.2", - name: "GPT-5.2", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "openai/gpt-5.4": { - id: "openai/gpt-5.4", - name: "GPT-5.4", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 15, cache_read: 0.25 }, - limit: { context: 1050000, input: 922000, output: 128000 }, - }, - "openai/gpt-5-mini": { - id: "openai/gpt-5-mini", - name: "GPT-5 Mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.025 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "perplexity/sonar": { - id: "perplexity/sonar", - name: "Sonar", - family: "sonar", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-09-01", - release_date: "2024-01-01", - last_updated: "2025-09-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2.5, cache_read: 0.0625 }, - limit: { context: 128000, output: 8192 }, - }, - "anthropic/claude-opus-4-6": { - id: "anthropic/claude-opus-4-6", - name: "Claude Opus 4.6", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5 }, - limit: { context: 200000, output: 128000 }, - }, - "anthropic/claude-sonnet-4-6": { - id: "anthropic/claude-sonnet-4-6", - name: "Claude Sonnet 4.6", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2026-02-17", - last_updated: "2026-02-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-haiku-4-5": { - id: "anthropic/claude-haiku-4-5", - name: "Claude Haiku 4.5", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-02-28", - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-opus-4-5": { - id: "anthropic/claude-opus-4-5", - name: "Claude Opus 4.5", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-24", - last_updated: "2025-11-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-sonnet-4-5": { - id: "anthropic/claude-sonnet-4-5", - name: "Claude Sonnet 4.5", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3 }, - limit: { context: 200000, output: 64000 }, - }, - "xai/grok-4-1-fast-non-reasoning": { - id: "xai/grok-4-1-fast-non-reasoning", - name: "Grok 4.1 Fast (Non-Reasoning)", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-11-19", - last_updated: "2025-11-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 30000 }, - }, - }, - }, - xiaomi: { - id: "xiaomi", - env: ["XIAOMI_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.xiaomimimo.com/v1", - name: "Xiaomi", - doc: "https://platform.xiaomimimo.com/#/docs", - models: { - "mimo-v2-omni": { - id: "mimo-v2-omni", - name: "MiMo-V2-Omni", - family: "mimo", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-12", - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 2, cache_read: 0.08 }, - limit: { context: 256000, output: 128000 }, - }, - "mimo-v2-flash": { - id: "mimo-v2-flash", - name: "MiMo-V2-Flash", - family: "mimo", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-12-01", - release_date: "2025-12-16", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3, cache_read: 0.01 }, - limit: { context: 256000, output: 64000 }, - }, - "mimo-v2-pro": { - id: "mimo-v2-pro", - name: "MiMo-V2-Pro", - family: "mimo", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-12", - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3, cache_read: 0.2 }, - limit: { context: 1000000, output: 128000 }, - }, - }, - }, - synthetic: { - id: "synthetic", - env: ["SYNTHETIC_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.synthetic.new/openai/v1", - name: "Synthetic", - doc: "https://synthetic.new/pricing", - models: { - "hf:MiniMaxAI/MiniMax-M2.5": { - id: "hf:MiniMaxAI/MiniMax-M2.5", - name: "MiniMax-M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-02-07", - last_updated: "2026-02-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3, cache_read: 0.6 }, - limit: { context: 191488, output: 65536 }, - }, - "hf:MiniMaxAI/MiniMax-M2": { - id: "hf:MiniMaxAI/MiniMax-M2", - name: "MiniMax-M2", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-10-27", - last_updated: "2025-10-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.19 }, - limit: { context: 196608, output: 131000 }, - }, - "hf:MiniMaxAI/MiniMax-M2.1": { - id: "hf:MiniMaxAI/MiniMax-M2.1", - name: "MiniMax-M2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.19 }, - limit: { context: 204800, output: 131072 }, - }, - "hf:deepseek-ai/DeepSeek-R1": { - id: "hf:deepseek-ai/DeepSeek-R1", - name: "DeepSeek R1", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.19 }, - limit: { context: 128000, output: 128000 }, - }, - "hf:deepseek-ai/DeepSeek-R1-0528": { - id: "hf:deepseek-ai/DeepSeek-R1-0528", - name: "DeepSeek R1 (0528)", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-01", - last_updated: "2025-08-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 8 }, - limit: { context: 128000, output: 128000 }, - }, - "hf:deepseek-ai/DeepSeek-V3.1": { - id: "hf:deepseek-ai/DeepSeek-V3.1", - name: "DeepSeek V3.1", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-21", - last_updated: "2025-08-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.56, output: 1.68 }, - limit: { context: 128000, output: 128000 }, - }, - "hf:deepseek-ai/DeepSeek-V3.2": { - id: "hf:deepseek-ai/DeepSeek-V3.2", - name: "DeepSeek V3.2", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 0.4, cache_read: 0.27, cache_write: 0 }, - limit: { context: 162816, input: 162816, output: 8000 }, - }, - "hf:deepseek-ai/DeepSeek-V3-0324": { - id: "hf:deepseek-ai/DeepSeek-V3-0324", - name: "DeepSeek V3 (0324)", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-08-01", - last_updated: "2025-08-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.2, output: 1.2 }, - limit: { context: 128000, output: 128000 }, - }, - "hf:deepseek-ai/DeepSeek-V3": { - id: "hf:deepseek-ai/DeepSeek-V3", - name: "DeepSeek V3", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-01-20", - last_updated: "2025-05-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.25, output: 1.25 }, - limit: { context: 128000, output: 128000 }, - }, - "hf:deepseek-ai/DeepSeek-V3.1-Terminus": { - id: "hf:deepseek-ai/DeepSeek-V3.1-Terminus", - name: "DeepSeek V3.1 Terminus", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-09-22", - last_updated: "2025-09-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.2, output: 1.2 }, - limit: { context: 128000, output: 128000 }, - }, - "hf:moonshotai/Kimi-K2-Instruct-0905": { - id: "hf:moonshotai/Kimi-K2-Instruct-0905", - name: "Kimi K2 0905", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.2, output: 1.2 }, - limit: { context: 262144, output: 32768 }, - }, - "hf:moonshotai/Kimi-K2.5": { - id: "hf:moonshotai/Kimi-K2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.19 }, - limit: { context: 262144, output: 65536 }, - }, - "hf:moonshotai/Kimi-K2-Thinking": { - id: "hf:moonshotai/Kimi-K2-Thinking", - name: "Kimi K2 Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-11", - release_date: "2025-11-07", - last_updated: "2025-11-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.19 }, - limit: { context: 262144, output: 262144 }, - }, - "hf:openai/gpt-oss-120b": { - id: "hf:openai/gpt-oss-120b", - name: "GPT OSS 120B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.1 }, - limit: { context: 128000, output: 32768 }, - }, - "hf:nvidia/Kimi-K2.5-NVFP4": { - id: "hf:nvidia/Kimi-K2.5-NVFP4", - name: "Kimi K2.5 (NVFP4)", - family: "kimi", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.19 }, - limit: { context: 262144, output: 65536 }, - }, - "hf:meta-llama/Llama-4-Scout-17B-16E-Instruct": { - id: "hf:meta-llama/Llama-4-Scout-17B-16E-Instruct", - name: "Llama-4-Scout-17B-16E-Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 328000, output: 4096 }, - }, - "hf:meta-llama/Llama-3.1-405B-Instruct": { - id: "hf:meta-llama/Llama-3.1-405B-Instruct", - name: "Llama-3.1-405B-Instruct", - family: "llama", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 3, output: 3 }, - limit: { context: 128000, output: 32768 }, - }, - "hf:meta-llama/Llama-3.1-70B-Instruct": { - id: "hf:meta-llama/Llama-3.1-70B-Instruct", - name: "Llama-3.1-70B-Instruct", - family: "llama", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.9, output: 0.9 }, - limit: { context: 128000, output: 32768 }, - }, - "hf:meta-llama/Llama-3.1-8B-Instruct": { - id: "hf:meta-llama/Llama-3.1-8B-Instruct", - name: "Llama-3.1-8B-Instruct", - family: "llama", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 128000, output: 32768 }, - }, - "hf:meta-llama/Llama-3.3-70B-Instruct": { - id: "hf:meta-llama/Llama-3.3-70B-Instruct", - name: "Llama-3.3-70B-Instruct", - family: "llama", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.9, output: 0.9 }, - limit: { context: 128000, output: 32768 }, - }, - "hf:meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8": { - id: "hf:meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8", - name: "Llama-4-Maverick-17B-128E-Instruct-FP8", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.22, output: 0.88 }, - limit: { context: 524000, output: 4096 }, - }, - "hf:zai-org/GLM-4.7-Flash": { - id: "hf:zai-org/GLM-4.7-Flash", - name: "GLM-4.7-Flash", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-01-18", - last_updated: "2026-01-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.06, output: 0.4, cache_read: 0.06 }, - limit: { context: 196608, output: 65536 }, - }, - "hf:zai-org/GLM-4.6": { - id: "hf:zai-org/GLM-4.6", - name: "GLM 4.6", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.19 }, - limit: { context: 200000, output: 64000 }, - }, - "hf:zai-org/GLM-4.7": { - id: "hf:zai-org/GLM-4.7", - name: "GLM 4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.19 }, - limit: { context: 200000, output: 64000 }, - }, - "hf:Qwen/Qwen3-235B-A22B-Thinking-2507": { - id: "hf:Qwen/Qwen3-235B-A22B-Thinking-2507", - name: "Qwen3 235B A22B Thinking 2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-25", - last_updated: "2025-07-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.65, output: 3 }, - limit: { context: 256000, output: 32000 }, - }, - "hf:Qwen/Qwen2.5-Coder-32B-Instruct": { - id: "hf:Qwen/Qwen2.5-Coder-32B-Instruct", - name: "Qwen2.5-Coder-32B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-10", - release_date: "2024-11-11", - last_updated: "2024-11-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.8, output: 0.8 }, - limit: { context: 32768, output: 32768 }, - }, - "hf:Qwen/Qwen3-Coder-480B-A35B-Instruct": { - id: "hf:Qwen/Qwen3-Coder-480B-A35B-Instruct", - name: "Qwen 3 Coder 480B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2, output: 2 }, - limit: { context: 256000, output: 32000 }, - }, - "hf:Qwen/Qwen3-235B-A22B-Instruct-2507": { - id: "hf:Qwen/Qwen3-235B-A22B-Instruct-2507", - name: "Qwen 3 235B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04-28", - last_updated: "2025-07-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.6 }, - limit: { context: 256000, output: 32000 }, - }, - }, - }, - nebius: { - id: "nebius", - env: ["NEBIUS_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.tokenfactory.nebius.com/v1", - name: "Nebius Token Factory", - doc: "https://docs.tokenfactory.nebius.com/", - models: { - "zai-org/GLM-4.7-FP8": { - id: "zai-org/GLM-4.7-FP8", - name: "GLM-4.7 (FP8)", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-12", - release_date: "2026-01-15", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2, cache_read: 0.04, cache_write: 0.5 }, - limit: { context: 128000, input: 124000, output: 4096 }, - }, - "zai-org/GLM-4.5-Air": { - id: "zai-org/GLM-4.5-Air", - name: "GLM-4.5-Air", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-11-15", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.2, cache_read: 0.02, cache_write: 0.25 }, - limit: { context: 128000, input: 124000, output: 4096 }, - }, - "zai-org/GLM-4.5": { - id: "zai-org/GLM-4.5", - name: "GLM-4.5", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-11-15", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 2.2, cache_read: 0.06, cache_write: 0.75 }, - limit: { context: 128000, input: 124000, output: 4096 }, - }, - "zai-org/GLM-5": { - id: "zai-org/GLM-5", - name: "GLM-5", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2026-01", - release_date: "2026-03-01", - last_updated: "2026-03-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 3.2, cache_read: 0.1, cache_write: 1 }, - limit: { context: 200000, input: 200000, output: 16384 }, - }, - "nvidia/nemotron-3-super-120b-a12b": { - id: "nvidia/nemotron-3-super-120b-a12b", - name: "Nemotron-3-Super-120B-A12B", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2026-02", - release_date: "2026-03-11", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.9 }, - limit: { context: 256000, input: 256000, output: 32768 }, - }, - "nvidia/Llama-3_1-Nemotron-Ultra-253B-v1": { - id: "nvidia/Llama-3_1-Nemotron-Ultra-253B-v1", - name: "Llama-3.1-Nemotron-Ultra-253B-v1", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-01-15", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 1.8, cache_read: 0.06, cache_write: 0.75 }, - limit: { context: 128000, input: 120000, output: 4096 }, - }, - "nvidia/Nemotron-Nano-V2-12b": { - id: "nvidia/Nemotron-Nano-V2-12b", - name: "Nemotron-Nano-V2-12b", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-03-15", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.2, cache_read: 0.007, cache_write: 0.08 }, - limit: { context: 32000, input: 30000, output: 4096 }, - }, - "nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B": { - id: "nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B", - name: "Nemotron-3-Nano-30B-A3B", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-05", - release_date: "2025-08-10", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.06, output: 0.24, cache_read: 0.006, cache_write: 0.075 }, - limit: { context: 32000, input: 30000, output: 4096 }, - }, - "NousResearch/Hermes-4-405B": { - id: "NousResearch/Hermes-4-405B", - name: "Hermes-4-405B", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-11", - release_date: "2026-01-30", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3, reasoning: 3, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 128000, input: 120000, output: 8192 }, - }, - "NousResearch/Hermes-4-70B": { - id: "NousResearch/Hermes-4-70B", - name: "Hermes-4-70B", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-11", - release_date: "2026-01-30", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.13, output: 0.4, reasoning: 0.4, cache_read: 0.013, cache_write: 0.16 }, - limit: { context: 128000, input: 120000, output: 8192 }, - }, - "BAAI/bge-en-icl": { - id: "BAAI/bge-en-icl", - name: "BGE-ICL", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: false, - knowledge: "2024-06", - release_date: "2024-07-30", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.01, output: 0 }, - limit: { context: 32768, input: 32768, output: 0 }, - }, - "BAAI/bge-multilingual-gemma2": { - id: "BAAI/bge-multilingual-gemma2", - name: "bge-multilingual-gemma2", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: false, - knowledge: "2024-06", - release_date: "2024-07-30", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.01, output: 0 }, - limit: { context: 8192, input: 8192, output: 0 }, - }, - "PrimeIntellect/INTELLECT-3": { - id: "PrimeIntellect/INTELLECT-3", - name: "INTELLECT-3", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-10", - release_date: "2026-01-25", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 1.1, cache_read: 0.02, cache_write: 0.25 }, - limit: { context: 128000, input: 120000, output: 8192 }, - }, - "MiniMaxAI/MiniMax-M2.1": { - id: "MiniMaxAI/MiniMax-M2.1", - name: "MiniMax-M2.1", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-10", - release_date: "2026-02-01", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, reasoning: 1.2, cache_read: 0.03, cache_write: 0.375 }, - limit: { context: 128000, input: 120000, output: 8192 }, - }, - "deepseek-ai/DeepSeek-V3-0324-fast": { - id: "deepseek-ai/DeepSeek-V3-0324-fast", - name: "DeepSeek-V3-0324 (Fast)", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-03-24", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.75, output: 2.25, cache_read: 0.075, cache_write: 0.28125 }, - limit: { context: 128000, input: 120000, output: 8192 }, - }, - "deepseek-ai/DeepSeek-R1-0528": { - id: "deepseek-ai/DeepSeek-R1-0528", - name: "DeepSeek-R1-0528", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-11", - release_date: "2026-01-15", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.8, output: 2.4, reasoning: 2.4, cache_read: 0.08, cache_write: 1 }, - limit: { context: 128000, input: 120000, output: 32768 }, - }, - "deepseek-ai/DeepSeek-V3.2": { - id: "deepseek-ai/DeepSeek-V3.2", - name: "DeepSeek-V3.2", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-11", - release_date: "2026-01-20", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.45, reasoning: 0.45, cache_read: 0.03, cache_write: 0.375 }, - limit: { context: 163000, input: 160000, output: 16384 }, - }, - "deepseek-ai/DeepSeek-V3-0324": { - id: "deepseek-ai/DeepSeek-V3-0324", - name: "DeepSeek-V3-0324", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-03-24", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 1.5, cache_read: 0.05, cache_write: 0.1875 }, - limit: { context: 128000, input: 120000, output: 8192 }, - }, - "deepseek-ai/DeepSeek-R1-0528-fast": { - id: "deepseek-ai/DeepSeek-R1-0528-fast", - name: "DeepSeek R1 0528 Fast", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-01-01", - last_updated: "2025-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2, output: 6 }, - limit: { context: 131072, output: 8192 }, - }, - "intfloat/e5-mistral-7b-instruct": { - id: "intfloat/e5-mistral-7b-instruct", - name: "e5-mistral-7b-instruct", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: false, - knowledge: "2023-12", - release_date: "2024-01-01", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.01, output: 0 }, - limit: { context: 32768, input: 32768, output: 0 }, - }, - "moonshotai/Kimi-K2-Instruct": { - id: "moonshotai/Kimi-K2-Instruct", - name: "Kimi-K2-Instruct", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-10", - release_date: "2026-01-05", - last_updated: "2026-02-04", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 2.4, cache_read: 0.05, cache_write: 0.625 }, - limit: { context: 200000, input: 190000, output: 8192 }, - }, - "moonshotai/Kimi-K2.5-fast": { - id: "moonshotai/Kimi-K2.5-fast", - name: "Kimi-K2.5-fast", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-12-15", - last_updated: "2026-02-04", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 2.5, cache_read: 0.05, cache_write: 0.625 }, - limit: { context: 256000, input: 256000, output: 8192 }, - }, - "moonshotai/Kimi-K2.5": { - id: "moonshotai/Kimi-K2.5", - name: "Kimi-K2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-12-15", - last_updated: "2026-02-04", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 2.5, reasoning: 2.5, cache_read: 0.05, cache_write: 0.625 }, - limit: { context: 256000, input: 256000, output: 8192 }, - }, - "moonshotai/Kimi-K2-Thinking": { - id: "moonshotai/Kimi-K2-Thinking", - name: "Kimi-K2-Thinking", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-10", - release_date: "2026-01-05", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5, reasoning: 2.5, cache_read: 0.06, cache_write: 0.75 }, - limit: { context: 128000, input: 120000, output: 16384 }, - }, - "google/gemma-2-2b-it": { - id: "google/gemma-2-2b-it", - name: "Gemma-2-2b-it", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - knowledge: "2024-06", - release_date: "2024-07-31", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0.06, cache_read: 0.002, cache_write: 0.025 }, - limit: { context: 8192, input: 8000, output: 4096 }, - }, - "google/gemma-3-27b-it-fast": { - id: "google/gemma-3-27b-it-fast", - name: "Gemma-3-27b-it (Fast)", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-10", - release_date: "2026-01-20", - last_updated: "2026-02-04", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.6, cache_read: 0.02, cache_write: 0.25 }, - limit: { context: 110000, input: 100000, output: 8192 }, - }, - "google/gemma-2-9b-it-fast": { - id: "google/gemma-2-9b-it-fast", - name: "Gemma-2-9b-it (Fast)", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - knowledge: "2024-06", - release_date: "2024-06-27", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.09, cache_read: 0.003, cache_write: 0.0375 }, - limit: { context: 8192, input: 8000, output: 4096 }, - }, - "google/gemma-3-27b-it": { - id: "google/gemma-3-27b-it", - name: "Gemma-3-27b-it", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-10", - release_date: "2026-01-20", - last_updated: "2026-02-04", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3, cache_read: 0.01, cache_write: 0.125 }, - limit: { context: 110000, input: 100000, output: 8192 }, - }, - "meta-llama/Meta-Llama-3.1-8B-Instruct": { - id: "meta-llama/Meta-Llama-3.1-8B-Instruct", - name: "Meta-Llama-3.1-8B-Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-12", - release_date: "2024-07-23", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0.06, cache_read: 0.002, cache_write: 0.025 }, - limit: { context: 128000, input: 120000, output: 4096 }, - }, - "meta-llama/Llama-Guard-3-8B": { - id: "meta-llama/Llama-Guard-3-8B", - name: "Llama-Guard-3-8B", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: false, - knowledge: "2024-04", - release_date: "2024-04-18", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0.06, cache_read: 0.002, cache_write: 0.025 }, - limit: { context: 8192, input: 8000, output: 1024 }, - }, - "meta-llama/Llama-3.3-70B-Instruct-fast": { - id: "meta-llama/Llama-3.3-70B-Instruct-fast", - name: "Llama-3.3-70B-Instruct (Fast)", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-08", - release_date: "2025-12-05", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.25, output: 0.75, cache_read: 0.025, cache_write: 0.31 }, - limit: { context: 128000, input: 120000, output: 8192 }, - }, - "meta-llama/Meta-Llama-3.1-8B-Instruct-fast": { - id: "meta-llama/Meta-Llama-3.1-8B-Instruct-fast", - name: "Meta-Llama-3.1-8B-Instruct (Fast)", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-12", - release_date: "2024-07-23", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.09, cache_read: 0.003, cache_write: 0.03 }, - limit: { context: 128000, input: 120000, output: 4096 }, - }, - "meta-llama/Llama-3.3-70B-Instruct": { - id: "meta-llama/Llama-3.3-70B-Instruct", - name: "Llama-3.3-70B-Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-08", - release_date: "2025-12-05", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.13, output: 0.4, cache_read: 0.013, cache_write: 0.16 }, - limit: { context: 128000, input: 120000, output: 8192 }, - }, - "Qwen/Qwen3-30B-A3B-Instruct-2507": { - id: "Qwen/Qwen3-30B-A3B-Instruct-2507", - name: "Qwen3-30B-A3B-Instruct-2507", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-12", - release_date: "2026-01-28", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3, cache_read: 0.01, cache_write: 0.125 }, - limit: { context: 128000, input: 120000, output: 8192 }, - }, - "Qwen/Qwen3-32B": { - id: "Qwen/Qwen3-32B", - name: "Qwen3-32B", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-12", - release_date: "2026-01-28", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3, cache_read: 0.01, cache_write: 0.125 }, - limit: { context: 128000, input: 120000, output: 8192 }, - }, - "Qwen/Qwen3-235B-A22B-Thinking-2507": { - id: "Qwen/Qwen3-235B-A22B-Thinking-2507", - name: "Qwen3 235B A22B Thinking 2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-07-25", - last_updated: "2025-10-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 262144, output: 8192 }, - }, - "Qwen/Qwen3-30B-A3B-Thinking-2507": { - id: "Qwen/Qwen3-30B-A3B-Thinking-2507", - name: "Qwen3-30B-A3B-Thinking-2507", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-12", - release_date: "2026-01-28", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3, reasoning: 0.3, cache_read: 0.01, cache_write: 0.125 }, - limit: { context: 128000, input: 120000, output: 16384 }, - }, - "Qwen/Qwen3-Coder-480B-A35B-Instruct": { - id: "Qwen/Qwen3-Coder-480B-A35B-Instruct", - name: "Qwen3 Coder 480B A35B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-10-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.8 }, - limit: { context: 262144, output: 66536 }, - }, - "Qwen/Qwen2.5-VL-72B-Instruct": { - id: "Qwen/Qwen2.5-VL-72B-Instruct", - name: "Qwen2.5-VL-72B-Instruct", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-01-20", - last_updated: "2026-02-04", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.25, output: 0.75, cache_read: 0.025, cache_write: 0.31 }, - limit: { context: 128000, input: 120000, output: 8192 }, - }, - "Qwen/Qwen3-Embedding-8B": { - id: "Qwen/Qwen3-Embedding-8B", - name: "Qwen3-Embedding-8B", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: false, - knowledge: "2025-10", - release_date: "2026-01-10", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.01, output: 0 }, - limit: { context: 32768, input: 32768, output: 0 }, - }, - "Qwen/Qwen3-32B-fast": { - id: "Qwen/Qwen3-32B-fast", - name: "Qwen3-32B (Fast)", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-12", - release_date: "2026-01-28", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.6, cache_read: 0.02, cache_write: 0.25 }, - limit: { context: 128000, input: 120000, output: 8192 }, - }, - "Qwen/Qwen3-Next-80B-A3B-Thinking": { - id: "Qwen/Qwen3-Next-80B-A3B-Thinking", - name: "Qwen3-Next-80B-A3B-Thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-12", - release_date: "2026-01-28", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 1.2, reasoning: 1.2, cache_read: 0.015, cache_write: 0.18 }, - limit: { context: 128000, input: 120000, output: 16384 }, - }, - "Qwen/Qwen2.5-Coder-7B-fast": { - id: "Qwen/Qwen2.5-Coder-7B-fast", - name: "Qwen2.5-Coder-7B (Fast)", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-09", - release_date: "2024-09-19", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.09, cache_read: 0.003, cache_write: 0.03 }, - limit: { context: 128000, input: 120000, output: 8192 }, - }, - "Qwen/Qwen3-Coder-30B-A3B-Instruct": { - id: "Qwen/Qwen3-Coder-30B-A3B-Instruct", - name: "Qwen3-Coder-30B-A3B-Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-12", - release_date: "2026-01-28", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3, cache_read: 0.01, cache_write: 0.125 }, - limit: { context: 128000, input: 120000, output: 8192 }, - }, - "Qwen/Qwen3-235B-A22B-Instruct-2507": { - id: "Qwen/Qwen3-235B-A22B-Instruct-2507", - name: "Qwen3 235B A22B Instruct 2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-07-25", - last_updated: "2025-10-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.6 }, - limit: { context: 262144, output: 8192 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "gpt-oss-120b", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-09", - release_date: "2026-01-10", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6, reasoning: 0.6, cache_read: 0.015, cache_write: 0.18 }, - limit: { context: 128000, input: 124000, output: 8192 }, - }, - "openai/gpt-oss-20b": { - id: "openai/gpt-oss-20b", - name: "gpt-oss-20b", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-09", - release_date: "2026-01-10", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.2, cache_read: 0.005, cache_write: 0.06 }, - limit: { context: 128000, input: 124000, output: 4096 }, - }, - "black-forest-labs/flux-dev": { - id: "black-forest-labs/flux-dev", - name: "FLUX.1-dev", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: false, - knowledge: "2024-07", - release_date: "2024-08-01", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["image"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 77, input: 77, output: 0 }, - }, - "black-forest-labs/flux-schnell": { - id: "black-forest-labs/flux-schnell", - name: "FLUX.1-schnell", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: false, - knowledge: "2024-07", - release_date: "2024-08-01", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["image"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 77, input: 77, output: 0 }, - }, - }, - }, - "qiniu-ai": { - id: "qiniu-ai", - env: ["QINIU_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.qnaigc.com/v1", - name: "Qiniu", - doc: "https://developer.qiniu.com/aitokenapi", - models: { - "claude-4.5-haiku": { - id: "claude-4.5-haiku", - name: "Claude 4.5 Haiku", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-10-16", - last_updated: "2025-10-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - limit: { context: 200000, output: 64000 }, - }, - "claude-3.5-sonnet": { - id: "claude-3.5-sonnet", - name: "Claude 3.5 Sonnet", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-09-09", - last_updated: "2025-09-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - limit: { context: 200000, output: 8200 }, - }, - "qwen3-235b-a22b-instruct-2507": { - id: "qwen3-235b-a22b-instruct-2507", - name: "Qwen3 235b A22B Instruct 2507", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-12", - last_updated: "2025-08-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 262144, output: 64000 }, - }, - "kimi-k2": { - id: "kimi-k2", - name: "Kimi K2", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 128000 }, - }, - "claude-3.7-sonnet": { - id: "claude-3.7-sonnet", - name: "Claude 3.7 Sonnet", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - limit: { context: 200000, output: 128000 }, - }, - "qwen3-max-preview": { - id: "qwen3-max-preview", - name: "Qwen3 Max Preview", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-09-06", - last_updated: "2025-09-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 64000 }, - }, - "qwen3-next-80b-a3b-thinking": { - id: "qwen3-next-80b-a3b-thinking", - name: "Qwen3 Next 80B A3B Thinking", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-09-12", - last_updated: "2025-09-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 131072, output: 32768 }, - }, - "claude-4.0-sonnet": { - id: "claude-4.0-sonnet", - name: "Claude 4.0 Sonnet", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - limit: { context: 200000, output: 64000 }, - }, - "qwen-vl-max-2025-01-25": { - id: "qwen-vl-max-2025-01-25", - name: "Qwen VL-MAX-2025-01-25", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 4096 }, - }, - "deepseek-v3": { - id: "deepseek-v3", - name: "DeepSeek-V3", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-08-13", - last_updated: "2025-08-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 16000 }, - }, - "doubao-seed-1.6-thinking": { - id: "doubao-seed-1.6-thinking", - name: "Doubao-Seed 1.6 Thinking", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-15", - last_updated: "2025-08-15", - modalities: { input: ["image", "text", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 32000 }, - }, - "qwen3-coder-480b-a35b-instruct": { - id: "qwen3-coder-480b-a35b-instruct", - name: "Qwen3 Coder 480B A35B Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-14", - last_updated: "2025-08-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 262000, output: 4096 }, - }, - "mimo-v2-flash": { - id: "mimo-v2-flash", - name: "Mimo-V2-Flash", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 256000 }, - }, - "glm-4.5-air": { - id: "glm-4.5-air", - name: "GLM 4.5 Air", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 131000, output: 4096 }, - }, - "glm-4.5": { - id: "glm-4.5", - name: "GLM 4.5", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 131072, output: 98304 }, - }, - "claude-4.5-sonnet": { - id: "claude-4.5-sonnet", - name: "Claude 4.5 Sonnet", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - limit: { context: 200000, output: 64000 }, - }, - "qwen2.5-vl-7b-instruct": { - id: "qwen2.5-vl-7b-instruct", - name: "Qwen 2.5 VL 7B Instruct", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 8192 }, - }, - "doubao-seed-2.0-pro": { - id: "doubao-seed-2.0-pro", - name: "Doubao Seed 2.0 Pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2026-02-14", - last_updated: "2026-02-14", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 128000 }, - }, - "gemini-2.5-flash": { - id: "gemini-2.5-flash", - name: "Gemini 2.5 Flash", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 1048576, output: 64000 }, - }, - "deepseek-v3.1": { - id: "deepseek-v3.1", - name: "DeepSeek-V3.1", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-19", - last_updated: "2025-08-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 32000 }, - }, - "doubao-seed-1.6": { - id: "doubao-seed-1.6", - name: "Doubao-Seed 1.6", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-15", - last_updated: "2025-08-15", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 32000 }, - }, - "doubao-seed-2.0-mini": { - id: "doubao-seed-2.0-mini", - name: "Doubao Seed 2.0 Mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2026-02-14", - last_updated: "2026-02-14", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 32000 }, - }, - "claude-4.0-opus": { - id: "claude-4.0-opus", - name: "Claude 4.0 Opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - limit: { context: 200000, output: 32000 }, - }, - "qwen-turbo": { - id: "qwen-turbo", - name: "Qwen-Turbo", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 1000000, output: 4096 }, - }, - "gemini-3.0-pro-preview": { - id: "gemini-3.0-pro-preview", - name: "Gemini 3.0 Pro Preview", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-11-19", - last_updated: "2025-11-19", - modalities: { input: ["text", "image", "video", "pdf", "audio"], output: ["text"] }, - open_weights: false, - limit: { context: 1000000, output: 64000 }, - }, - "deepseek-r1-0528": { - id: "deepseek-r1-0528", - name: "DeepSeek-R1-0528", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 32000 }, - }, - "deepseek-r1": { - id: "deepseek-r1", - name: "DeepSeek-R1", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 32000 }, - }, - "qwen3-32b": { - id: "qwen3-32b", - name: "Qwen3 32B", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 40000, output: 4096 }, - }, - "doubao-1.5-vision-pro": { - id: "doubao-1.5-vision-pro", - name: "Doubao 1.5 Vision Pro", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 16000 }, - }, - "gemini-3.0-pro-image-preview": { - id: "gemini-3.0-pro-image-preview", - name: "Gemini 3.0 Pro Image Preview", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-11-20", - last_updated: "2025-11-20", - modalities: { input: ["text", "image"], output: ["text", "image"] }, - open_weights: false, - limit: { context: 32768, output: 8192 }, - }, - "qwen3.5-397b-a17b": { - id: "qwen3.5-397b-a17b", - name: "Qwen3.5 397B A17B", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2026-02-22", - last_updated: "2026-02-22", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 64000 }, - }, - "gemini-2.5-flash-lite": { - id: "gemini-2.5-flash-lite", - name: "Gemini 2.5 Flash Lite", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 1048576, output: 64000 }, - }, - "claude-3.5-haiku": { - id: "claude-3.5-haiku", - name: "Claude 3.5 Haiku", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-26", - last_updated: "2025-08-26", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - limit: { context: 200000, output: 8192 }, - }, - "gpt-oss-120b": { - id: "gpt-oss-120b", - name: "gpt-oss-120b", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-06", - last_updated: "2025-08-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 4096 }, - }, - "deepseek-v3-0324": { - id: "deepseek-v3-0324", - name: "DeepSeek-V3-0324", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 16000 }, - }, - "doubao-1.5-pro-32k": { - id: "doubao-1.5-pro-32k", - name: "Doubao 1.5 Pro 32k", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 12000 }, - }, - "qwen3-30b-a3b-instruct-2507": { - id: "qwen3-30b-a3b-instruct-2507", - name: "Qwen3 30b A3b Instruct 2507", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2026-02-04", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 32000 }, - }, - "qwen2.5-vl-72b-instruct": { - id: "qwen2.5-vl-72b-instruct", - name: "Qwen 2.5 VL 72B Instruct", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 8192 }, - }, "qwen3-235b-a22b": { id: "qwen3-235b-a22b", - name: "Qwen 3 235B A22B", + name: "Qwen3-235B-A22B", + family: "qwen", attachment: false, reasoning: false, tool_call: true, - structured_output: false, temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", + knowledge: "2025-04", + release_date: "2025-04-29", + last_updated: "2025-04-29", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - limit: { context: 128000, output: 32000 }, + cost: { input: 0.29, output: 2.86 }, + limit: { context: 128000, output: 16384 }, }, - "doubao-seed-2.0-lite": { - id: "doubao-seed-2.0-lite", - name: "Doubao Seed 2.0 Lite", + "grok-4.1": { + id: "grok-4.1", + name: "grok-4.1", attachment: true, - reasoning: true, + reasoning: false, tool_call: true, - structured_output: false, temperature: true, - release_date: "2026-02-14", - last_updated: "2026-02-14", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 32000 }, - }, - "claude-4.1-opus": { - id: "claude-4.1-opus", - name: "Claude 4.1 Opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-06", - last_updated: "2025-08-06", + knowledge: "2025-06", + release_date: "2025-11-18", + last_updated: "2025-11-18", modalities: { input: ["text", "image"], output: ["text"] }, open_weights: false, - limit: { context: 200000, output: 32000 }, + cost: { input: 2, output: 10 }, + limit: { context: 200000, output: 64000 }, }, - "doubao-1.5-thinking-pro": { - id: "doubao-1.5-thinking-pro", - name: "Doubao 1.5 Thinking Pro", + "MiniMax-M2": { + id: "MiniMax-M2", + name: "MiniMax-M2", attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 16000 }, - }, - "gemini-2.5-flash-image": { - id: "gemini-2.5-flash-image", - name: "Gemini 2.5 Flash Image", - attachment: true, reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-10-22", - last_updated: "2025-10-22", - modalities: { input: ["text", "image"], output: ["image"] }, - open_weights: false, - limit: { context: 32768, output: 8192 }, - }, - "MiniMax-M1": { - id: "MiniMax-M1", - name: "MiniMax M1", - attachment: false, - reasoning: true, tool_call: true, - structured_output: false, temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", + release_date: "2025-10-26", + last_updated: "2025-10-26", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - limit: { context: 1000000, output: 80000 }, + cost: { input: 0.33, output: 1.32 }, + limit: { context: 1000000, output: 128000 }, }, - "doubao-seed-1.6-flash": { - id: "doubao-seed-1.6-flash", - name: "Doubao-Seed 1.6 Flash", + "grok-4-1-fast-reasoning": { + id: "grok-4-1-fast-reasoning", + name: "grok-4-1-fast-reasoning", attachment: true, reasoning: true, tool_call: true, - structured_output: false, temperature: true, - release_date: "2025-08-15", - last_updated: "2025-08-15", - modalities: { input: ["text", "image", "video"], output: ["text"] }, + knowledge: "2025-06", + release_date: "2025-11-20", + last_updated: "2025-11-20", + modalities: { input: ["text", "image"], output: ["text"] }, open_weights: false, - limit: { context: 256000, output: 32000 }, + cost: { input: 0.2, output: 0.5 }, + limit: { context: 2000000, output: 30000 }, }, - "qwen3-vl-30b-a3b-thinking": { - id: "qwen3-vl-30b-a3b-thinking", - name: "Qwen3-Vl 30b A3b Thinking", + "gemini-2.5-flash-nothink": { + id: "gemini-2.5-flash-nothink", + name: "gemini-2.5-flash-nothink", + family: "gemini-flash", attachment: true, reasoning: false, tool_call: true, - structured_output: false, temperature: true, - release_date: "2026-02-09", - last_updated: "2026-02-09", - modalities: { input: ["text", "image", "video"], output: ["text"] }, + knowledge: "2025-01", + release_date: "2025-06-24", + last_updated: "2025-06-24", + modalities: { input: ["text", "image"], output: ["text"] }, open_weights: false, - limit: { context: 128000, output: 32000 }, + cost: { input: 0.3, output: 2.5 }, + limit: { context: 1000000, output: 65536 }, }, - "doubao-seed-2.0-code": { - id: "doubao-seed-2.0-code", - name: "Doubao Seed 2.0 Code", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2026-02-14", - last_updated: "2026-02-14", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 128000 }, - }, - "qwen3-30b-a3b-thinking-2507": { - id: "qwen3-30b-a3b-thinking-2507", - name: "Qwen3 30b A3b Thinking 2507", + "kimi-k2-0905-preview": { + id: "kimi-k2-0905-preview", + name: "kimi-k2-0905-preview", attachment: false, - reasoning: true, + reasoning: false, tool_call: true, - structured_output: false, temperature: true, - release_date: "2026-02-04", - last_updated: "2026-02-04", + knowledge: "2025-06", + release_date: "2025-09-05", + last_updated: "2025-09-05", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - limit: { context: 126000, output: 32000 }, + cost: { input: 0.632, output: 2.53 }, + limit: { context: 262144, output: 262144 }, }, - "claude-4.5-opus": { - id: "claude-4.5-opus", - name: "Claude 4.5 Opus", + "claude-opus-4-5-20251101": { + id: "claude-opus-4-5-20251101", + name: "claude-opus-4-5-20251101", attachment: true, - reasoning: true, + reasoning: false, tool_call: true, - structured_output: false, temperature: true, + knowledge: "2025-03", release_date: "2025-11-25", last_updated: "2025-11-25", modalities: { input: ["text", "image"], output: ["text"] }, open_weights: false, - limit: { context: 200000, output: 200000 }, + cost: { input: 5, output: 25 }, + limit: { context: 200000, output: 64000 }, }, - "qwen3-235b-a22b-thinking-2507": { - id: "qwen3-235b-a22b-thinking-2507", - name: "Qwen3 235B A22B Thinking 2507", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-12", - last_updated: "2025-08-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 262144, output: 4096 }, - }, - "gemini-2.0-flash-lite": { - id: "gemini-2.0-flash-lite", - name: "Gemini 2.0 Flash Lite", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 1048576, output: 8192 }, - }, - "qwen3-next-80b-a3b-instruct": { - id: "qwen3-next-80b-a3b-instruct", - name: "Qwen3 Next 80B A3B Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-09-12", - last_updated: "2025-09-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 131072, output: 32768 }, - }, - "gemini-3.0-flash-preview": { - id: "gemini-3.0-flash-preview", - name: "Gemini 3.0 Flash Preview", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-12-18", - last_updated: "2025-12-18", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - limit: { context: 1000000, output: 64000 }, - }, - "qwen3-max": { - id: "qwen3-max", - name: "Qwen3 Max", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-09-24", - last_updated: "2025-09-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 262144, output: 65536 }, - }, - "qwen3-30b-a3b": { - id: "qwen3-30b-a3b", - name: "Qwen3 30B A3B", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 40000, output: 4096 }, - }, - "gpt-oss-20b": { - id: "gpt-oss-20b", - name: "gpt-oss-20b", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-06", - last_updated: "2025-08-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 4096 }, - }, - "kling-v2-6": { - id: "kling-v2-6", - name: "Kling-V2 6", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2026-01-13", - last_updated: "2026-01-13", - modalities: { input: ["text", "image", "video"], output: ["video"] }, - open_weights: false, - limit: { context: 99999999, output: 99999999 }, - }, - "gemini-2.5-pro": { - id: "gemini-2.5-pro", - name: "Gemini 2.5 Pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, - open_weights: false, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.0-flash": { - id: "gemini-2.0-flash", - name: "Gemini 2.0 Flash", + "gemini-2.5-flash-lite-preview-09-2025": { + id: "gemini-2.5-flash-lite-preview-09-2025", + name: "gemini-2.5-flash-lite-preview-09-2025", attachment: true, reasoning: false, tool_call: true, - structured_output: false, temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 1048576, output: 8192 }, - }, - "qwen-max-2025-01-25": { - id: "qwen-max-2025-01-25", - name: "Qwen2.5-Max-2025-01-25", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 4096 }, - }, - "xiaomi/mimo-v2-flash": { - id: "xiaomi/mimo-v2-flash", - name: "Xiaomi/Mimo-V2-Flash", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-12-26", - last_updated: "2025-12-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 256000 }, - }, - "stepfun/step-3.5-flash": { - id: "stepfun/step-3.5-flash", - name: "Stepfun/Step-3.5 Flash", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2026-02-02", - last_updated: "2026-02-02", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - limit: { context: 64000, output: 4096 }, - }, - "deepseek/deepseek-v3.2-exp-thinking": { - id: "deepseek/deepseek-v3.2-exp-thinking", - name: "DeepSeek/DeepSeek-V3.2-Exp-Thinking", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 32000 }, - }, - "deepseek/deepseek-v3.1-terminus": { - id: "deepseek/deepseek-v3.1-terminus", - name: "DeepSeek/DeepSeek-V3.1-Terminus", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-09-22", - last_updated: "2025-09-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 32000 }, - }, - "deepseek/deepseek-v3.2-251201": { - id: "deepseek/deepseek-v3.2-251201", - name: "Deepseek/DeepSeek-V3.2", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 32000 }, - }, - "deepseek/deepseek-math-v2": { - id: "deepseek/deepseek-math-v2", - name: "Deepseek/Deepseek-Math-V2", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-12-04", - last_updated: "2025-12-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 160000, output: 160000 }, - }, - "deepseek/deepseek-v3.2-exp": { - id: "deepseek/deepseek-v3.2-exp", - name: "DeepSeek/DeepSeek-V3.2-Exp", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 32000 }, - }, - "deepseek/deepseek-v3.1-terminus-thinking": { - id: "deepseek/deepseek-v3.1-terminus-thinking", - name: "DeepSeek/DeepSeek-V3.1-Terminus-Thinking", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-09-22", - last_updated: "2025-09-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 32000 }, - }, - "moonshotai/kimi-k2-0905": { - id: "moonshotai/kimi-k2-0905", - name: "Kimi K2 0905", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-09-08", - last_updated: "2025-09-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 100000 }, - }, - "moonshotai/kimi-k2.5": { - id: "moonshotai/kimi-k2.5", - name: "Moonshotai/Kimi-K2.5", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2026-01-28", - last_updated: "2026-01-28", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 256000 }, - }, - "moonshotai/kimi-k2-thinking": { - id: "moonshotai/kimi-k2-thinking", - name: "Kimi K2 Thinking", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-11-07", - last_updated: "2025-11-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 100000 }, - }, - "z-ai/autoglm-phone-9b": { - id: "z-ai/autoglm-phone-9b", - name: "Z-Ai/Autoglm Phone 9b", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - limit: { context: 12800, output: 4096 }, - }, - "z-ai/glm-5": { - id: "z-ai/glm-5", - name: "Z-Ai/GLM 5", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 200000, output: 128000 }, - }, - "z-ai/glm-4.6": { - id: "z-ai/glm-4.6", - name: "Z-AI/GLM 4.6", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-10-11", - last_updated: "2025-10-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 200000, output: 200000 }, - }, - "z-ai/glm-4.7": { - id: "z-ai/glm-4.7", - name: "Z-Ai/GLM 4.7", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 200000, output: 200000 }, - }, - "stepfun-ai/gelab-zero-4b-preview": { - id: "stepfun-ai/gelab-zero-4b-preview", - name: "Stepfun-Ai/Gelab Zero 4b Preview", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - limit: { context: 8192, output: 4096 }, - }, - "meituan/longcat-flash-lite": { - id: "meituan/longcat-flash-lite", - name: "Meituan/Longcat-Flash-Lite", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2026-02-06", - last_updated: "2026-02-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 320000 }, - }, - "meituan/longcat-flash-chat": { - id: "meituan/longcat-flash-chat", - name: "Meituan/Longcat-Flash-Chat", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-11-05", - last_updated: "2025-11-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 131072, output: 131072 }, - }, - "x-ai/grok-4-fast-reasoning": { - id: "x-ai/grok-4-fast-reasoning", - name: "X-Ai/Grok-4-Fast-Reasoning", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-12-18", - last_updated: "2025-12-18", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 2000000, output: 2000000 }, - }, - "x-ai/grok-code-fast-1": { - id: "x-ai/grok-code-fast-1", - name: "x-AI/Grok-Code-Fast 1", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-09-02", - last_updated: "2025-09-02", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 10000 }, - }, - "x-ai/grok-4.1-fast-reasoning": { - id: "x-ai/grok-4.1-fast-reasoning", - name: "X-Ai/Grok 4.1 Fast Reasoning", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-12-19", - last_updated: "2025-12-19", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 20000000, output: 2000000 }, - }, - "x-ai/grok-4-fast": { - id: "x-ai/grok-4-fast", - name: "x-AI/Grok-4-Fast", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-09-20", - last_updated: "2025-09-20", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 2000000, output: 2000000 }, - }, - "x-ai/grok-4.1-fast-non-reasoning": { - id: "x-ai/grok-4.1-fast-non-reasoning", - name: "X-Ai/Grok 4.1 Fast Non Reasoning", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-12-19", - last_updated: "2025-12-19", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 2000000, output: 2000000 }, - }, - "x-ai/grok-4.1-fast": { - id: "x-ai/grok-4.1-fast", - name: "x-AI/Grok-4.1-Fast", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-11-20", - last_updated: "2025-11-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 2000000, output: 2000000 }, - }, - "x-ai/grok-4-fast-non-reasoning": { - id: "x-ai/grok-4-fast-non-reasoning", - name: "X-Ai/Grok-4-Fast-Non-Reasoning", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-12-18", - last_updated: "2025-12-18", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 2000000, output: 2000000 }, - }, - "openai/gpt-5.2": { - id: "openai/gpt-5.2", - name: "OpenAI/GPT-5.2", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5": { - id: "openai/gpt-5", - name: "OpenAI/GPT-5", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-09-19", - last_updated: "2025-09-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 400000, output: 128000 }, - }, - "minimax/minimax-m2.5-highspeed": { - id: "minimax/minimax-m2.5-highspeed", - name: "Minimax/Minimax-M2.5 Highspeed", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2026-02-14", - last_updated: "2026-02-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 204800, output: 128000 }, - }, - "minimax/minimax-m2.1": { - id: "minimax/minimax-m2.1", - name: "Minimax/Minimax-M2.1", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 204800, output: 128000 }, - }, - "minimax/minimax-m2": { - id: "minimax/minimax-m2", - name: "Minimax/Minimax-M2", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-10-28", - last_updated: "2025-10-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 200000, output: 128000 }, - }, - "minimax/minimax-m2.5": { - id: "minimax/minimax-m2.5", - name: "Minimax/Minimax-M2.5", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 204800, output: 128000 }, - }, - }, - }, - "ollama-cloud": { - id: "ollama-cloud", - env: ["OLLAMA_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://ollama.com/v1", - name: "Ollama Cloud", - doc: "https://docs.ollama.com/cloud", - models: { - "glm-5": { - id: "glm-5", - name: "glm-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 202752, output: 131072 }, - }, - "qwen3-coder:480b": { - id: "qwen3-coder:480b", - name: "qwen3-coder:480b", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - release_date: "2025-07-22", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 262144, output: 65536 }, - }, - "nemotron-3-nano:30b": { - id: "nemotron-3-nano:30b", - name: "nemotron-3-nano:30b", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: true, - release_date: "2025-12-15", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 1048576, output: 131072 }, - }, - "ministral-3:8b": { - id: "ministral-3:8b", - name: "ministral-3:8b", - family: "ministral", - attachment: true, - reasoning: false, - tool_call: true, - release_date: "2024-12-01", - last_updated: "2026-01-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - limit: { context: 262144, output: 128000 }, - }, - "qwen3-coder-next": { - id: "qwen3-coder-next", - name: "qwen3-coder-next", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - release_date: "2026-02-02", - last_updated: "2026-02-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 262144, output: 65536 }, - }, - "gpt-oss:120b": { - id: "gpt-oss:120b", - name: "gpt-oss:120b", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - release_date: "2025-08-05", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 131072, output: 32768 }, - }, - "devstral-2:123b": { - id: "devstral-2:123b", - name: "devstral-2:123b", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: true, - release_date: "2025-12-09", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 262144, output: 262144 }, - }, - "glm-4.6": { - id: "glm-4.6", - name: "glm-4.6", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - release_date: "2025-09-29", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 202752, output: 131072 }, - }, - "qwen3-vl:235b-instruct": { - id: "qwen3-vl:235b-instruct", - name: "qwen3-vl:235b-instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - release_date: "2025-09-22", - last_updated: "2026-01-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - limit: { context: 262144, output: 131072 }, - }, - "gemini-3-flash-preview": { - id: "gemini-3-flash-preview", - name: "gemini-3-flash-preview", - family: "gemini-flash", - attachment: false, - reasoning: true, - tool_call: true, knowledge: "2025-01", - release_date: "2025-12-17", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 1048576, output: 65536 }, - }, - "minimax-m2.1": { - id: "minimax-m2.1", - name: "minimax-m2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - release_date: "2025-12-23", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 204800, output: 131072 }, - }, - "ministral-3:14b": { - id: "ministral-3:14b", - name: "ministral-3:14b", - family: "ministral", - attachment: true, - reasoning: false, - tool_call: true, - release_date: "2024-12-01", - last_updated: "2026-01-19", + release_date: "2025-09-26", + last_updated: "2025-09-26", modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - limit: { context: 262144, output: 128000 }, + open_weights: false, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 1000000, output: 65536 }, }, - "qwen3-next:80b": { - id: "qwen3-next:80b", - name: "qwen3-next:80b", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - release_date: "2025-09-15", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 262144, output: 32768 }, - }, - "kimi-k2:1t": { - id: "kimi-k2:1t", - name: "kimi-k2:1t", - family: "kimi", + "qwen3-235b-a22b-instruct-2507": { + id: "qwen3-235b-a22b-instruct-2507", + name: "qwen3-235b-a22b-instruct-2507", attachment: false, reasoning: false, tool_call: true, - knowledge: "2024-10", - release_date: "2025-07-11", - last_updated: "2026-01-19", + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-30", + last_updated: "2025-07-30", modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 262144, output: 262144 }, + open_weights: false, + cost: { input: 0.29, output: 1.143 }, + limit: { context: 128000, output: 65536 }, }, - "gemma3:12b": { - id: "gemma3:12b", - name: "gemma3:12b", - family: "gemma", + "mistral-large-2512": { + id: "mistral-large-2512", + name: "mistral-large-2512", attachment: true, reasoning: false, - tool_call: false, - release_date: "2024-12-01", - last_updated: "2026-01-19", + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-12-16", + last_updated: "2025-12-16", modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - limit: { context: 131072, output: 131072 }, - }, - "minimax-m2.7": { - id: "minimax-m2.7", - name: "minimax-m2.7", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 204800, output: 131072 }, - }, - "kimi-k2.5": { - id: "kimi-k2.5", - name: "kimi-k2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - limit: { context: 262144, output: 262144 }, - }, - "gpt-oss:20b": { - id: "gpt-oss:20b", - name: "gpt-oss:20b", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - release_date: "2025-08-05", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 131072, output: 32768 }, - }, - "deepseek-v3.2": { - id: "deepseek-v3.2", - name: "deepseek-v3.2", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - release_date: "2025-06-15", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 163840, output: 65536 }, + open_weights: false, + cost: { input: 1.1, output: 3.3 }, + limit: { context: 128000, output: 262144 }, }, "glm-4.7": { id: "glm-4.7", name: "glm-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - release_date: "2025-12-22", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 202752, output: 131072 }, - }, - "kimi-k2-thinking": { - id: "kimi-k2-thinking", - name: "kimi-k2-thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - knowledge: "2024-08", - release_date: "2025-11-06", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 262144, output: 262144 }, - }, - "ministral-3:3b": { - id: "ministral-3:3b", - name: "ministral-3:3b", - family: "ministral", - attachment: true, - reasoning: false, - tool_call: true, - release_date: "2024-10-22", - last_updated: "2026-01-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - limit: { context: 262144, output: 128000 }, - }, - "qwen3.5:397b": { - id: "qwen3.5:397b", - name: "qwen3.5:397b", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - release_date: "2026-02-15", - last_updated: "2026-02-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - limit: { context: 262144, output: 81920 }, - }, - "gemma3:27b": { - id: "gemma3:27b", - name: "gemma3:27b", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: false, - release_date: "2025-07-27", - last_updated: "2026-01-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - limit: { context: 131072, output: 131072 }, - }, - "minimax-m2": { - id: "minimax-m2", - name: "minimax-m2", - family: "minimax", - attachment: false, - reasoning: false, - tool_call: true, - release_date: "2025-10-23", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 204800, output: 128000 }, - }, - "minimax-m2.5": { - id: "minimax-m2.5", - name: "minimax-m2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - knowledge: "2025-01", - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 204800, output: 131072 }, - }, - "devstral-small-2:24b": { - id: "devstral-small-2:24b", - name: "devstral-small-2:24b", - family: "devstral", - attachment: true, - reasoning: false, - tool_call: true, - release_date: "2025-12-09", - last_updated: "2026-01-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - limit: { context: 262144, output: 262144 }, - }, - "nemotron-3-super": { - id: "nemotron-3-super", - name: "nemotron-3-super", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: true, - release_date: "2026-03-11", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 262144, output: 65536 }, - }, - "cogito-2.1:671b": { - id: "cogito-2.1:671b", - name: "cogito-2.1:671b", - family: "cogito", - attachment: false, - reasoning: true, - tool_call: true, - release_date: "2025-11-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 163840, output: 32000 }, - }, - "gemma3:4b": { - id: "gemma3:4b", - name: "gemma3:4b", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: false, - release_date: "2024-12-01", - last_updated: "2026-01-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - limit: { context: 131072, output: 131072 }, - }, - "deepseek-v3.1:671b": { - id: "deepseek-v3.1:671b", - name: "deepseek-v3.1:671b", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - release_date: "2025-08-21", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 163840, output: 163840 }, - }, - "mistral-large-3:675b": { - id: "mistral-large-3:675b", - name: "mistral-large-3:675b", - family: "mistral-large", - attachment: true, - reasoning: false, - tool_call: true, - release_date: "2025-12-02", - last_updated: "2026-01-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - limit: { context: 262144, output: 262144 }, - }, - "rnj-1:8b": { - id: "rnj-1:8b", - name: "rnj-1:8b", - family: "rnj", - attachment: false, - reasoning: false, - tool_call: true, - release_date: "2025-12-06", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 32768, output: 4096 }, - }, - "qwen3-vl:235b": { - id: "qwen3-vl:235b", - name: "qwen3-vl:235b", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - release_date: "2025-09-22", - last_updated: "2026-01-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - limit: { context: 262144, output: 32768 }, - }, - }, - }, - scaleway: { - id: "scaleway", - env: ["SCALEWAY_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.scaleway.ai/v1", - name: "Scaleway", - doc: "https://www.scaleway.com/en/docs/generative-apis/", - models: { - "voxtral-small-24b-2507": { - id: "voxtral-small-24b-2507", - name: "Voxtral Small 24B 2507", - family: "voxtral", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-07-01", - last_updated: "2026-03-17", - modalities: { input: ["text", "audio"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.35 }, - limit: { context: 32000, output: 16384 }, - }, - "qwen3-235b-a22b-instruct-2507": { - id: "qwen3-235b-a22b-instruct-2507", - name: "Qwen3 235B A22B Instruct 2507", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-07-01", - last_updated: "2026-03-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.75, output: 2.25 }, - limit: { context: 260000, output: 16384 }, - }, - "llama-3.3-70b-instruct": { - id: "llama-3.3-70b-instruct", - name: "Llama-3.3-70B-Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-12-06", - last_updated: "2026-03-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.9, output: 0.9 }, - limit: { context: 100000, output: 16384 }, - }, - "mistral-small-3.2-24b-instruct-2506": { - id: "mistral-small-3.2-24b-instruct-2506", - name: "Mistral Small 3.2 24B Instruct (2506)", - family: "mistral-small", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-06-20", - last_updated: "2026-03-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.35 }, - limit: { context: 128000, output: 32768 }, - }, - "qwen3-embedding-8b": { - id: "qwen3-embedding-8b", - name: "Qwen3 Embedding 8B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-25-11", - last_updated: "2026-03-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0 }, - limit: { context: 32768, output: 4096 }, - }, - "bge-multilingual-gemma2": { - id: "bge-multilingual-gemma2", - name: "BGE Multilingual Gemma2", - family: "gemma", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-07-26", - last_updated: "2025-06-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0 }, - limit: { context: 8191, output: 3072 }, - }, - "qwen3.5-397b-a17b": { - id: "qwen3.5-397b-a17b", - name: "Qwen3.5 397B A17B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-03-17", - last_updated: "2026-03-17", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3.6 }, - limit: { context: 256000, output: 16384 }, - }, - "gpt-oss-120b": { - id: "gpt-oss-120b", - name: "GPT-OSS 120B", - family: "gpt-oss", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-01-01", - last_updated: "2026-03-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 128000, output: 32768 }, - }, - "deepseek-r1-distill-llama-70b": { - id: "deepseek-r1-distill-llama-70b", - name: "DeepSeek R1 Distill Llama 70B", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-01-20", - last_updated: "2026-03-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.9, output: 0.9 }, - limit: { context: 32000, output: 8196 }, - }, - "qwen3-coder-30b-a3b-instruct": { - id: "qwen3-coder-30b-a3b-instruct", - name: "Qwen3-Coder 30B-A3B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2026-03-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 128000, output: 32768 }, - }, - "whisper-large-v3": { - id: "whisper-large-v3", - name: "Whisper Large v3", - family: "whisper", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2023-09", - release_date: "2023-09-01", - last_updated: "2026-03-17", - modalities: { input: ["audio"], output: ["text"] }, - open_weights: true, - cost: { input: 0.003, output: 0 }, - limit: { context: 0, output: 8192 }, - }, - "llama-3.1-8b-instruct": { - id: "llama-3.1-8b-instruct", - name: "Llama 3.1 8B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2025-01-01", - last_updated: "2026-03-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 128000, output: 16384 }, - }, - "devstral-2-123b-instruct-2512": { - id: "devstral-2-123b-instruct-2512", - name: "Devstral 2 123B Instruct (2512)", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2026-01-07", - last_updated: "2026-03-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 2 }, - limit: { context: 256000, output: 16384 }, - }, - "pixtral-12b-2409": { - id: "pixtral-12b-2409", - name: "Pixtral 12B 2409", - family: "pixtral", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-09-25", - last_updated: "2026-03-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 128000, output: 4096 }, - }, - "mistral-nemo-instruct-2407": { - id: "mistral-nemo-instruct-2407", - name: "Mistral Nemo Instruct 2407", - family: "mistral-nemo", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-07-25", - last_updated: "2026-03-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 128000, output: 8192 }, - }, - "gemma-3-27b-it": { - id: "gemma-3-27b-it", - name: "Gemma-3-27B-IT", - family: "gemma", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2024-12-01", - last_updated: "2026-03-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 0.5 }, - limit: { context: 40000, output: 8192 }, - }, - }, - }, - dinference: { - id: "dinference", - env: ["DINFERENCE_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.dinference.com/v1", - name: "DInference", - doc: "https://dinference.com", - models: { - "glm-5": { - id: "glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02", - last_updated: "2026-02", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.75, output: 2.4 }, - limit: { context: 200000, output: 128000 }, - }, - "gpt-oss-120b": { - id: "gpt-oss-120b", - name: "GPT OSS 120B", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-08", - last_updated: "2025-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.0675, output: 0.27 }, - limit: { context: 131072, output: 32768 }, - }, - "glm-4.7": { - id: "glm-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12", - last_updated: "2025-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.45, output: 1.65 }, - limit: { context: 200000, output: 128000 }, - }, - }, - }, - "cloudflare-ai-gateway": { - id: "cloudflare-ai-gateway", - env: ["CLOUDFLARE_API_TOKEN", "CLOUDFLARE_ACCOUNT_ID", "CLOUDFLARE_GATEWAY_ID"], - npm: "ai-gateway-provider", - name: "Cloudflare AI Gateway", - doc: "https://developers.cloudflare.com/ai-gateway/", - models: { - "workers-ai/@cf/zai-org/glm-4.7-flash": { - id: "workers-ai/@cf/zai-org/glm-4.7-flash", - name: "GLM-4.7-Flash", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.06, output: 0.4 }, - limit: { context: 131072, output: 131072 }, - }, - "workers-ai/@cf/nvidia/nemotron-3-120b-a12b": { - id: "workers-ai/@cf/nvidia/nemotron-3-120b-a12b", - name: "Nemotron 3 Super 120B", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-03-11", - last_updated: "2026-03-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 1.5 }, - limit: { context: 256000, output: 256000 }, - }, - "workers-ai/@cf/ibm-granite/granite-4.0-h-micro": { - id: "workers-ai/@cf/ibm-granite/granite-4.0-h-micro", - name: "IBM Granite 4.0 H Micro", - family: "granite", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.017, output: 0.11 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/baai/bge-small-en-v1.5": { - id: "workers-ai/@cf/baai/bge-small-en-v1.5", - name: "BGE Small EN v1.5", - family: "bge", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.02, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/baai/bge-large-en-v1.5": { - id: "workers-ai/@cf/baai/bge-large-en-v1.5", - name: "BGE Large EN v1.5", - family: "bge", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/baai/bge-reranker-base": { - id: "workers-ai/@cf/baai/bge-reranker-base", - name: "BGE Reranker Base", - family: "bge", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-09", - last_updated: "2025-04-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.0031, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/baai/bge-m3": { - id: "workers-ai/@cf/baai/bge-m3", - name: "BGE M3", - family: "bge", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.012, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/baai/bge-base-en-v1.5": { - id: "workers-ai/@cf/baai/bge-base-en-v1.5", - name: "BGE Base EN v1.5", - family: "bge", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.067, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/pfnet/plamo-embedding-1b": { - id: "workers-ai/@cf/pfnet/plamo-embedding-1b", - name: "PLaMo Embedding 1B", - family: "plamo", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.019, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/deepseek-ai/deepseek-r1-distill-qwen-32b": { - id: "workers-ai/@cf/deepseek-ai/deepseek-r1-distill-qwen-32b", - name: "DeepSeek R1 Distill Qwen 32B", - family: "deepseek-thinking", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 4.88 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/facebook/bart-large-cnn": { - id: "workers-ai/@cf/facebook/bart-large-cnn", - name: "BART Large CNN", - family: "bart", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-09", - last_updated: "2025-04-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/mistral/mistral-7b-instruct-v0.1": { - id: "workers-ai/@cf/mistral/mistral-7b-instruct-v0.1", - name: "Mistral 7B Instruct v0.1", - family: "mistral", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.11, output: 0.19 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/myshell-ai/melotts": { - id: "workers-ai/@cf/myshell-ai/melotts", - name: "MyShell MeloTTS", - family: "melotts", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/pipecat-ai/smart-turn-v2": { - id: "workers-ai/@cf/pipecat-ai/smart-turn-v2", - name: "Pipecat Smart Turn v2", - family: "smart-turn", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/moonshotai/kimi-k2.5": { - id: "workers-ai/@cf/moonshotai/kimi-k2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3, cache_read: 0.1 }, - limit: { context: 256000, output: 256000 }, - }, - "workers-ai/@cf/google/gemma-3-12b-it": { - id: "workers-ai/@cf/google/gemma-3-12b-it", - name: "Gemma 3 12B IT", - family: "gemma", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-11", - last_updated: "2025-04-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.35, output: 0.56 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/qwen/qwq-32b": { - id: "workers-ai/@cf/qwen/qwq-32b", - name: "QwQ 32B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-11", - last_updated: "2025-04-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.66, output: 1 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/qwen/qwen3-30b-a3b-fp8": { - id: "workers-ai/@cf/qwen/qwen3-30b-a3b-fp8", - name: "Qwen3 30B A3B FP8", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.051, output: 0.34 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/qwen/qwen2.5-coder-32b-instruct": { - id: "workers-ai/@cf/qwen/qwen2.5-coder-32b-instruct", - name: "Qwen 2.5 Coder 32B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-11", - last_updated: "2025-04-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.66, output: 1 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/qwen/qwen3-embedding-0.6b": { - id: "workers-ai/@cf/qwen/qwen3-embedding-0.6b", - name: "Qwen3 Embedding 0.6B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.012, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/meta/llama-3.1-8b-instruct-fp8": { - id: "workers-ai/@cf/meta/llama-3.1-8b-instruct-fp8", - name: "Llama 3.1 8B Instruct FP8", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.29 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/meta/llama-3-8b-instruct-awq": { - id: "workers-ai/@cf/meta/llama-3-8b-instruct-awq", - name: "Llama 3 8B Instruct AWQ", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.12, output: 0.27 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/meta/llama-3.1-8b-instruct-awq": { - id: "workers-ai/@cf/meta/llama-3.1-8b-instruct-awq", - name: "Llama 3.1 8B Instruct AWQ", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.12, output: 0.27 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/meta/llama-4-scout-17b-16e-instruct": { - id: "workers-ai/@cf/meta/llama-4-scout-17b-16e-instruct", - name: "Llama 4 Scout 17B 16E Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 0.85 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/meta/llama-3.2-11b-vision-instruct": { - id: "workers-ai/@cf/meta/llama-3.2-11b-vision-instruct", - name: "Llama 3.2 11B Vision Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.049, output: 0.68 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/meta/llama-3.2-3b-instruct": { - id: "workers-ai/@cf/meta/llama-3.2-3b-instruct", - name: "Llama 3.2 3B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.051, output: 0.34 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/meta/llama-guard-3-8b": { - id: "workers-ai/@cf/meta/llama-guard-3-8b", - name: "Llama Guard 3 8B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.48, output: 0.03 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/meta/llama-3.2-1b-instruct": { - id: "workers-ai/@cf/meta/llama-3.2-1b-instruct", - name: "Llama 3.2 1B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.027, output: 0.2 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/meta/llama-3.3-70b-instruct-fp8-fast": { - id: "workers-ai/@cf/meta/llama-3.3-70b-instruct-fp8-fast", - name: "Llama 3.3 70B Instruct FP8 Fast", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.29, output: 2.25 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/meta/llama-3.1-8b-instruct": { - id: "workers-ai/@cf/meta/llama-3.1-8b-instruct", - name: "Llama 3.1 8B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.28, output: 0.8299999999999998 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/meta/m2m100-1.2b": { - id: "workers-ai/@cf/meta/m2m100-1.2b", - name: "M2M100 1.2B", - family: "m2m", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.34, output: 0.34 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/meta/llama-2-7b-chat-fp16": { - id: "workers-ai/@cf/meta/llama-2-7b-chat-fp16", - name: "Llama 2 7B Chat FP16", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.56, output: 6.67 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/meta/llama-3-8b-instruct": { - id: "workers-ai/@cf/meta/llama-3-8b-instruct", - name: "Llama 3 8B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.28, output: 0.83 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/mistralai/mistral-small-3.1-24b-instruct": { - id: "workers-ai/@cf/mistralai/mistral-small-3.1-24b-instruct", - name: "Mistral Small 3.1 24B Instruct", - family: "mistral-small", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-11", - last_updated: "2025-04-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.35, output: 0.56 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/deepgram/aura-2-es": { - id: "workers-ai/@cf/deepgram/aura-2-es", - name: "Deepgram Aura 2 (ES)", - family: "aura", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/deepgram/nova-3": { - id: "workers-ai/@cf/deepgram/nova-3", - name: "Deepgram Nova 3", - family: "nova", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/deepgram/aura-2-en": { - id: "workers-ai/@cf/deepgram/aura-2-en", - name: "Deepgram Aura 2 (EN)", - family: "aura", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/openai/gpt-oss-120b": { - id: "workers-ai/@cf/openai/gpt-oss-120b", - name: "GPT OSS 120B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.35, output: 0.75 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/openai/gpt-oss-20b": { - id: "workers-ai/@cf/openai/gpt-oss-20b", - name: "GPT OSS 20B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.3 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/ai4bharat/indictrans2-en-indic-1B": { - id: "workers-ai/@cf/ai4bharat/indictrans2-en-indic-1B", - name: "IndicTrans2 EN-Indic 1B", - family: "indictrans", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.34, output: 0.34 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/huggingface/distilbert-sst-2-int8": { - id: "workers-ai/@cf/huggingface/distilbert-sst-2-int8", - name: "DistilBERT SST-2 INT8", - family: "distilbert", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.026, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "workers-ai/@cf/aisingapore/gemma-sea-lion-v4-27b-it": { - id: "workers-ai/@cf/aisingapore/gemma-sea-lion-v4-27b-it", - name: "Gemma SEA-LION v4 27B IT", - family: "gemma", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.35, output: 0.56 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-5.3-codex": { - id: "openai/gpt-5.3-codex", - name: "GPT-5.3 Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, input: 272000, output: 128000 }, - provider: { npm: "ai-gateway-provider" }, - }, - "openai/gpt-4o-mini": { - id: "openai/gpt-4o-mini", - name: "GPT-4o mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-09", - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6, cache_read: 0.08 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-5.2-codex": { - id: "openai/gpt-5.2-codex", - name: "GPT-5.2 Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, input: 272000, output: 128000 }, - provider: { npm: "ai-gateway-provider" }, - }, - "openai/o1": { - id: "openai/o1", - name: "o1", - family: "o", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2023-09", - release_date: "2024-12-05", - last_updated: "2024-12-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 60, cache_read: 7.5 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-5.1": { - id: "openai/gpt-5.1", - name: "GPT-5.1", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.13 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/o3": { - id: "openai/o3", - name: "o3", - family: "o", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05", - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-3.5-turbo": { - id: "openai/gpt-3.5-turbo", - name: "GPT-3.5-turbo", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - knowledge: "2021-09-01", - release_date: "2023-03-01", - last_updated: "2023-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 1.5, cache_read: 1.25 }, - limit: { context: 16385, output: 4096 }, - }, - "openai/gpt-5.2": { - id: "openai/gpt-5.2", - name: "GPT-5.2", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/o3-pro": { - id: "openai/o3-pro", - name: "o3-pro", - family: "o-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05", - release_date: "2025-06-10", - last_updated: "2025-06-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 20, output: 80 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-4-turbo": { - id: "openai/gpt-4-turbo", - name: "GPT-4 Turbo", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - knowledge: "2023-12", - release_date: "2023-11-06", - last_updated: "2024-04-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 10, output: 30 }, - limit: { context: 128000, output: 4096 }, - }, - "openai/o4-mini": { - id: "openai/o4-mini", - name: "o4-mini", - family: "o-mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05", - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.28 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-5.4": { - id: "openai/gpt-5.4", - name: "GPT-5.4", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 15, cache_read: 0.25 }, - limit: { context: 1050000, input: 922000, output: 128000 }, - provider: { npm: "ai-gateway-provider" }, - }, - "openai/gpt-5.1-codex": { - id: "openai/gpt-5.1-codex", - name: "GPT-5.1 Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/o3-mini": { - id: "openai/o3-mini", - name: "o3-mini", - family: "o-mini", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05", - release_date: "2024-12-20", - last_updated: "2025-01-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-4": { - id: "openai/gpt-4", - name: "GPT-4", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - knowledge: "2023-11", - release_date: "2023-11-06", - last_updated: "2024-04-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 30, output: 60 }, - limit: { context: 8192, output: 8192 }, - }, - "openai/gpt-4o": { - id: "openai/gpt-4o", - name: "GPT-4o", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-09", - release_date: "2024-05-13", - last_updated: "2024-08-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10, cache_read: 1.25 }, - limit: { context: 128000, output: 16384 }, - }, - "anthropic/claude-3.5-sonnet": { - id: "anthropic/claude-3.5-sonnet", - name: "Claude Sonnet 3.5 v2", - family: "claude-sonnet", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04-30", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 8192 }, - }, - "anthropic/claude-opus-4-1": { - id: "anthropic/claude-opus-4-1", - name: "Claude Opus 4.1 (latest)", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "anthropic/claude-3-sonnet": { - id: "anthropic/claude-3-sonnet", - name: "Claude Sonnet 3", - family: "claude-sonnet", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-08-31", - release_date: "2024-03-04", - last_updated: "2024-03-04", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 0.3 }, - limit: { context: 200000, output: 4096 }, - }, - "anthropic/claude-3-5-haiku": { - id: "anthropic/claude-3-5-haiku", - name: "Claude Haiku 3.5 (latest)", - family: "claude-haiku", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07-31", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, - limit: { context: 200000, output: 8192 }, - }, - "anthropic/claude-opus-4-6": { - id: "anthropic/claude-opus-4-6", - name: "Claude Opus 4.6 (latest)", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 5, - output: 25, - cache_read: 0.5, - cache_write: 6.25, - context_over_200k: { input: 10, output: 37.5, cache_read: 1, cache_write: 12.5 }, - }, - limit: { context: 1000000, output: 128000 }, - }, - "anthropic/claude-3-haiku": { - id: "anthropic/claude-3-haiku", - name: "Claude Haiku 3", - family: "claude-haiku", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-08-31", - release_date: "2024-03-13", - last_updated: "2024-03-13", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1.25, cache_read: 0.03, cache_write: 0.3 }, - limit: { context: 200000, output: 4096 }, - }, - "anthropic/claude-sonnet-4-6": { - id: "anthropic/claude-sonnet-4-6", - name: "Claude Sonnet 4.6", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2026-02-17", - last_updated: "2026-02-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 3, - output: 15, - cache_read: 0.3, - cache_write: 3.75, - context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, - }, - limit: { context: 1000000, output: 64000 }, - provider: { npm: "ai-gateway-provider" }, - }, - "anthropic/claude-3.5-haiku": { - id: "anthropic/claude-3.5-haiku", - name: "Claude Haiku 3.5 (latest)", - family: "claude-haiku", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07-31", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, - limit: { context: 200000, output: 8192 }, - }, - "anthropic/claude-opus-4": { - id: "anthropic/claude-opus-4", - name: "Claude Opus 4 (latest)", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "anthropic/claude-haiku-4-5": { - id: "anthropic/claude-haiku-4-5", - name: "Claude Haiku 4.5 (latest)", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-02-28", - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-opus-4-5": { - id: "anthropic/claude-opus-4-5", - name: "Claude Opus 4.5 (latest)", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-24", - last_updated: "2025-11-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-3-opus": { - id: "anthropic/claude-3-opus", - name: "Claude Opus 3", - family: "claude-opus", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-08-31", - release_date: "2024-02-29", - last_updated: "2024-02-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 4096 }, - }, - "anthropic/claude-sonnet-4": { - id: "anthropic/claude-sonnet-4", - name: "Claude Sonnet 4 (latest)", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-sonnet-4-5": { - id: "anthropic/claude-sonnet-4-5", - name: "Claude Sonnet 4.5 (latest)", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - }, - }, - "kuae-cloud-coding-plan": { - id: "kuae-cloud-coding-plan", - env: ["KUAE_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://coding-plan-endpoint.kuaecloud.net/v1", - name: "KUAE Cloud Coding Plan", - doc: "https://docs.mthreads.com/kuaecloud/kuaecloud-doc-online/coding_plan/", - models: { - "GLM-4.7": { - id: "GLM-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - }, - }, - upstage: { - id: "upstage", - env: ["UPSTAGE_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.upstage.ai/v1/solar", - name: "Upstage", - doc: "https://developers.upstage.ai/docs/apis/chat", - models: { - "solar-pro2": { - id: "solar-pro2", - name: "solar-pro2", - family: "solar-pro", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03", - release_date: "2025-05-20", - last_updated: "2025-05-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 0.25 }, - limit: { context: 65536, output: 8192 }, - }, - "solar-mini": { - id: "solar-mini", - name: "solar-mini", - family: "solar-mini", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-09", - release_date: "2024-06-12", - last_updated: "2025-04-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.15 }, - limit: { context: 32768, output: 4096 }, - }, - "solar-pro3": { - id: "solar-pro3", - name: "solar-pro3", - family: "solar-pro", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03", - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 0.25 }, - limit: { context: 131072, output: 8192 }, - }, - }, - }, - inception: { - id: "inception", - env: ["INCEPTION_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.inceptionlabs.ai/v1/", - name: "Inception", - doc: "https://platform.inceptionlabs.ai/docs", - models: { - "mercury-2": { - id: "mercury-2", - name: "Mercury 2", - family: "mercury", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01-01", - release_date: "2026-02-24", - last_updated: "2026-02-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 0.75, cache_read: 0.025 }, - limit: { context: 128000, output: 50000 }, - }, - mercury: { - id: "mercury", - name: "Mercury", - family: "mercury", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2025-06-26", - last_updated: "2025-07-31", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1, cache_read: 0.25, cache_write: 1 }, - limit: { context: 128000, output: 16384 }, - }, - "mercury-edit": { - id: "mercury-edit", - name: "Mercury Edit", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2026-02-24", - last_updated: "2026-02-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 0.75, cache_read: 0.025 }, - limit: { context: 128000, output: 8192 }, - }, - "mercury-coder": { - id: "mercury-coder", - name: "Mercury Coder", - family: "mercury", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2025-02-26", - last_updated: "2025-07-31", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1, cache_read: 0.25, cache_write: 1 }, - limit: { context: 128000, output: 16384 }, - }, - }, - }, - submodel: { - id: "submodel", - env: ["SUBMODEL_INSTAGEN_ACCESS_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://llm.submodel.ai/v1", - name: "submodel", - doc: "https://submodel.gitbook.io", - models: { - "zai-org/GLM-4.5-Air": { - id: "zai-org/GLM-4.5-Air", - name: "GLM 4.5 Air", - family: "glm-air", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.5 }, - limit: { context: 131072, output: 131072 }, - }, - "zai-org/GLM-4.5-FP8": { - id: "zai-org/GLM-4.5-FP8", - name: "GLM 4.5 FP8", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 131072, output: 131072 }, - }, - "deepseek-ai/DeepSeek-R1-0528": { - id: "deepseek-ai/DeepSeek-R1-0528", - name: "DeepSeek R1 0528", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-23", - last_updated: "2025-08-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 2.15 }, - limit: { context: 75000, output: 163840 }, - }, - "deepseek-ai/DeepSeek-V3.1": { - id: "deepseek-ai/DeepSeek-V3.1", - name: "DeepSeek V3.1", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-23", - last_updated: "2025-08-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 75000, output: 163840 }, - }, - "deepseek-ai/DeepSeek-V3-0324": { - id: "deepseek-ai/DeepSeek-V3-0324", - name: "DeepSeek V3 0324", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-08-23", - last_updated: "2025-08-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 75000, output: 163840 }, - }, - "Qwen/Qwen3-235B-A22B-Thinking-2507": { - id: "Qwen/Qwen3-235B-A22B-Thinking-2507", - name: "Qwen3 235B A22B Thinking 2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-23", - last_updated: "2025-08-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.6 }, - limit: { context: 262144, output: 131072 }, - }, - "Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8": { - id: "Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8", - name: "Qwen3 Coder 480B A35B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-08-23", - last_updated: "2025-08-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 262144, output: 262144 }, - }, - "Qwen/Qwen3-235B-A22B-Instruct-2507": { - id: "Qwen/Qwen3-235B-A22B-Instruct-2507", - name: "Qwen3 235B A22B Instruct 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-08-23", - last_updated: "2025-08-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.3 }, - limit: { context: 262144, output: 131072 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "GPT OSS 120B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-23", - last_updated: "2025-08-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.5 }, - limit: { context: 131072, output: 32768 }, - }, - }, - }, - "minimax-cn-coding-plan": { - id: "minimax-cn-coding-plan", - env: ["MINIMAX_API_KEY"], - npm: "@ai-sdk/anthropic", - api: "https://api.minimaxi.com/anthropic/v1", - name: "MiniMax Coding Plan (minimaxi.com)", - doc: "https://platform.minimaxi.com/docs/coding-plan/intro", - models: { - "MiniMax-M2.5": { - id: "MiniMax-M2.5", - name: "MiniMax-M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMax-M2.7-highspeed": { - id: "MiniMax-M2.7-highspeed", - name: "MiniMax-M2.7-highspeed", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMax-M2": { - id: "MiniMax-M2", - name: "MiniMax-M2", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-10-27", - last_updated: "2025-10-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 196608, output: 128000 }, - }, - "MiniMax-M2.5-highspeed": { - id: "MiniMax-M2.5-highspeed", - name: "MiniMax-M2.5-highspeed", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-13", - last_updated: "2026-02-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMax-M2.1": { - id: "MiniMax-M2.1", - name: "MiniMax-M2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMax-M2.7": { - id: "MiniMax-M2.7", - name: "MiniMax-M2.7", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - }, - }, - "novita-ai": { - id: "novita-ai", - env: ["NOVITA_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.novita.ai/openai", - name: "NovitaAI", - doc: "https://novita.ai/docs/guides/introduction", - models: { - "zai-org/glm-5": { - id: "zai-org/glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3.2, cache_read: 0.2 }, - limit: { context: 202800, output: 131072 }, - }, - "zai-org/glm-4.5-air": { - id: "zai-org/glm-4.5-air", - name: "GLM 4.5 Air", - family: "glm-air", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-10-13", - last_updated: "2025-10-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.13, output: 0.85 }, - limit: { context: 131072, output: 98304 }, - }, - "zai-org/glm-4.5": { - id: "zai-org/glm-4.5", - name: "GLM-4.5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2, cache_read: 0.11 }, - limit: { context: 131072, output: 98304 }, - }, - "zai-org/glm-4.7-flash": { - id: "zai-org/glm-4.7-flash", - name: "GLM-4.7-Flash", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.4, cache_read: 0.01 }, - limit: { context: 200000, output: 128000 }, - }, - "zai-org/glm-4.6": { - id: "zai-org/glm-4.6", - name: "GLM 4.6", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.2, cache_read: 0.11 }, - limit: { context: 204800, output: 131072 }, - }, - "zai-org/glm-4.7": { - id: "zai-org/glm-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2, cache_read: 0.11 }, - limit: { context: 204800, output: 131072 }, - }, - "zai-org/autoglm-phone-9b-multilingual": { - id: "zai-org/autoglm-phone-9b-multilingual", - name: "AutoGLM-Phone-9B-Multilingual", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-12-10", - last_updated: "2025-12-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.035, output: 0.138 }, - limit: { context: 65536, output: 65536 }, - }, - "zai-org/glm-4.5v": { - id: "zai-org/glm-4.5v", - name: "GLM 4.5V", - family: "glmv", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-08-11", - last_updated: "2025-08-11", - modalities: { input: ["text", "video", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 1.8, cache_read: 0.11 }, - limit: { context: 65536, output: 16384 }, - }, - "zai-org/glm-4.6v": { - id: "zai-org/glm-4.6v", - name: "GLM 4.6V", - family: "glmv", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-08", - last_updated: "2025-12-08", - modalities: { input: ["text", "video", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.9, cache_read: 0.055 }, - limit: { context: 131072, output: 32768 }, - }, - "microsoft/wizardlm-2-8x22b": { - id: "microsoft/wizardlm-2-8x22b", - name: "Wizardlm 2 8x22B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-04-24", - last_updated: "2024-04-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.62, output: 0.62 }, - limit: { context: 65535, output: 8000 }, - }, - "minimaxai/minimax-m1-80k": { - id: "minimaxai/minimax-m1-80k", - name: "MiniMax M1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.2 }, - limit: { context: 1000000, output: 40000 }, - }, - "skywork/r1v4-lite": { - id: "skywork/r1v4-lite", - name: "Skywork R1V4-Lite", - family: "skywork", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.6 }, - limit: { context: 262144, output: 65536 }, - }, - "gryphe/mythomax-l2-13b": { - id: "gryphe/mythomax-l2-13b", - name: "Mythomax L2 13B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-04-25", - last_updated: "2024-04-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.09, output: 0.09 }, - limit: { context: 4096, output: 3200 }, - }, - "paddlepaddle/paddleocr-vl": { - id: "paddlepaddle/paddleocr-vl", - name: "PaddleOCR-VL", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-10-22", - last_updated: "2025-10-22", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0.02 }, - limit: { context: 16384, output: 16384 }, - }, - "baichuan/baichuan-m2-32b": { - id: "baichuan/baichuan-m2-32b", - name: "baichuan-m2-32b", - family: "baichuan", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - knowledge: "2024-12", - release_date: "2025-08-13", - last_updated: "2025-08-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.07 }, - limit: { context: 131072, output: 131072 }, - }, - "kwaipilot/kat-coder-pro": { - id: "kwaipilot/kat-coder-pro", - name: "Kat Coder Pro", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01-05", - last_updated: "2026-01-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.06 }, - limit: { context: 256000, output: 128000 }, - }, - "kwaipilot/kat-coder": { - id: "kwaipilot/kat-coder", - name: "KAT-Coder-Pro V1(Free)", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 32000 }, - }, - "deepseek/deepseek-v3-turbo": { - id: "deepseek/deepseek-v3-turbo", - name: "DeepSeek V3 (Turbo)\t", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-03-05", - last_updated: "2025-03-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 1.3 }, - limit: { context: 64000, output: 16000 }, - }, - "deepseek/deepseek-prover-v2-671b": { - id: "deepseek/deepseek-prover-v2-671b", - name: "Deepseek Prover V2 671B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-30", - last_updated: "2025-04-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.7, output: 2.5 }, - limit: { context: 160000, output: 160000 }, - }, - "deepseek/deepseek-r1-turbo": { - id: "deepseek/deepseek-r1-turbo", - name: "DeepSeek R1 (Turbo)\t", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-03-05", - last_updated: "2025-03-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.7, output: 2.5 }, - limit: { context: 64000, output: 16000 }, - }, - "deepseek/deepseek-ocr-2": { - id: "deepseek/deepseek-ocr-2", - name: "deepseek/deepseek-ocr-2", - attachment: true, - reasoning: false, - tool_call: false, - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.03 }, - limit: { context: 8192, output: 8192 }, - }, - "deepseek/deepseek-v3.1": { - id: "deepseek/deepseek-v3.1", - name: "DeepSeek V3.1", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-21", - last_updated: "2025-08-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 1, cache_read: 0.135 }, - limit: { context: 131072, output: 32768 }, - }, - "deepseek/deepseek-r1-0528": { - id: "deepseek/deepseek-r1-0528", - name: "DeepSeek R1 0528", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-05-28", - last_updated: "2025-05-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.7, output: 2.5, cache_read: 0.35 }, - limit: { context: 163840, output: 32768 }, - }, - "deepseek/deepseek-r1-0528-qwen3-8b": { - id: "deepseek/deepseek-r1-0528-qwen3-8b", - name: "DeepSeek R1 0528 Qwen3 8B", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-05-29", - last_updated: "2025-05-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.06, output: 0.09 }, - limit: { context: 128000, output: 32000 }, - }, - "deepseek/deepseek-r1-distill-llama-70b": { - id: "deepseek/deepseek-r1-distill-llama-70b", - name: "DeepSeek R1 Distill LLama 70B", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-01-27", - last_updated: "2025-01-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.8, output: 0.8 }, - limit: { context: 8192, output: 8192 }, - }, - "deepseek/deepseek-v3-0324": { - id: "deepseek/deepseek-v3-0324", - name: "DeepSeek V3 0324", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-03-25", - last_updated: "2025-03-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 1.12, cache_read: 0.135 }, - limit: { context: 163840, output: 163840 }, - }, - "deepseek/deepseek-v3.1-terminus": { - id: "deepseek/deepseek-v3.1-terminus", - name: "Deepseek V3.1 Terminus", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-22", - last_updated: "2025-09-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 1, cache_read: 0.135 }, - limit: { context: 131072, output: 32768 }, - }, - "deepseek/deepseek-v3.2": { - id: "deepseek/deepseek-v3.2", - name: "Deepseek V3.2", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.269, output: 0.4, cache_read: 0.1345 }, - limit: { context: 163840, output: 65536 }, - }, - "deepseek/deepseek-ocr": { - id: "deepseek/deepseek-ocr", - name: "DeepSeek-OCR", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-10-24", - last_updated: "2025-10-24", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.03 }, - limit: { context: 8192, output: 8192 }, - }, - "deepseek/deepseek-v3.2-exp": { - id: "deepseek/deepseek-v3.2-exp", - name: "Deepseek V3.2 Exp", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 0.41 }, - limit: { context: 163840, output: 65536 }, - }, - "moonshotai/kimi-k2-instruct": { - id: "moonshotai/kimi-k2-instruct", - name: "Kimi K2 Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-11", - last_updated: "2025-07-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.57, output: 2.3 }, - limit: { context: 131072, output: 131072 }, - }, - "moonshotai/kimi-k2-0905": { - id: "moonshotai/kimi-k2-0905", - name: "Kimi K2 0905", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5 }, - limit: { context: 262144, output: 262144 }, - }, - "moonshotai/kimi-k2.5": { - id: "moonshotai/kimi-k2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3, cache_read: 0.1 }, - limit: { context: 262144, output: 262144 }, - }, - "moonshotai/kimi-k2-thinking": { - id: "moonshotai/kimi-k2-thinking", - name: "Kimi K2 Thinking", - family: "kimi", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-11-07", - last_updated: "2025-11-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5 }, - limit: { context: 262144, output: 262144 }, - }, - "baidu/ernie-4.5-vl-28b-a3b-thinking": { - id: "baidu/ernie-4.5-vl-28b-a3b-thinking", - name: "ERNIE-4.5-VL-28B-A3B-Thinking", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-11-26", - last_updated: "2025-11-26", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.39, output: 0.39 }, - limit: { context: 131072, output: 65536 }, - }, - "baidu/ernie-4.5-vl-424b-a47b": { - id: "baidu/ernie-4.5-vl-424b-a47b", - name: "ERNIE 4.5 VL 424B A47B", - attachment: true, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-06-30", - last_updated: "2025-06-30", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.42, output: 1.25 }, - limit: { context: 123000, output: 16000 }, - }, - "baidu/ernie-4.5-vl-28b-a3b": { - id: "baidu/ernie-4.5-vl-28b-a3b", - name: "ERNIE 4.5 VL 28B A3B", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-06-30", - last_updated: "2025-06-30", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 1.4, output: 5.6 }, - limit: { context: 30000, output: 8000 }, - }, - "baidu/ernie-4.5-300b-a47b-paddle": { - id: "baidu/ernie-4.5-300b-a47b-paddle", - name: "ERNIE 4.5 300B A47B", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-06-30", - last_updated: "2025-06-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.28, output: 1.1 }, - limit: { context: 123000, output: 12000 }, - }, - "baidu/ernie-4.5-21B-a3b": { - id: "baidu/ernie-4.5-21B-a3b", - name: "ERNIE 4.5 21B A3B", - family: "ernie", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-03", - release_date: "2025-06-30", - last_updated: "2025-06-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.28 }, - limit: { context: 120000, output: 8000 }, - }, - "baidu/ernie-4.5-21B-a3b-thinking": { - id: "baidu/ernie-4.5-21B-a3b-thinking", - name: "ERNIE-4.5-21B-A3B-Thinking", - family: "ernie", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2025-03", - release_date: "2025-09-19", - last_updated: "2025-09-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.28 }, - limit: { context: 131072, output: 65536 }, - }, - "google/gemma-3-27b-it": { - id: "google/gemma-3-27b-it", - name: "Gemma 3 27B", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-03-25", - last_updated: "2025-03-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.119, output: 0.2 }, - limit: { context: 98304, output: 16384 }, - }, - "qwen/qwen3-4b-fp8": { - id: "qwen/qwen3-4b-fp8", - name: "Qwen3 4B", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-04-29", - last_updated: "2025-04-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.03 }, - limit: { context: 128000, output: 20000 }, - }, - "qwen/qwen3-235b-a22b-instruct-2507": { - id: "qwen/qwen3-235b-a22b-instruct-2507", - name: "Qwen3 235B A22B Instruct 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-22", - last_updated: "2025-07-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.09, output: 0.58 }, - limit: { context: 131072, output: 16384 }, - }, - "qwen/qwen3-32b-fp8": { - id: "qwen/qwen3-32b-fp8", - name: "Qwen3 32B", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-04-29", - last_updated: "2025-04-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.45 }, - limit: { context: 40960, output: 20000 }, - }, - "qwen/qwen3-next-80b-a3b-thinking": { - id: "qwen/qwen3-next-80b-a3b-thinking", - name: "Qwen3 Next 80B A3B Thinking", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-10", - last_updated: "2025-09-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 1.5 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen/qwen3-coder-480b-a35b-instruct": { - id: "qwen/qwen3-coder-480b-a35b-instruct", - name: "Qwen3 Coder 480B A35B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.3 }, - limit: { context: 262144, output: 65536 }, - }, - "qwen/qwen3-30b-a3b-fp8": { - id: "qwen/qwen3-30b-a3b-fp8", - name: "Qwen3 30B A3B", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-04-29", - last_updated: "2025-04-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.09, output: 0.45 }, - limit: { context: 40960, output: 20000 }, - }, - "qwen/qwen3-coder-next": { - id: "qwen/qwen3-coder-next", - name: "Qwen3 Coder Next", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-03", - last_updated: "2026-02-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 1.5 }, - limit: { context: 262144, output: 65536 }, - }, - "qwen/qwen3.5-397b-a17b": { - id: "qwen/qwen3.5-397b-a17b", - name: "Qwen3.5-397B-A17B", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-17", - last_updated: "2026-02-17", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3.6 }, - limit: { context: 262144, output: 64000 }, - }, - "qwen/qwen2.5-vl-72b-instruct": { - id: "qwen/qwen2.5-vl-72b-instruct", - name: "Qwen2.5 VL 72B Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-03-25", - last_updated: "2025-03-25", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.8, output: 0.8 }, - limit: { context: 32768, output: 32768 }, - }, - "qwen/qwen3-coder-30b-a3b-instruct": { - id: "qwen/qwen3-coder-30b-a3b-instruct", - name: "Qwen3 Coder 30b A3B Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-09", - last_updated: "2025-10-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.27 }, - limit: { context: 160000, output: 32768 }, - }, - "qwen/qwen3-vl-235b-a22b-instruct": { - id: "qwen/qwen3-vl-235b-a22b-instruct", - name: "Qwen3 VL 235B A22B Instruct", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-24", - last_updated: "2025-09-24", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.5 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen/qwen-mt-plus": { - id: "qwen/qwen-mt-plus", - name: "Qwen MT Plus", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-09-03", - last_updated: "2025-09-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.25, output: 0.75 }, - limit: { context: 16384, output: 8192 }, - }, - "qwen/qwen3-omni-30b-a3b-instruct": { - id: "qwen/qwen3-omni-30b-a3b-instruct", - name: "Qwen3 Omni 30B A3B Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-09-24", - last_updated: "2025-09-24", - modalities: { input: ["text", "video", "audio", "image"], output: ["text", "audio"] }, - open_weights: true, - cost: { input: 0.25, output: 0.97, input_audio: 2.2, output_audio: 1.788 }, - limit: { context: 65536, output: 16384 }, - }, - "qwen/qwen-2.5-72b-instruct": { - id: "qwen/qwen-2.5-72b-instruct", - name: "Qwen 2.5 72B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-10-15", - last_updated: "2024-10-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.38, output: 0.4 }, - limit: { context: 32000, output: 8192 }, - }, - "qwen/qwen3-vl-30b-a3b-thinking": { - id: "qwen/qwen3-vl-30b-a3b-thinking", - name: "qwen/qwen3-vl-30b-a3b-thinking", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-11", - last_updated: "2025-10-11", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 1 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen/qwen3-vl-235b-a22b-thinking": { - id: "qwen/qwen3-vl-235b-a22b-thinking", - name: "Qwen3 VL 235B A22B Thinking", - attachment: true, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-09-24", - last_updated: "2025-09-24", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.98, output: 3.95 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen/qwen3-235b-a22b-thinking-2507": { - id: "qwen/qwen3-235b-a22b-thinking-2507", - name: "Qwen3 235B A22b Thinking 2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-25", - last_updated: "2025-07-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 3 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen/qwen2.5-7b-instruct": { - id: "qwen/qwen2.5-7b-instruct", - name: "Qwen2.5 7B Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.07 }, - limit: { context: 32000, output: 32000 }, - }, - "qwen/qwen3-vl-30b-a3b-instruct": { - id: "qwen/qwen3-vl-30b-a3b-instruct", - name: "qwen/qwen3-vl-30b-a3b-instruct", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-11", - last_updated: "2025-10-11", - modalities: { input: ["text", "video", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.7 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen/qwen3-next-80b-a3b-instruct": { - id: "qwen/qwen3-next-80b-a3b-instruct", - name: "Qwen3 Next 80B A3B Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-10", - last_updated: "2025-09-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 1.5 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen/qwen3-235b-a22b-fp8": { - id: "qwen/qwen3-235b-a22b-fp8", - name: "Qwen3 235B A22B", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-04-29", - last_updated: "2025-04-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 40960, output: 20000 }, - }, - "qwen/qwen3-vl-8b-instruct": { - id: "qwen/qwen3-vl-8b-instruct", - name: "qwen/qwen3-vl-8b-instruct", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-17", - last_updated: "2025-10-17", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.08, output: 0.5 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen/qwen3-max": { - id: "qwen/qwen3-max", - name: "Qwen3 Max", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-24", - last_updated: "2025-09-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.11, output: 8.45 }, - limit: { context: 262144, output: 65536 }, - }, - "qwen/qwen3-8b-fp8": { - id: "qwen/qwen3-8b-fp8", - name: "Qwen3 8B", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-04-29", - last_updated: "2025-04-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.035, output: 0.138 }, - limit: { context: 128000, output: 20000 }, - }, - "qwen/qwen3-omni-30b-a3b-thinking": { - id: "qwen/qwen3-omni-30b-a3b-thinking", - name: "Qwen3 Omni 30B A3B Thinking", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-24", - last_updated: "2025-09-24", - modalities: { input: ["text", "audio", "video", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.25, output: 0.97, input_audio: 2.2, output_audio: 1.788 }, - limit: { context: 65536, output: 16384 }, - }, - "meta-llama/llama-3.3-70b-instruct": { - id: "meta-llama/llama-3.3-70b-instruct", - name: "Llama 3.3 70B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-12-07", - last_updated: "2024-12-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.135, output: 0.4 }, - limit: { context: 131072, output: 120000 }, - }, - "meta-llama/llama-4-scout-17b-16e-instruct": { - id: "meta-llama/llama-4-scout-17b-16e-instruct", - name: "Llama 4 Scout Instruct", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-06", - last_updated: "2025-04-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.18, output: 0.59 }, - limit: { context: 131072, output: 131072 }, - }, - "meta-llama/llama-3-70b-instruct": { - id: "meta-llama/llama-3-70b-instruct", - name: "Llama3 70B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2024-04-25", - last_updated: "2024-04-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.51, output: 0.74 }, - limit: { context: 8192, output: 8000 }, - }, - "meta-llama/llama-3.1-8b-instruct": { - id: "meta-llama/llama-3.1-8b-instruct", - name: "Llama 3.1 8B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-07-24", - last_updated: "2024-07-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0.05 }, - limit: { context: 16384, output: 16384 }, - }, - "meta-llama/llama-3-8b-instruct": { - id: "meta-llama/llama-3-8b-instruct", - name: "Llama 3 8B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-04-25", - last_updated: "2024-04-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.04, output: 0.04 }, - limit: { context: 8192, output: 8192 }, - }, - "meta-llama/llama-4-maverick-17b-128e-instruct-fp8": { - id: "meta-llama/llama-4-maverick-17b-128e-instruct-fp8", - name: "Llama 4 Maverick Instruct", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-06", - last_updated: "2025-04-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 0.85 }, - limit: { context: 1048576, output: 8192 }, - }, - "mistralai/mistral-nemo": { - id: "mistralai/mistral-nemo", - name: "Mistral Nemo", - family: "mistral-nemo", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2024-07-30", - last_updated: "2024-07-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.04, output: 0.17 }, - limit: { context: 60288, output: 16000 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "OpenAI GPT OSS 120B", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-06", - last_updated: "2025-08-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.25 }, - limit: { context: 131072, output: 32768 }, - }, - "openai/gpt-oss-20b": { - id: "openai/gpt-oss-20b", - name: "OpenAI: GPT OSS 20B", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-08-06", - last_updated: "2025-08-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.04, output: 0.15 }, - limit: { context: 131072, output: 32768 }, - }, - "minimax/minimax-m2.1": { - id: "minimax/minimax-m2.1", - name: "Minimax M2.1", - family: "minimax", - attachment: false, - reasoning: false, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.03 }, - limit: { context: 204800, output: 131072 }, - }, - "minimax/minimax-m2": { - id: "minimax/minimax-m2", - name: "MiniMax-M2", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2025-10-27", - last_updated: "2025-10-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.03 }, - limit: { context: 204800, output: 131072 }, - }, - "minimax/minimax-m2.5": { - id: "minimax/minimax-m2.5", - name: "MiniMax M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2, cache_read: 0.03 }, - limit: { context: 204800, output: 131100 }, - }, - "sao10k/l3-70b-euryale-v2.1": { - id: "sao10k/l3-70b-euryale-v2.1", - name: "L3 70B Euryale V2.1\t", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-06-18", - last_updated: "2024-06-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.48, output: 1.48 }, - limit: { context: 8192, output: 8192 }, - }, - "sao10k/l31-70b-euryale-v2.2": { - id: "sao10k/l31-70b-euryale-v2.2", - name: "L31 70B Euryale V2.2", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-09-19", - last_updated: "2024-09-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.48, output: 1.48 }, - limit: { context: 8192, output: 8192 }, - }, - "sao10k/l3-8b-lunaris": { - id: "sao10k/l3-8b-lunaris", - name: "Sao10k L3 8B Lunaris\t", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2024-11-28", - last_updated: "2024-11-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.05 }, - limit: { context: 8192, output: 8192 }, - }, - "sao10k/L3-8B-Stheno-v3.2": { - id: "sao10k/L3-8B-Stheno-v3.2", - name: "L3 8B Stheno V3.2", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-11-29", - last_updated: "2024-11-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.05 }, - limit: { context: 8192, output: 32000 }, - }, - "xiaomimimo/mimo-v2-flash": { - id: "xiaomimimo/mimo-v2-flash", - name: "XiaomiMiMo/MiMo-V2-Flash", - family: "mimo", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-12-19", - last_updated: "2025-12-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3, cache_read: 0.3 }, - limit: { context: 262144, output: 32000 }, - }, - "nousresearch/hermes-2-pro-llama-3-8b": { - id: "nousresearch/hermes-2-pro-llama-3-8b", - name: "Hermes 2 Pro Llama 3 8B", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2024-06-27", - last_updated: "2024-06-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.14, output: 0.14 }, - limit: { context: 8192, output: 8192 }, - }, - }, - }, - opencode: { - id: "opencode", - env: ["OPENCODE_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://opencode.ai/zen/v1", - name: "OpenCode Zen", - doc: "https://opencode.ai/docs/zen", - models: { - "gpt-5.3-codex": { - id: "gpt-5.3-codex", - name: "GPT-5.3 Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-02-24", - last_updated: "2026-02-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, input: 272000, output: 128000 }, - provider: { npm: "@ai-sdk/openai" }, - }, - "kimi-k2": { - id: "kimi-k2", - name: "Kimi K2", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 2.5, cache_read: 0.4 }, - limit: { context: 262144, output: 262144 }, - status: "deprecated", - }, - "gpt-5-codex": { - id: "gpt-5-codex", - name: "GPT-5 Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.07, output: 8.5, cache_read: 0.107 }, - limit: { context: 400000, input: 272000, output: 128000 }, - provider: { npm: "@ai-sdk/openai" }, - }, - "gemini-3.1-pro": { - id: "gemini-3.1-pro", - name: "Gemini 3.1 Pro Preview", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-02-19", - last_updated: "2026-02-19", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, - limit: { context: 1048576, output: 65536 }, - provider: { npm: "@ai-sdk/google" }, - }, - "trinity-large-preview-free": { - id: "trinity-large-preview-free", - name: "Trinity Large Preview", - family: "trinity", attachment: false, reasoning: false, tool_call: true, temperature: true, knowledge: "2025-06", - release_date: "2026-01-28", - last_updated: "2026-01-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 131072 }, - status: "deprecated", - }, - "glm-5": { - id: "glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3.2, cache_read: 0.2 }, - limit: { context: 204800, output: 131072 }, - }, - "gpt-5.1-codex-max": { - id: "gpt-5.1-codex-max", - name: "GPT-5.1 Codex Max", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, input: 272000, output: 128000 }, - provider: { npm: "@ai-sdk/openai" }, - }, - "kimi-k2.5-free": { - id: "kimi-k2.5-free", - name: "Kimi K2.5 Free", - family: "kimi-free", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-10", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0 }, - limit: { context: 262144, output: 262144 }, - status: "deprecated", - }, - "claude-opus-4-1": { - id: "claude-opus-4-1", - name: "Claude Opus 4.1", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - provider: { npm: "@ai-sdk/anthropic" }, - }, - "grok-code": { - id: "grok-code", - name: "Grok Code Fast 1", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-20", - last_updated: "2025-08-20", + release_date: "2025-12-22", + last_updated: "2025-12-22", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 256000, output: 256000 }, - status: "deprecated", + cost: { input: 0.286, output: 1.142 }, + limit: { context: 200000, output: 131072 }, }, - "nemotron-3-super-free": { - id: "nemotron-3-super-free", - name: "Nemotron 3 Super Free", - family: "nemotron-free", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2026-02", - release_date: "2026-03-11", - last_updated: "2026-03-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0 }, - limit: { context: 1000000, output: 128000 }, - }, - "claude-3-5-haiku": { - id: "claude-3-5-haiku", - name: "Claude Haiku 3.5", - family: "claude-haiku", + "doubao-seed-1-8-251215": { + id: "doubao-seed-1-8-251215", + name: "doubao-seed-1-8-251215", attachment: true, reasoning: false, tool_call: true, temperature: true, - knowledge: "2024-07-31", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, - limit: { context: 200000, output: 8192 }, - provider: { npm: "@ai-sdk/anthropic" }, - }, - "gpt-5.2-codex": { - id: "gpt-5.2-codex", - name: "GPT-5.2 Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-01-14", - last_updated: "2026-01-14", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, input: 272000, output: 128000 }, - provider: { npm: "@ai-sdk/openai" }, - }, - "claude-opus-4-6": { - id: "claude-opus-4-6", - name: "Claude Opus 4.6", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 1000000, output: 128000 }, - provider: { npm: "@ai-sdk/anthropic" }, - }, - "mimo-v2-flash-free": { - id: "mimo-v2-flash-free", - name: "MiMo V2 Flash Free", - family: "mimo-flash-free", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-12", - release_date: "2025-12-16", - last_updated: "2025-12-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0 }, - limit: { context: 262144, output: 65536 }, - status: "deprecated", - }, - "gemini-3-flash": { - id: "gemini-3-flash", - name: "Gemini 3 Flash", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 3, cache_read: 0.05 }, - limit: { context: 1048576, output: 65536 }, - provider: { npm: "@ai-sdk/google" }, - }, - "claude-sonnet-4-6": { - id: "claude-sonnet-4-6", - name: "Claude Sonnet 4.6", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2026-02-17", - last_updated: "2026-02-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 1000000, output: 64000 }, - provider: { npm: "@ai-sdk/anthropic" }, - }, - "gpt-5.1": { - id: "gpt-5.1", - name: "GPT-5.1", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", + release_date: "2025-12-18", + last_updated: "2025-12-18", modalities: { input: ["text", "image"], output: ["text"] }, open_weights: false, - cost: { input: 1.07, output: 8.5, cache_read: 0.107 }, - limit: { context: 400000, input: 272000, output: 128000 }, - provider: { npm: "@ai-sdk/openai" }, + cost: { input: 0.114, output: 0.286 }, + limit: { context: 224000, output: 64000 }, }, - "gpt-5.3-codex-spark": { - id: "gpt-5.3-codex-spark", - name: "GPT-5.3 Codex Spark", - family: "gpt-codex-spark", + "chatgpt-4o-latest": { + id: "chatgpt-4o-latest", + name: "chatgpt-4o-latest", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-09", + release_date: "2024-08-08", + last_updated: "2024-08-08", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 15 }, + limit: { context: 128000, output: 16384 }, + }, + "deepseek-chat": { + id: "deepseek-chat", + name: "Deepseek-Chat", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2024-11-29", + last_updated: "2024-11-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.29, output: 0.43 }, + limit: { context: 128000, output: 8192 }, + }, + "deepseek-v3.2-thinking": { + id: "deepseek-v3.2-thinking", + name: "DeepSeek-V3.2-Thinking", attachment: false, reasoning: true, tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-02-12", - last_updated: "2026-02-12", + temperature: true, + knowledge: "2024-12", + release_date: "2025-12-01", + last_updated: "2025-12-01", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 128000, input: 128000, output: 128000 }, - provider: { npm: "@ai-sdk/openai" }, + cost: { input: 0.29, output: 0.43 }, + limit: { context: 128000, output: 128000 }, }, - "qwen3-coder": { - id: "qwen3-coder", - name: "Qwen3 Coder", + "gpt-5-thinking": { + id: "gpt-5-thinking", + name: "gpt-5-thinking", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-08-08", + last_updated: "2025-08-08", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 400000, output: 128000 }, + }, + "gemini-3-flash-preview": { + id: "gemini-3-flash-preview", + name: "gemini-3-flash-preview", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-12-18", + last_updated: "2025-12-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 3 }, + limit: { context: 1000000, output: 65536 }, + }, + "qwen-plus": { + id: "qwen-plus", + name: "Qwen-Plus", family: "qwen", attachment: false, reasoning: false, tool_call: true, temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", + knowledge: "2024-10", + release_date: "2024-07-23", + last_updated: "2024-07-23", modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.45, output: 1.8 }, - limit: { context: 262144, output: 65536 }, - status: "deprecated", + open_weights: false, + cost: { input: 0.12, output: 1.2 }, + limit: { context: 1000000, output: 32768 }, }, - "glm-4.6": { - id: "glm-4.6", - name: "GLM-4.6", - family: "glm", + "gpt-5-mini": { + id: "gpt-5-mini", + name: "gpt-5-mini", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-08-08", + last_updated: "2025-08-08", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2 }, + limit: { context: 400000, output: 128000 }, + }, + "gemini-3-pro-preview": { + id: "gemini-3-pro-preview", + name: "gemini-3-pro-preview", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-11-19", + last_updated: "2025-11-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12 }, + limit: { context: 1000000, output: 64000 }, + }, + "qwen3-max-2025-09-23": { + id: "qwen3-max-2025-09-23", + name: "qwen3-max-2025-09-23", attachment: false, - reasoning: true, + reasoning: false, tool_call: true, temperature: true, knowledge: "2025-04", - release_date: "2025-09-30", - last_updated: "2025-09-30", + release_date: "2025-09-24", + last_updated: "2025-09-24", modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2, cache_read: 0.1 }, - limit: { context: 204800, output: 131072 }, - status: "deprecated", + open_weights: false, + cost: { input: 0.86, output: 3.43 }, + limit: { context: 258048, output: 65536 }, }, - "minimax-m2.1": { - id: "minimax-m2.1", - name: "MiniMax M2.1", - family: "minimax", - attachment: false, - reasoning: true, + "claude-sonnet-4-5-20250929": { + id: "claude-sonnet-4-5-20250929", + name: "claude-sonnet-4-5-20250929", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-03", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 200000, output: 64000 }, + }, + "qwen-flash": { + id: "qwen-flash", + name: "Qwen-Flash", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.022, output: 0.22 }, + limit: { context: 1000000, output: 32768 }, + }, + "gemini-2.5-pro": { + id: "gemini-2.5-pro", + name: "gemini-2.5-pro", + family: "gemini-pro", + attachment: true, + reasoning: false, tool_call: true, - interleaved: { field: "reasoning_content" }, temperature: true, knowledge: "2025-01", - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.1 }, - limit: { context: 204800, output: 131072 }, - status: "deprecated", + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 1000000, output: 65536 }, }, - "gpt-5.1-codex-mini": { - id: "gpt-5.1-codex-mini", - name: "GPT-5.1 Codex Mini", - family: "gpt-codex", + "grok-4-1-fast-non-reasoning": { + id: "grok-4-1-fast-non-reasoning", + name: "grok-4-1-fast-non-reasoning", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-11-20", + last_updated: "2025-11-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5 }, + limit: { context: 2000000, output: 30000 }, + }, + "claude-opus-4-5-20251101-thinking": { + id: "claude-opus-4-5-20251101-thinking", + name: "claude-opus-4-5-20251101-thinking", attachment: true, reasoning: true, tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", + temperature: true, + knowledge: "2025-03", + release_date: "2025-11-25", + last_updated: "2025-11-25", modalities: { input: ["text", "image"], output: ["text"] }, open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.025 }, - limit: { context: 400000, input: 272000, output: 128000 }, - provider: { npm: "@ai-sdk/openai" }, + cost: { input: 5, output: 25 }, + limit: { context: 200000, output: 64000 }, }, "gpt-5.2": { id: "gpt-5.2", - name: "GPT-5.2", - family: "gpt", + name: "gpt-5.2", attachment: true, - reasoning: true, + reasoning: false, tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, input: 272000, output: 128000 }, - provider: { npm: "@ai-sdk/openai" }, - }, - "mimo-v2-omni-free": { - id: "mimo-v2-omni-free", - name: "MiMo V2 Omni Free", - family: "mimo-omni-free", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-12", - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text", "image", "audio", "pdf"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0 }, - limit: { context: 262144, output: 64000 }, - }, - "kimi-k2.5": { - id: "kimi-k2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, temperature: true, knowledge: "2024-10", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3, cache_read: 0.08 }, - limit: { context: 262144, output: 65536 }, - }, - "minimax-m2.1-free": { - id: "minimax-m2.1-free", - name: "MiniMax M2.1 Free", - family: "minimax-free", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0 }, - limit: { context: 204800, output: 131072 }, - status: "deprecated", - provider: { npm: "@ai-sdk/anthropic" }, - }, - "mimo-v2-pro-free": { - id: "mimo-v2-pro-free", - name: "MiMo V2 Pro Free", - family: "mimo-pro-free", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-12", - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0 }, - limit: { context: 1048576, output: 64000 }, - }, - "gpt-5": { - id: "gpt-5", - name: "GPT-5", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", + release_date: "2025-12-12", + last_updated: "2025-12-12", modalities: { input: ["text", "image"], output: ["text"] }, open_weights: false, - cost: { input: 1.07, output: 8.5, cache_read: 0.107 }, - limit: { context: 400000, input: 272000, output: 128000 }, - provider: { npm: "@ai-sdk/openai" }, + cost: { input: 1.75, output: 14 }, + limit: { context: 400000, output: 128000 }, }, - "glm-4.7": { - id: "glm-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2, cache_read: 0.1 }, - limit: { context: 204800, output: 131072 }, - status: "deprecated", - }, - "glm-5-free": { - id: "glm-5-free", - name: "GLM-5 Free", - family: "glm-free", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0 }, - limit: { context: 204800, output: 131072 }, - status: "deprecated", - }, - "kimi-k2-thinking": { - id: "kimi-k2-thinking", - name: "Kimi K2 Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 2.5, cache_read: 0.4 }, - limit: { context: 262144, output: 262144 }, - status: "deprecated", - }, - "gpt-5.4": { - id: "gpt-5.4", - name: "GPT-5.4", - family: "gpt", + "gemini-3-pro-image-preview": { + id: "gemini-3-pro-image-preview", + name: "gemini-3-pro-image-preview", attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 15, cache_read: 0.25 }, - limit: { context: 1050000, input: 922000, output: 128000 }, - provider: { npm: "@ai-sdk/openai" }, - }, - "gpt-5.4-pro": { - id: "gpt-5.4-pro", - name: "GPT-5.4 Pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 30, output: 180, cache_read: 30 }, - limit: { context: 1050000, input: 922000, output: 128000 }, - provider: { npm: "@ai-sdk/openai" }, - }, - "claude-haiku-4-5": { - id: "claude-haiku-4-5", - name: "Claude Haiku 4.5", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, + reasoning: false, + tool_call: false, temperature: true, - knowledge: "2025-02-28", - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 200000, output: 64000 }, - provider: { npm: "@ai-sdk/anthropic" }, - }, - "gpt-5.1-codex": { - id: "gpt-5.1-codex", - name: "GPT-5.1 Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", + knowledge: "2025-06", + release_date: "2025-11-20", + last_updated: "2025-11-20", modalities: { input: ["text", "image"], output: ["text"] }, open_weights: false, - cost: { input: 1.07, output: 8.5, cache_read: 0.107 }, - limit: { context: 400000, input: 272000, output: 128000 }, - provider: { npm: "@ai-sdk/openai" }, + cost: { input: 2, output: 120 }, + limit: { context: 32768, output: 64000 }, }, - "big-pickle": { - id: "big-pickle", - name: "Big Pickle", - family: "big-pickle", + "qwen-max-latest": { + id: "qwen-max-latest", + name: "Qwen-Max-Latest", + family: "qwen", attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-10-17", - last_updated: "2025-10-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 200000, output: 128000 }, - provider: { npm: "@ai-sdk/anthropic" }, - }, - "minimax-m2.5-free": { - id: "minimax-m2.5-free", - name: "MiniMax M2.5 Free", - family: "minimax-free", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0 }, - limit: { context: 204800, output: 131072 }, - provider: { npm: "@ai-sdk/anthropic" }, - }, - "minimax-m2.5": { - id: "minimax-m2.5", - name: "MiniMax M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-01", - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.06 }, - limit: { context: 204800, output: 131072 }, - }, - "claude-opus-4-5": { - id: "claude-opus-4-5", - name: "Claude Opus 4.5", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-24", - last_updated: "2025-11-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 64000 }, - provider: { npm: "@ai-sdk/anthropic" }, - }, - "claude-sonnet-4": { - id: "claude-sonnet-4", - name: "Claude Sonnet 4", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 3, - output: 15, - cache_read: 0.3, - cache_write: 3.75, - context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, - }, - limit: { context: 1000000, output: 64000 }, - provider: { npm: "@ai-sdk/anthropic" }, - }, - "glm-4.7-free": { - id: "glm-4.7-free", - name: "GLM-4.7 Free", - family: "glm-free", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0 }, - limit: { context: 204800, output: 131072 }, - status: "deprecated", - }, - "gemini-3-pro": { - id: "gemini-3-pro", - name: "Gemini 3 Pro", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, - limit: { context: 1048576, output: 65536 }, - status: "deprecated", - provider: { npm: "@ai-sdk/google" }, - }, - "claude-sonnet-4-5": { - id: "claude-sonnet-4-5", - name: "Claude Sonnet 4.5", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 3, - output: 15, - cache_read: 0.3, - cache_write: 3.75, - context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, - }, - limit: { context: 1000000, output: 64000 }, - provider: { npm: "@ai-sdk/anthropic" }, - }, - "gpt-5.4-nano": { - id: "gpt-5.4-nano", - name: "GPT-5.4 Nano", - family: "gpt-nano", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-17", - last_updated: "2026-03-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.25, cache_read: 0.02 }, - limit: { context: 400000, input: 272000, output: 128000 }, - provider: { npm: "@ai-sdk/openai" }, - }, - "gpt-5-nano": { - id: "gpt-5-nano", - name: "GPT-5 Nano", - family: "gpt-nano", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0 }, - limit: { context: 400000, input: 272000, output: 128000 }, - provider: { npm: "@ai-sdk/openai" }, - }, - "gpt-5.4-mini": { - id: "gpt-5.4-mini", - name: "GPT-5.4 Mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-17", - last_updated: "2026-03-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.75, output: 4.5, cache_read: 0.075 }, - limit: { context: 400000, input: 272000, output: 128000 }, - provider: { npm: "@ai-sdk/openai" }, - }, - }, - }, - poe: { - id: "poe", - env: ["POE_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.poe.com/v1", - name: "Poe", - doc: "https://creator.poe.com/docs/external-applications/openai-compatible-api", - models: { - "stabilityai/stablediffusionxl": { - id: "stabilityai/stablediffusionxl", - name: "StableDiffusionXL", - family: "stable-diffusion", - attachment: true, reasoning: false, tool_call: true, - temperature: false, - release_date: "2023-07-09", - last_updated: "2023-07-09", - modalities: { input: ["text", "image"], output: ["image"] }, - open_weights: false, - limit: { context: 200, output: 0 }, - }, - "ideogramai/ideogram-v2": { - id: "ideogramai/ideogram-v2", - name: "Ideogram-v2", - family: "ideogram", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-08-21", - last_updated: "2024-08-21", - modalities: { input: ["text", "image"], output: ["image"] }, - open_weights: false, - limit: { context: 150, output: 0 }, - }, - "ideogramai/ideogram": { - id: "ideogramai/ideogram", - name: "Ideogram", - family: "ideogram", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, + temperature: true, + knowledge: "2024-11", release_date: "2024-04-03", - last_updated: "2024-04-03", - modalities: { input: ["text", "image"], output: ["image"] }, - open_weights: false, - limit: { context: 150, output: 0 }, - }, - "ideogramai/ideogram-v2a-turbo": { - id: "ideogramai/ideogram-v2a-turbo", - name: "Ideogram-v2a-Turbo", - family: "ideogram", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-02-27", - last_updated: "2025-02-27", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 150, output: 0 }, - }, - "ideogramai/ideogram-v2a": { - id: "ideogramai/ideogram-v2a", - name: "Ideogram-v2a", - family: "ideogram", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-02-27", - last_updated: "2025-02-27", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 150, output: 0 }, - }, - "novita/glm-4.7-flash": { - id: "novita/glm-4.7-flash", - name: "glm-4.7-flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2026-01-19", - last_updated: "2026-01-19", + last_updated: "2025-01-25", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - limit: { context: 200000, output: 65500 }, + cost: { input: 0.343, output: 1.372 }, + limit: { context: 131072, output: 8192 }, }, - "novita/glm-4.7-n": { - id: "novita/glm-4.7-n", - name: "glm-4.7-n", + "gemini-2.5-flash-image": { + id: "gemini-2.5-flash-image", + name: "gemini-2.5-flash-image", attachment: true, - reasoning: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-01", + release_date: "2025-10-08", + last_updated: "2025-10-08", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 30 }, + limit: { context: 32768, output: 32768 }, + }, + "glm-4.5": { + id: "glm-4.5", + name: "GLM-4.5", + attachment: false, + reasoning: false, tool_call: true, - temperature: false, - release_date: "2025-12-22", - last_updated: "2025-12-22", + temperature: true, + knowledge: "2024-10", + release_date: "2025-07-29", + last_updated: "2025-07-29", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - limit: { context: 205000, output: 131072 }, + cost: { input: 0.286, output: 1.142 }, + limit: { context: 128000, output: 98304 }, }, - "novita/glm-4.6": { - id: "novita/glm-4.6", - name: "GLM-4.6", - family: "glm", + "gemini-2.5-flash": { + id: "gemini-2.5-flash", + name: "gemini-2.5-flash", + family: "gemini-flash", attachment: true, reasoning: false, tool_call: true, - temperature: false, + temperature: true, + knowledge: "2025-01", + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5 }, + limit: { context: 1000000, output: 65536 }, + }, + "gpt-5.2-chat-latest": { + id: "gpt-5.2-chat-latest", + name: "gpt-5.2-chat-latest", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-12-12", + last_updated: "2025-12-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14 }, + limit: { context: 128000, output: 16384 }, + }, + "doubao-seed-1-6-vision-250815": { + id: "doubao-seed-1-6-vision-250815", + name: "doubao-seed-1-6-vision-250815", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, release_date: "2025-09-30", last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 0, output: 0 }, - }, - "novita/minimax-m2.1": { - id: "novita/minimax-m2.1", - name: "minimax-m2.1", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-12-26", - last_updated: "2025-12-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 205000, output: 131072 }, - }, - "novita/kimi-k2.5": { - id: "novita/kimi-k2.5", - name: "kimi-k2.5", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 262144 }, - }, - "novita/glm-4.7": { - id: "novita/glm-4.7", - name: "glm-4.7", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 205000, output: 131072 }, - }, - "novita/kimi-k2-thinking": { - id: "novita/kimi-k2-thinking", - name: "kimi-k2-thinking", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-11-07", - last_updated: "2025-11-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 0 }, - }, - "novita/glm-4.6v": { - id: "novita/glm-4.6v", - name: "glm-4.6v", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-12-09", - last_updated: "2025-12-09", modalities: { input: ["text", "image"], output: ["text"] }, open_weights: false, - limit: { context: 131000, output: 32768 }, - }, - "google/gemini-3.1-pro": { - id: "google/gemini-3.1-pro", - name: "Gemini-3.1-Pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2026-02-19", - last_updated: "2026-02-19", - modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/lyria": { - id: "google/lyria", - name: "Lyria", - family: "lyria", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-06-04", - last_updated: "2025-06-04", - modalities: { input: ["text"], output: ["audio"] }, - open_weights: false, - limit: { context: 0, output: 0 }, - }, - "google/gemini-3-flash": { - id: "google/gemini-3-flash", - name: "Gemini-3-Flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-10-07", - last_updated: "2025-10-07", - modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2.4, cache_read: 0.04 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/imagen-3": { - id: "google/imagen-3", - name: "Imagen-3", - family: "imagen", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-10-15", - last_updated: "2024-10-15", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 480, output: 0 }, - }, - "google/gemini-2.5-flash": { - id: "google/gemini-2.5-flash", - name: "Gemini-2.5-Flash", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-04-26", - last_updated: "2025-04-26", - modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.21, output: 1.8, cache_read: 0.021 }, - limit: { context: 1065535, output: 65535 }, - }, - "google/veo-3.1": { - id: "google/veo-3.1", - name: "Veo-3.1", - family: "veo", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text"], output: ["video"] }, - open_weights: false, - limit: { context: 480, output: 0 }, - }, - "google/imagen-3-fast": { - id: "google/imagen-3-fast", - name: "Imagen-3-Fast", - family: "imagen", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-10-17", - last_updated: "2024-10-17", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 480, output: 0 }, - }, - "google/nano-banana-pro": { - id: "google/nano-banana-pro", - name: "Nano-Banana-Pro", - family: "nano-banana", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-11-19", - last_updated: "2025-11-19", - modalities: { input: ["text", "image"], output: ["image"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2 }, - limit: { context: 65536, output: 0 }, - }, - "google/veo-2": { - id: "google/veo-2", - name: "Veo-2", - family: "veo", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-12-02", - last_updated: "2024-12-02", - modalities: { input: ["text"], output: ["video"] }, - open_weights: false, - limit: { context: 480, output: 0 }, - }, - "google/imagen-4-ultra": { - id: "google/imagen-4-ultra", - name: "Imagen-4-Ultra", - family: "imagen", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-05-24", - last_updated: "2025-05-24", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 480, output: 0 }, - }, - "google/gemini-2.5-flash-lite": { - id: "google/gemini-2.5-flash-lite", - name: "Gemini-2.5-Flash-Lite", - family: "gemini-flash-lite", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-06-19", - last_updated: "2025-06-19", - modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.07, output: 0.28 }, - limit: { context: 1024000, output: 64000 }, - }, - "google/nano-banana": { - id: "google/nano-banana", - name: "Nano-Banana", - family: "nano-banana", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-08-21", - last_updated: "2025-08-21", - modalities: { input: ["text", "image"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 0.21, output: 1.8, cache_read: 0.021 }, - limit: { context: 65536, output: 0 }, - }, - "google/veo-3.1-fast": { - id: "google/veo-3.1-fast", - name: "Veo-3.1-Fast", - family: "veo", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image"], output: ["video"] }, - open_weights: false, - limit: { context: 480, output: 0 }, - }, - "google/gemini-deep-research": { - id: "google/gemini-deep-research", - name: "gemini-deep-research", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 1.6, output: 9.6 }, - limit: { context: 1048576, output: 0 }, - }, - "google/veo-3": { - id: "google/veo-3", - name: "Veo-3", - family: "veo", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-05-21", - last_updated: "2025-05-21", - modalities: { input: ["text"], output: ["video"] }, - open_weights: false, - limit: { context: 480, output: 0 }, - }, - "google/imagen-4": { - id: "google/imagen-4", - name: "Imagen-4", - family: "imagen", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 480, output: 0 }, - }, - "google/gemini-2.0-flash-lite": { - id: "google/gemini-2.0-flash-lite", - name: "Gemini-2.0-Flash-Lite", - family: "gemini-flash-lite", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-02-05", - last_updated: "2025-02-05", - modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.052, output: 0.21 }, - limit: { context: 990000, output: 8192 }, - }, - "google/gemini-3.1-flash-lite": { - id: "google/gemini-3.1-flash-lite", - name: "Gemini-3.1-Flash-Lite", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2026-02-18", - last_updated: "2026-02-18", - modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1.5 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-3-pro": { - id: "google/gemini-3-pro", - name: "Gemini-3-Pro", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-10-22", - last_updated: "2025-10-22", - modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 1.6, output: 9.6, cache_read: 0.16 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-2.5-pro": { - id: "google/gemini-2.5-pro", - name: "Gemini-2.5-Pro", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-02-05", - last_updated: "2025-02-05", - modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.87, output: 7, cache_read: 0.087 }, - limit: { context: 1065535, output: 65535 }, - }, - "google/gemini-2.0-flash": { - id: "google/gemini-2.0-flash", - name: "Gemini-2.0-Flash", - family: "gemini-flash", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.42 }, - limit: { context: 990000, output: 8192 }, - }, - "google/veo-3-fast": { - id: "google/veo-3-fast", - name: "Veo-3-Fast", - family: "veo", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-10-13", - last_updated: "2025-10-13", - modalities: { input: ["text"], output: ["video"] }, - open_weights: false, - limit: { context: 480, output: 0 }, - }, - "google/imagen-4-fast": { - id: "google/imagen-4-fast", - name: "Imagen-4-Fast", - family: "imagen", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-06-25", - last_updated: "2025-06-25", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 480, output: 0 }, - }, - "lumalabs/ray2": { - id: "lumalabs/ray2", - name: "Ray2", - family: "ray", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-02-20", - last_updated: "2025-02-20", - modalities: { input: ["text", "image"], output: ["video"] }, - open_weights: false, - limit: { context: 5000, output: 0 }, - }, - "poetools/claude-code": { - id: "poetools/claude-code", - name: "claude-code", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-11-27", - last_updated: "2025-11-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 0, output: 0 }, - }, - "openai/gpt-5.3-codex": { - id: "openai/gpt-5.3-codex", - name: "GPT-5.3-Codex", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2026-02-10", - last_updated: "2026-02-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.6, output: 13, cache_read: 0.16 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5-codex": { - id: "openai/gpt-5-codex", - name: "GPT-5-Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-09-23", - last_updated: "2025-09-23", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 9 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5-pro": { - id: "openai/gpt-5-pro", - name: "GPT-5-Pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-10-06", - last_updated: "2025-10-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 14, output: 110 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-4o-mini": { - id: "openai/gpt-4o-mini", - name: "GPT-4o-mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.54, cache_read: 0.068 }, - limit: { context: 124096, output: 4096 }, - }, - "openai/gpt-5.1-codex-max": { - id: "openai/gpt-5.1-codex-max", - name: "GPT 5.1 Codex Max", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-12-08", - last_updated: "2025-12-08", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 9, cache_read: 0.11 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.2-codex": { - id: "openai/gpt-5.2-codex", - name: "GPT-5.2-Codex", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2026-01-14", - last_updated: "2026-01-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.6, output: 13, cache_read: 0.16 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/o3-deep-research": { - id: "openai/o3-deep-research", - name: "o3-deep-research", - family: "o", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-06-27", - last_updated: "2025-06-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 9, output: 36, cache_read: 2.2 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/o1": { - id: "openai/o1", - name: "o1", - family: "o", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2024-12-18", - last_updated: "2024-12-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 14, output: 54 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-5.1": { - id: "openai/gpt-5.1", - name: "GPT-5.1", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-11-12", - last_updated: "2025-11-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 9, cache_read: 0.11 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/o4-mini-deep-research": { - id: "openai/o4-mini-deep-research", - name: "o4-mini-deep-research", - family: "o-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-06-27", - last_updated: "2025-06-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.8, output: 7.2, cache_read: 0.45 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-5-chat": { - id: "openai/gpt-5-chat", - name: "GPT-5-Chat", - family: "gpt-codex", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 9, cache_read: 0.11 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/o3": { - id: "openai/o3", - name: "o3", - family: "o", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.8, output: 7.2, cache_read: 0.45 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-4-classic": { - id: "openai/gpt-4-classic", - name: "GPT-4-Classic", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-03-25", - last_updated: "2024-03-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 27, output: 54 }, - limit: { context: 8192, output: 4096 }, - }, - "openai/gpt-5.3-instant": { - id: "openai/gpt-5.3-instant", - name: "GPT-5.3-Instant", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2026-03-03", - last_updated: "2026-03-03", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.6, output: 13, cache_read: 0.16 }, - limit: { context: 128000, input: 111616, output: 16384 }, - }, - "openai/gpt-image-1.5": { - id: "openai/gpt-image-1.5", - name: "gpt-image-1.5", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-12-16", - last_updated: "2025-12-16", - modalities: { input: ["text", "image"], output: ["image"] }, - open_weights: false, - limit: { context: 128000, output: 0 }, - }, - "openai/gpt-4.1-nano": { - id: "openai/gpt-4.1-nano", - name: "GPT-4.1-nano", - family: "gpt-nano", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-04-15", - last_updated: "2025-04-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.09, output: 0.36, cache_read: 0.022 }, - limit: { context: 1047576, output: 32768 }, - }, - "openai/gpt-image-1-mini": { - id: "openai/gpt-image-1-mini", - name: "GPT-Image-1-Mini", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-08-26", - last_updated: "2025-08-26", - modalities: { input: ["text", "image"], output: ["image"] }, - open_weights: false, - limit: { context: 0, output: 0 }, - }, - "openai/sora-2-pro": { - id: "openai/sora-2-pro", - name: "Sora-2-Pro", - family: "sora", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-10-06", - last_updated: "2025-10-06", - modalities: { input: ["text", "image"], output: ["video"] }, - open_weights: false, - limit: { context: 0, output: 0 }, - }, - "openai/gpt-3.5-turbo": { - id: "openai/gpt-3.5-turbo", - name: "GPT-3.5-Turbo", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2023-09-13", - last_updated: "2023-09-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.45, output: 1.4 }, - limit: { context: 16384, output: 2048 }, - }, - "openai/gpt-5.1-codex-mini": { - id: "openai/gpt-5.1-codex-mini", - name: "GPT-5.1-Codex-Mini", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-11-12", - last_updated: "2025-11-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.22, output: 1.8, cache_read: 0.022 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.2": { - id: "openai/gpt-5.2", - name: "GPT-5.2", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-12-08", - last_updated: "2025-12-08", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.6, output: 13, cache_read: 0.16 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-4.1": { - id: "openai/gpt-4.1", - name: "GPT-4.1", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.8, output: 7.2, cache_read: 0.45 }, - limit: { context: 1047576, output: 32768 }, - }, - "openai/gpt-4o-aug": { - id: "openai/gpt-4o-aug", - name: "GPT-4o-Aug", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-11-21", - last_updated: "2024-11-21", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.2, output: 9, cache_read: 1.1 }, - limit: { context: 128000, output: 8192 }, - }, - "openai/o3-pro": { - id: "openai/o3-pro", - name: "o3-pro", - family: "o-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-06-10", - last_updated: "2025-06-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 18, output: 72 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-4-turbo": { - id: "openai/gpt-4-turbo", - name: "GPT-4-Turbo", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2023-09-13", - last_updated: "2023-09-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 9, output: 27 }, - limit: { context: 128000, output: 4096 }, - }, - "openai/gpt-image-1": { - id: "openai/gpt-image-1", - name: "GPT-Image-1", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-03-31", - last_updated: "2025-03-31", - modalities: { input: ["text", "image"], output: ["image"] }, - open_weights: false, - limit: { context: 128000, output: 0 }, - }, - "openai/sora-2": { - id: "openai/sora-2", - name: "Sora-2", - family: "sora", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-10-06", - last_updated: "2025-10-06", - modalities: { input: ["text", "image"], output: ["video"] }, - open_weights: false, - limit: { context: 0, output: 0 }, - }, - "openai/gpt-3.5-turbo-raw": { - id: "openai/gpt-3.5-turbo-raw", - name: "GPT-3.5-Turbo-Raw", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2023-09-27", - last_updated: "2023-09-27", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.45, output: 1.4 }, - limit: { context: 4524, output: 2048 }, - }, - "openai/gpt-4o-mini-search": { - id: "openai/gpt-4o-mini-search", - name: "GPT-4o-mini-Search", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-03-11", - last_updated: "2025-03-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.54 }, - limit: { context: 128000, output: 8192 }, - }, - "openai/gpt-5": { - id: "openai/gpt-5", - name: "GPT-5", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 9, cache_read: 0.11 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/o4-mini": { - id: "openai/o4-mini", - name: "o4-mini", - family: "o-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.99, output: 4, cache_read: 0.25 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-4.1-mini": { - id: "openai/gpt-4.1-mini", - name: "GPT-4.1-mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-04-15", - last_updated: "2025-04-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.36, output: 1.4, cache_read: 0.09 }, - limit: { context: 1047576, output: 32768 }, - }, - "openai/gpt-5.4": { - id: "openai/gpt-5.4", - name: "GPT-5.4", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2026-02-26", - last_updated: "2026-02-26", - modalities: { input: ["text", "image", "pdf"], output: ["image"] }, - open_weights: false, - cost: { input: 2.2, output: 14, cache_read: 0.22 }, - limit: { context: 1050000, input: 922000, output: 128000 }, - }, - "openai/gpt-5.4-pro": { - id: "openai/gpt-5.4-pro", - name: "GPT-5.4-Pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image"], output: ["image"] }, - open_weights: false, - cost: { input: 27, output: 160 }, - limit: { context: 1050000, input: 922000, output: 128000 }, - }, - "openai/o1-pro": { - id: "openai/o1-pro", - name: "o1-pro", - family: "o-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-03-19", - last_updated: "2025-03-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 140, output: 540 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-5.1-codex": { - id: "openai/gpt-5.1-codex", - name: "GPT-5.1-Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-11-12", - last_updated: "2025-11-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 9, cache_read: 0.11 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/chatgpt-4o-latest": { - id: "openai/chatgpt-4o-latest", - name: "ChatGPT-4o-Latest", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-08-14", - last_updated: "2024-08-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 4.5, output: 14 }, - limit: { context: 128000, output: 8192 }, - }, - "openai/gpt-5.2-pro": { - id: "openai/gpt-5.2-pro", - name: "GPT-5.2-Pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 19, output: 150 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/dall-e-3": { - id: "openai/dall-e-3", - name: "DALL-E-3", - family: "dall-e", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2023-11-06", - last_updated: "2023-11-06", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 800, output: 0 }, - }, - "openai/o3-mini": { - id: "openai/o3-mini", - name: "o3-mini", - family: "o-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-01-31", - last_updated: "2025-01-31", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.99, output: 4 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-4o-search": { - id: "openai/gpt-4o-search", - name: "GPT-4o-Search", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-03-11", - last_updated: "2025-03-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.2, output: 9 }, - limit: { context: 128000, output: 8192 }, - }, - "openai/gpt-5-mini": { - id: "openai/gpt-5-mini", - name: "GPT-5-mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-06-25", - last_updated: "2025-06-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.22, output: 1.8, cache_read: 0.022 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.4-nano": { - id: "openai/gpt-5.4-nano", - name: "GPT-5.4-Nano", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2026-03-11", - last_updated: "2026-03-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.18, output: 1.1, cache_read: 0.018 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "openai/gpt-4-classic-0314": { - id: "openai/gpt-4-classic-0314", - name: "GPT-4-Classic-0314", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-08-26", - last_updated: "2024-08-26", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 27, output: 54 }, - limit: { context: 8192, output: 4096 }, - }, - "openai/gpt-5-nano": { - id: "openai/gpt-5-nano", - name: "GPT-5-nano", - family: "gpt-nano", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.045, output: 0.36, cache_read: 0.0045 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-3.5-turbo-instruct": { - id: "openai/gpt-3.5-turbo-instruct", - name: "GPT-3.5-Turbo-Instruct", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2023-09-20", - last_updated: "2023-09-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.4, output: 1.8 }, - limit: { context: 3500, output: 1024 }, - }, - "openai/gpt-5.2-instant": { - id: "openai/gpt-5.2-instant", - name: "GPT-5.2-Instant", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.6, output: 13, cache_read: 0.16 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/o3-mini-high": { - id: "openai/o3-mini-high", - name: "o3-mini-high", - family: "o-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-01-31", - last_updated: "2025-01-31", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.99, output: 4 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-4o": { - id: "openai/gpt-4o", - name: "GPT-4o", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-05-13", - last_updated: "2024-05-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 8192 }, - }, - "openai/gpt-5.4-mini": { - id: "openai/gpt-5.4-mini", - name: "GPT-5.4-Mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2026-03-12", - last_updated: "2026-03-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.68, output: 4, cache_read: 0.068 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "openai/gpt-5.1-instant": { - id: "openai/gpt-5.1-instant", - name: "GPT-5.1-Instant", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-11-12", - last_updated: "2025-11-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 9, cache_read: 0.11 }, - limit: { context: 128000, output: 16384 }, - }, - "topazlabs-co/topazlabs": { - id: "topazlabs-co/topazlabs", - name: "TopazLabs", - family: "topazlabs", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-12-03", - last_updated: "2024-12-03", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 204, output: 0 }, - }, - "runwayml/runway": { - id: "runwayml/runway", - name: "Runway", - family: "runway", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-10-11", - last_updated: "2024-10-11", - modalities: { input: ["text", "image"], output: ["video"] }, - open_weights: false, - limit: { context: 256, output: 0 }, - }, - "runwayml/runway-gen-4-turbo": { - id: "runwayml/runway-gen-4-turbo", - name: "Runway-Gen-4-Turbo", - family: "runway", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-05-09", - last_updated: "2025-05-09", - modalities: { input: ["text", "image"], output: ["video"] }, - open_weights: false, - limit: { context: 256, output: 0 }, - }, - "anthropic/claude-sonnet-3.5-june": { - id: "anthropic/claude-sonnet-3.5-june", - name: "Claude-Sonnet-3.5-June", - family: "claude-sonnet", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-11-18", - last_updated: "2024-11-18", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.6, output: 13, cache_read: 0.26, cache_write: 3.2 }, - limit: { context: 189096, output: 8192 }, - }, - "anthropic/claude-opus-4.1": { - id: "anthropic/claude-opus-4.1", - name: "Claude-Opus-4.1", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 13, output: 64, cache_read: 1.3, cache_write: 16 }, - limit: { context: 196608, output: 32000 }, - }, - "anthropic/claude-sonnet-3.5": { - id: "anthropic/claude-sonnet-3.5", - name: "Claude-Sonnet-3.5", - family: "claude-sonnet", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-06-05", - last_updated: "2024-06-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.6, output: 13, cache_read: 0.26, cache_write: 3.2 }, - limit: { context: 189096, output: 8192 }, - }, - "anthropic/claude-haiku-3": { - id: "anthropic/claude-haiku-3", - name: "Claude-Haiku-3", - family: "claude-haiku", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-03-09", - last_updated: "2024-03-09", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.21, output: 1.1, cache_read: 0.021, cache_write: 0.26 }, - limit: { context: 189096, output: 8192 }, - }, - "anthropic/claude-haiku-3.5": { - id: "anthropic/claude-haiku-3.5", - name: "Claude-Haiku-3.5", - family: "claude-haiku", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-10-01", - last_updated: "2024-10-01", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.68, output: 3.4, cache_read: 0.068, cache_write: 0.85 }, - limit: { context: 189096, output: 8192 }, - }, - "anthropic/claude-sonnet-4.6": { - id: "anthropic/claude-sonnet-4.6", - name: "Claude-Sonnet-4.6", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.6, output: 13, cache_read: 0.26, cache_write: 3.2 }, - limit: { context: 983040, output: 128000 }, - }, - "anthropic/claude-haiku-4.5": { - id: "anthropic/claude-haiku-4.5", - name: "Claude-Haiku-4.5", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.85, output: 4.3, cache_read: 0.085, cache_write: 1.1 }, - limit: { context: 192000, output: 64000 }, - }, - "anthropic/claude-opus-4.5": { - id: "anthropic/claude-opus-4.5", - name: "Claude-Opus-4.5", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-11-21", - last_updated: "2025-11-21", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 4.3, output: 21, cache_read: 0.43, cache_write: 5.3 }, - limit: { context: 196608, output: 64000 }, - }, - "anthropic/claude-opus-4": { - id: "anthropic/claude-opus-4", - name: "Claude-Opus-4", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-05-21", - last_updated: "2025-05-21", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 13, output: 64, cache_read: 1.3, cache_write: 16 }, - limit: { context: 192512, output: 28672 }, - }, - "anthropic/claude-sonnet-4": { - id: "anthropic/claude-sonnet-4", - name: "Claude-Sonnet-4", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-05-21", - last_updated: "2025-05-21", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.6, output: 13, cache_read: 0.26, cache_write: 3.2 }, - limit: { context: 983040, output: 64000 }, - }, - "anthropic/claude-sonnet-4.5": { - id: "anthropic/claude-sonnet-4.5", - name: "Claude-Sonnet-4.5", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-09-26", - last_updated: "2025-09-26", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.6, output: 13, cache_read: 0.26, cache_write: 3.2 }, - limit: { context: 983040, output: 32768 }, - }, - "anthropic/claude-opus-4.6": { - id: "anthropic/claude-opus-4.6", - name: "Claude-Opus-4.6", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2026-02-04", - last_updated: "2026-02-04", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 4.3, output: 21, cache_read: 0.43, cache_write: 5.3 }, - limit: { context: 983040, output: 128000 }, - }, - "anthropic/claude-sonnet-3.7": { - id: "anthropic/claude-sonnet-3.7", - name: "Claude-Sonnet-3.7", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.6, output: 13, cache_read: 0.26, cache_write: 3.2 }, - limit: { context: 196608, output: 128000 }, - }, - "trytako/tako": { - id: "trytako/tako", - name: "Tako", - family: "tako", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-08-15", - last_updated: "2024-08-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 2048, output: 0 }, - }, - "elevenlabs/elevenlabs-music": { - id: "elevenlabs/elevenlabs-music", - name: "ElevenLabs-Music", - family: "elevenlabs", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-08-29", - last_updated: "2025-08-29", - modalities: { input: ["text"], output: ["audio"] }, - open_weights: false, - limit: { context: 2000, output: 0 }, - }, - "elevenlabs/elevenlabs-v3": { - id: "elevenlabs/elevenlabs-v3", - name: "ElevenLabs-v3", - family: "elevenlabs", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-06-05", - last_updated: "2025-06-05", - modalities: { input: ["text"], output: ["audio"] }, - open_weights: false, - limit: { context: 128000, output: 0 }, - }, - "elevenlabs/elevenlabs-v2.5-turbo": { - id: "elevenlabs/elevenlabs-v2.5-turbo", - name: "ElevenLabs-v2.5-Turbo", - family: "elevenlabs", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-10-28", - last_updated: "2024-10-28", - modalities: { input: ["text"], output: ["audio"] }, - open_weights: false, - limit: { context: 128000, output: 0 }, - }, - "cerebras/llama-3.1-8b-cs": { - id: "cerebras/llama-3.1-8b-cs", - name: "llama-3.1-8b-cs", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-05-13", - last_updated: "2025-05-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 0, output: 0 }, - }, - "cerebras/gpt-oss-120b-cs": { - id: "cerebras/gpt-oss-120b-cs", - name: "gpt-oss-120b-cs", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-08-06", - last_updated: "2025-08-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 0, output: 0 }, - }, - "cerebras/qwen3-235b-2507-cs": { - id: "cerebras/qwen3-235b-2507-cs", - name: "qwen3-235b-2507-cs", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-08-06", - last_updated: "2025-08-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 0, output: 0 }, - }, - "cerebras/llama-3.3-70b-cs": { - id: "cerebras/llama-3.3-70b-cs", - name: "llama-3.3-70b-cs", - attachment: true, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-05-13", - last_updated: "2025-05-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 0, output: 0 }, - }, - "cerebras/qwen3-32b-cs": { - id: "cerebras/qwen3-32b-cs", - name: "qwen3-32b-cs", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-05-15", - last_updated: "2025-05-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 0, output: 0 }, - }, - "xai/grok-4-fast-reasoning": { - id: "xai/grok-4-fast-reasoning", - name: "Grok-4-Fast-Reasoning", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-09-16", - last_updated: "2025-09-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 128000 }, - }, - "xai/grok-3": { - id: "xai/grok-3", - name: "Grok 3", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-04-11", - last_updated: "2025-04-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.75 }, - limit: { context: 131072, output: 8192 }, - }, - "xai/grok-code-fast-1": { - id: "xai/grok-code-fast-1", - name: "Grok Code Fast 1", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-08-22", - last_updated: "2025-08-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.5, cache_read: 0.02 }, - limit: { context: 256000, output: 128000 }, - }, - "xai/grok-4.1-fast-reasoning": { - id: "xai/grok-4.1-fast-reasoning", - name: "Grok-4.1-Fast-Reasoning", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-11-19", - last_updated: "2025-11-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - limit: { context: 2000000, output: 30000 }, - }, - "xai/grok-4": { - id: "xai/grok-4", - name: "Grok-4", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-07-10", - last_updated: "2025-07-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.75 }, - limit: { context: 256000, output: 128000 }, - }, - "xai/grok-4.1-fast-non-reasoning": { - id: "xai/grok-4.1-fast-non-reasoning", - name: "Grok-4.1-Fast-Non-Reasoning", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-11-19", - last_updated: "2025-11-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - limit: { context: 2000000, output: 30000 }, - }, - "xai/grok-3-mini": { - id: "xai/grok-3-mini", - name: "Grok 3 Mini", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-04-11", - last_updated: "2025-04-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.5, cache_read: 0.075 }, - limit: { context: 131072, output: 8192 }, - }, - "xai/grok-4-fast-non-reasoning": { - id: "xai/grok-4-fast-non-reasoning", - name: "Grok-4-Fast-Non-Reasoning", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-09-16", - last_updated: "2025-09-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 128000 }, - }, - }, - }, - "amazon-bedrock": { - id: "amazon-bedrock", - env: ["AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY", "AWS_REGION", "AWS_BEARER_TOKEN_BEDROCK"], - npm: "@ai-sdk/amazon-bedrock", - name: "Amazon Bedrock", - doc: "https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html", - models: { - "deepseek.r1-v1:0": { - id: "deepseek.r1-v1:0", - name: "DeepSeek-R1", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-01-20", - last_updated: "2025-05-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.35, output: 5.4 }, - limit: { context: 128000, output: 32768 }, - }, - "meta.llama3-1-70b-instruct-v1:0": { - id: "meta.llama3-1-70b-instruct-v1:0", - name: "Llama 3.1 70B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.72, output: 0.72 }, - limit: { context: 128000, output: 4096 }, - }, - "qwen.qwen3-coder-480b-a35b-v1:0": { - id: "qwen.qwen3-coder-480b-a35b-v1:0", - name: "Qwen3 Coder 480B A35B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-09-18", - last_updated: "2025-09-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.22, output: 1.8 }, - limit: { context: 131072, output: 65536 }, - }, - "eu.anthropic.claude-sonnet-4-6": { - id: "eu.anthropic.claude-sonnet-4-6", - name: "Claude Sonnet 4.6 (EU)", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2026-02-17", - last_updated: "2026-03-18", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 1000000, output: 64000 }, - }, - "eu.anthropic.claude-haiku-4-5-20251001-v1:0": { - id: "eu.anthropic.claude-haiku-4-5-20251001-v1:0", - name: "Claude Haiku 4.5 (EU)", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-02-28", - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 200000, output: 64000 }, - }, - "mistral.mistral-large-3-675b-instruct": { - id: "mistral.mistral-large-3-675b-instruct", - name: "Mistral Large 3", - family: "mistral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-12-02", - last_updated: "2025-12-02", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 1.5 }, - limit: { context: 256000, output: 8192 }, - }, - "openai.gpt-oss-120b-1:0": { - id: "openai.gpt-oss-120b-1:0", - name: "gpt-oss-120b", - family: "gpt-oss", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 128000, output: 4096 }, - }, - "us.anthropic.claude-opus-4-20250514-v1:0": { - id: "us.anthropic.claude-opus-4-20250514-v1:0", - name: "Claude Opus 4 (US)", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "nvidia.nemotron-nano-12b-v2": { - id: "nvidia.nemotron-nano-12b-v2", - name: "NVIDIA Nemotron Nano 12B v2 VL BF16", - family: "nemotron", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.6 }, - limit: { context: 128000, output: 4096 }, - }, - "anthropic.claude-3-7-sonnet-20250219-v1:0": { - id: "anthropic.claude-3-7-sonnet-20250219-v1:0", - name: "Claude Sonnet 3.7", - family: "claude-sonnet", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 8192 }, - }, - "anthropic.claude-sonnet-4-6": { - id: "anthropic.claude-sonnet-4-6", - name: "Claude Sonnet 4.6", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2026-02-17", - last_updated: "2026-03-18", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 1000000, output: 64000 }, - }, - "minimax.minimax-m2.1": { - id: "minimax.minimax-m2.1", - name: "MiniMax M2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 204800, output: 131072 }, - }, - "global.anthropic.claude-opus-4-5-20251101-v1:0": { - id: "global.anthropic.claude-opus-4-5-20251101-v1:0", - name: "Claude Opus 4.5 (Global)", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-24", - last_updated: "2025-08-01", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 64000 }, - }, - "mistral.ministral-3-8b-instruct": { - id: "mistral.ministral-3-8b-instruct", - name: "Ministral 3 8B", - family: "ministral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.15 }, - limit: { context: 128000, output: 4096 }, - }, - "openai.gpt-oss-safeguard-20b": { - id: "openai.gpt-oss-safeguard-20b", - name: "GPT OSS Safeguard 20B", - family: "gpt-oss", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.07, output: 0.2 }, - limit: { context: 128000, output: 4096 }, - }, - "amazon.nova-lite-v1:0": { - id: "amazon.nova-lite-v1:0", - name: "Nova Lite", - family: "nova-lite", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12-03", - last_updated: "2024-12-03", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.06, output: 0.24, cache_read: 0.015 }, - limit: { context: 300000, output: 8192 }, - }, - "eu.anthropic.claude-sonnet-4-5-20250929-v1:0": { - id: "eu.anthropic.claude-sonnet-4-5-20250929-v1:0", - name: "Claude Sonnet 4.5 (EU)", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "mistral.pixtral-large-2502-v1:0": { - id: "mistral.pixtral-large-2502-v1:0", - name: "Pixtral Large (25.02)", - family: "mistral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-04-08", - last_updated: "2025-04-08", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6 }, - limit: { context: 128000, output: 8192 }, - }, - "google.gemma-3-12b-it": { - id: "google.gemma-3-12b-it", - name: "Google Gemma 3 12B", - family: "gemma", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-12", - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.049999999999999996, output: 0.09999999999999999 }, - limit: { context: 131072, output: 8192 }, - }, - "meta.llama3-1-8b-instruct-v1:0": { - id: "meta.llama3-1-8b-instruct-v1:0", - name: "Llama 3.1 8B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.22, output: 0.22 }, - limit: { context: 128000, output: 4096 }, - }, - "mistral.devstral-2-123b": { - id: "mistral.devstral-2-123b", - name: "Devstral 2 123B", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2026-02-17", - last_updated: "2026-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 2 }, - limit: { context: 256000, output: 8192 }, - }, - "anthropic.claude-sonnet-4-5-20250929-v1:0": { - id: "anthropic.claude-sonnet-4-5-20250929-v1:0", - name: "Claude Sonnet 4.5", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "meta.llama4-maverick-17b-instruct-v1:0": { - id: "meta.llama4-maverick-17b-instruct-v1:0", - name: "Llama 4 Maverick 17B Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.24, output: 0.97 }, - limit: { context: 1000000, output: 16384 }, - }, - "mistral.ministral-3-14b-instruct": { - id: "mistral.ministral-3-14b-instruct", - name: "Ministral 14B 3.0", - family: "ministral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 128000, output: 4096 }, - }, - "minimax.minimax-m2": { - id: "minimax.minimax-m2", - name: "MiniMax M2", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-10-27", - last_updated: "2025-10-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 204608, output: 128000 }, - }, - "amazon.nova-micro-v1:0": { - id: "amazon.nova-micro-v1:0", - name: "Nova Micro", - family: "nova-micro", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12-03", - last_updated: "2024-12-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.035, output: 0.14, cache_read: 0.00875 }, - limit: { context: 128000, output: 8192 }, - }, - "anthropic.claude-3-5-sonnet-20241022-v2:0": { - id: "anthropic.claude-3-5-sonnet-20241022-v2:0", - name: "Claude Sonnet 3.5 v2", - family: "claude-sonnet", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 8192 }, - }, - "nvidia.nemotron-nano-3-30b": { - id: "nvidia.nemotron-nano-3-30b", - name: "NVIDIA Nemotron Nano 3 30B", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.06, output: 0.24 }, - limit: { context: 128000, output: 4096 }, - }, - "anthropic.claude-sonnet-4-20250514-v1:0": { - id: "anthropic.claude-sonnet-4-20250514-v1:0", - name: "Claude Sonnet 4", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "qwen.qwen3-vl-235b-a22b": { - id: "qwen.qwen3-vl-235b-a22b", - name: "Qwen/Qwen3-VL-235B-A22B-Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-04", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.5 }, - limit: { context: 262000, output: 262000 }, - }, - "global.anthropic.claude-opus-4-6-v1": { - id: "global.anthropic.claude-opus-4-6-v1", - name: "Claude Opus 4.6 (Global)", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2026-02-05", - last_updated: "2026-03-18", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 1000000, output: 128000 }, - }, - "writer.palmyra-x4-v1:0": { - id: "writer.palmyra-x4-v1:0", - name: "Palmyra X4", - family: "palmyra", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-04-28", - last_updated: "2025-04-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10 }, - limit: { context: 122880, output: 8192 }, - }, - "minimax.minimax-m2.5": { - id: "minimax.minimax-m2.5", - name: "MiniMax M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 196608, output: 98304 }, - }, - "amazon.nova-pro-v1:0": { - id: "amazon.nova-pro-v1:0", - name: "Nova Pro", - family: "nova-pro", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12-03", - last_updated: "2024-12-03", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 3.2, cache_read: 0.2 }, - limit: { context: 300000, output: 8192 }, - }, - "us.anthropic.claude-opus-4-5-20251101-v1:0": { - id: "us.anthropic.claude-opus-4-5-20251101-v1:0", - name: "Claude Opus 4.5 (US)", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-24", - last_updated: "2025-08-01", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 64000 }, - }, - "meta.llama3-2-90b-instruct-v1:0": { - id: "meta.llama3-2-90b-instruct-v1:0", - name: "Llama 3.2 90B Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-09-25", - last_updated: "2024-09-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.72, output: 0.72 }, - limit: { context: 128000, output: 4096 }, - }, - "us.anthropic.claude-opus-4-6-v1": { - id: "us.anthropic.claude-opus-4-6-v1", - name: "Claude Opus 4.6 (US)", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2026-02-05", - last_updated: "2026-03-18", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 1000000, output: 128000 }, - }, - "google.gemma-3-4b-it": { - id: "google.gemma-3-4b-it", - name: "Gemma 3 4B IT", - family: "gemma", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.04, output: 0.08 }, - limit: { context: 128000, output: 4096 }, - }, - "anthropic.claude-opus-4-6-v1": { - id: "anthropic.claude-opus-4-6-v1", - name: "Claude Opus 4.6", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2026-02-05", - last_updated: "2026-03-18", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 1000000, output: 128000 }, - }, - "zai.glm-4.7-flash": { - id: "zai.glm-4.7-flash", - name: "GLM-4.7-Flash", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.4 }, - limit: { context: 200000, output: 131072 }, - }, - "anthropic.claude-opus-4-20250514-v1:0": { - id: "anthropic.claude-opus-4-20250514-v1:0", - name: "Claude Opus 4", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "global.anthropic.claude-sonnet-4-6": { - id: "global.anthropic.claude-sonnet-4-6", - name: "Claude Sonnet 4.6 (Global)", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2026-02-17", - last_updated: "2026-03-18", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 1000000, output: 64000 }, - }, - "meta.llama3-2-1b-instruct-v1:0": { - id: "meta.llama3-2-1b-instruct-v1:0", - name: "Llama 3.2 1B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-09-25", - last_updated: "2024-09-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.1 }, - limit: { context: 131000, output: 4096 }, - }, - "anthropic.claude-opus-4-1-20250805-v1:0": { - id: "anthropic.claude-opus-4-1-20250805-v1:0", - name: "Claude Opus 4.1", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "meta.llama4-scout-17b-instruct-v1:0": { - id: "meta.llama4-scout-17b-instruct-v1:0", - name: "Llama 4 Scout 17B Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.17, output: 0.66 }, - limit: { context: 3500000, output: 16384 }, - }, - "deepseek.v3.2": { - id: "deepseek.v3.2", - name: "DeepSeek-V3.2", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2026-02-06", - last_updated: "2026-02-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.62, output: 1.85 }, - limit: { context: 163840, output: 81920 }, - }, - "deepseek.v3-v1:0": { - id: "deepseek.v3-v1:0", - name: "DeepSeek-V3.1", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-09-18", - last_updated: "2025-09-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.58, output: 1.68 }, - limit: { context: 163840, output: 81920 }, - }, - "mistral.ministral-3-3b-instruct": { - id: "mistral.ministral-3-3b-instruct", - name: "Ministral 3 3B", - family: "ministral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-12-02", - last_updated: "2025-12-02", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.1 }, - limit: { context: 256000, output: 8192 }, - }, - "global.anthropic.claude-haiku-4-5-20251001-v1:0": { - id: "global.anthropic.claude-haiku-4-5-20251001-v1:0", - name: "Claude Haiku 4.5 (Global)", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-02-28", - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 200000, output: 64000 }, - }, - "nvidia.nemotron-nano-9b-v2": { - id: "nvidia.nemotron-nano-9b-v2", - name: "NVIDIA Nemotron Nano 9B v2", - family: "nemotron", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.06, output: 0.23 }, - limit: { context: 128000, output: 4096 }, - }, - "writer.palmyra-x5-v1:0": { - id: "writer.palmyra-x5-v1:0", - name: "Palmyra X5", - family: "palmyra", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-04-28", - last_updated: "2025-04-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 6 }, - limit: { context: 1040000, output: 8192 }, - }, - "meta.llama3-3-70b-instruct-v1:0": { - id: "meta.llama3-3-70b-instruct-v1:0", - name: "Llama 3.3 70B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.72, output: 0.72 }, - limit: { context: 128000, output: 4096 }, - }, - "zai.glm-4.7": { - id: "zai.glm-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2 }, - limit: { context: 204800, output: 131072 }, - }, - "moonshot.kimi-k2-thinking": { - id: "moonshot.kimi-k2-thinking", - name: "Kimi K2 Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - release_date: "2025-12-02", - last_updated: "2025-12-02", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5 }, - limit: { context: 256000, output: 256000 }, - }, - "anthropic.claude-3-haiku-20240307-v1:0": { - id: "anthropic.claude-3-haiku-20240307-v1:0", - name: "Claude Haiku 3", - family: "claude-haiku", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-02", - release_date: "2024-03-13", - last_updated: "2024-03-13", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1.25 }, - limit: { context: 200000, output: 4096 }, - }, - "us.anthropic.claude-sonnet-4-5-20250929-v1:0": { - id: "us.anthropic.claude-sonnet-4-5-20250929-v1:0", - name: "Claude Sonnet 4.5 (US)", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "openai.gpt-oss-20b-1:0": { - id: "openai.gpt-oss-20b-1:0", - name: "gpt-oss-20b", - family: "gpt-oss", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.07, output: 0.3 }, - limit: { context: 128000, output: 4096 }, - }, - "us.anthropic.claude-sonnet-4-6": { - id: "us.anthropic.claude-sonnet-4-6", - name: "Claude Sonnet 4.6 (US)", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2026-02-17", - last_updated: "2026-03-18", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 1000000, output: 64000 }, - }, - "meta.llama3-2-11b-instruct-v1:0": { - id: "meta.llama3-2-11b-instruct-v1:0", - name: "Llama 3.2 11B Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-09-25", - last_updated: "2024-09-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.16, output: 0.16 }, - limit: { context: 128000, output: 4096 }, - }, - "eu.anthropic.claude-opus-4-5-20251101-v1:0": { - id: "eu.anthropic.claude-opus-4-5-20251101-v1:0", - name: "Claude Opus 4.5 (EU)", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-24", - last_updated: "2025-08-01", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 64000 }, - }, - "meta.llama3-1-405b-instruct-v1:0": { - id: "meta.llama3-1-405b-instruct-v1:0", - name: "Llama 3.1 405B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.4, output: 2.4 }, - limit: { context: 128000, output: 4096 }, - }, - "qwen.qwen3-next-80b-a3b": { - id: "qwen.qwen3-next-80b-a3b", - name: "Qwen/Qwen3-Next-80B-A3B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 1.4 }, - limit: { context: 262000, output: 262000 }, - }, - "us.anthropic.claude-sonnet-4-20250514-v1:0": { - id: "us.anthropic.claude-sonnet-4-20250514-v1:0", - name: "Claude Sonnet 4 (US)", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "qwen.qwen3-coder-30b-a3b-v1:0": { - id: "qwen.qwen3-coder-30b-a3b-v1:0", - name: "Qwen3 Coder 30B A3B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-09-18", - last_updated: "2025-09-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 262144, output: 131072 }, - }, - "us.anthropic.claude-haiku-4-5-20251001-v1:0": { - id: "us.anthropic.claude-haiku-4-5-20251001-v1:0", - name: "Claude Haiku 4.5 (US)", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-02-28", - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 200000, output: 64000 }, - }, - "qwen.qwen3-235b-a22b-2507-v1:0": { - id: "qwen.qwen3-235b-a22b-2507-v1:0", - name: "Qwen3 235B A22B 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-09-18", - last_updated: "2025-09-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.22, output: 0.88 }, - limit: { context: 262144, output: 131072 }, - }, - "openai.gpt-oss-safeguard-120b": { - id: "openai.gpt-oss-safeguard-120b", - name: "GPT OSS Safeguard 120B", - family: "gpt-oss", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 128000, output: 4096 }, - }, - "anthropic.claude-3-5-sonnet-20240620-v1:0": { - id: "anthropic.claude-3-5-sonnet-20240620-v1:0", - name: "Claude Sonnet 3.5", - family: "claude-sonnet", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-06-20", - last_updated: "2024-06-20", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 8192 }, - }, - "mistral.voxtral-small-24b-2507": { - id: "mistral.voxtral-small-24b-2507", - name: "Voxtral Small 24B 2507", - family: "mistral", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-07-01", - last_updated: "2025-07-01", - modalities: { input: ["text", "audio"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.35 }, - limit: { context: 32000, output: 8192 }, - }, - "anthropic.claude-haiku-4-5-20251001-v1:0": { - id: "anthropic.claude-haiku-4-5-20251001-v1:0", - name: "Claude Haiku 4.5", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-02-28", - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 200000, output: 64000 }, - }, - "meta.llama3-2-3b-instruct-v1:0": { - id: "meta.llama3-2-3b-instruct-v1:0", - name: "Llama 3.2 3B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-09-25", - last_updated: "2024-09-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.15 }, - limit: { context: 131000, output: 4096 }, - }, - "google.gemma-3-27b-it": { - id: "google.gemma-3-27b-it", - name: "Google Gemma 3 27B Instruct", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-07-27", - last_updated: "2025-07-27", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.12, output: 0.2 }, - limit: { context: 202752, output: 8192 }, - }, - "us.anthropic.claude-opus-4-1-20250805-v1:0": { - id: "us.anthropic.claude-opus-4-1-20250805-v1:0", - name: "Claude Opus 4.1 (US)", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "global.anthropic.claude-sonnet-4-20250514-v1:0": { - id: "global.anthropic.claude-sonnet-4-20250514-v1:0", - name: "Claude Sonnet 4 (Global)", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic.claude-3-5-haiku-20241022-v1:0": { - id: "anthropic.claude-3-5-haiku-20241022-v1:0", - name: "Claude Haiku 3.5", - family: "claude-haiku", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, - limit: { context: 200000, output: 8192 }, - }, - "zai.glm-5": { - id: "zai.glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3.2 }, - limit: { context: 202752, output: 101376 }, - }, - "eu.anthropic.claude-sonnet-4-20250514-v1:0": { - id: "eu.anthropic.claude-sonnet-4-20250514-v1:0", - name: "Claude Sonnet 4 (EU)", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic.claude-opus-4-5-20251101-v1:0": { - id: "anthropic.claude-opus-4-5-20251101-v1:0", - name: "Claude Opus 4.5", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-24", - last_updated: "2025-08-01", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 64000 }, - }, - "nvidia.nemotron-super-3-120b": { - id: "nvidia.nemotron-super-3-120b", - name: "NVIDIA Nemotron 3 Super 120B A12B", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-11", - last_updated: "2026-03-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.65 }, - limit: { context: 262144, output: 131072 }, - }, - "eu.anthropic.claude-opus-4-6-v1": { - id: "eu.anthropic.claude-opus-4-6-v1", - name: "Claude Opus 4.6 (EU)", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2026-02-05", - last_updated: "2026-03-18", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 1000000, output: 128000 }, - }, - "amazon.nova-premier-v1:0": { - id: "amazon.nova-premier-v1:0", - name: "Nova Premier", - family: "nova", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12-03", - last_updated: "2024-12-03", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 12.5 }, - limit: { context: 1000000, output: 16384 }, - }, - "amazon.nova-2-lite-v1:0": { - id: "amazon.nova-2-lite-v1:0", - name: "Nova 2 Lite", - family: "nova", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.33, output: 2.75 }, - limit: { context: 128000, output: 4096 }, - }, - "qwen.qwen3-32b-v1:0": { - id: "qwen.qwen3-32b-v1:0", - name: "Qwen3 32B (dense)", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-09-18", - last_updated: "2025-09-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 16384, output: 16384 }, - }, - "mistral.magistral-small-2509": { - id: "mistral.magistral-small-2509", - name: "Magistral Small 1.2", - family: "magistral", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-12-02", - last_updated: "2025-12-02", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 1.5 }, - limit: { context: 128000, output: 40000 }, - }, - "moonshotai.kimi-k2.5": { - id: "moonshotai.kimi-k2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - release_date: "2026-02-06", - last_updated: "2026-02-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3 }, - limit: { context: 256000, output: 256000 }, - }, - "mistral.voxtral-mini-3b-2507": { - id: "mistral.voxtral-mini-3b-2507", - name: "Voxtral Mini 3B 2507", - family: "mistral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["audio", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.04, output: 0.04 }, - limit: { context: 128000, output: 4096 }, - }, - "global.anthropic.claude-sonnet-4-5-20250929-v1:0": { - id: "global.anthropic.claude-sonnet-4-5-20250929-v1:0", - name: "Claude Sonnet 4.5 (Global)", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - }, - }, - "alibaba-coding-plan-cn": { - id: "alibaba-coding-plan-cn", - env: ["ALIBABA_CODING_PLAN_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://coding.dashscope.aliyuncs.com/v1", - name: "Alibaba Coding Plan (China)", - doc: "https://help.aliyun.com/zh/model-studio/coding-plan", - models: { - "glm-5": { - id: "glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 202752, output: 16384 }, - }, - "MiniMax-M2.5": { - id: "MiniMax-M2.5", - name: "MiniMax-M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 196608, output: 24576 }, - }, - "qwen3-coder-next": { - id: "qwen3-coder-next", - name: "Qwen3 Coder Next", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-03", - last_updated: "2026-02-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 262144, output: 65536 }, - }, - "kimi-k2.5": { - id: "kimi-k2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 262144, output: 32768 }, - }, - "qwen3-max-2026-01-23": { - id: "qwen3-max-2026-01-23", - name: "Qwen3 Max", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-01-23", - last_updated: "2026-01-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 262144, output: 32768 }, - }, - "glm-4.7": { - id: "glm-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 202752, output: 16384 }, - }, - "qwen3.5-plus": { - id: "qwen3.5-plus", - name: "Qwen3.5 Plus", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02-16", - last_updated: "2026-02-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 1000000, output: 65536 }, - }, - "qwen3-coder-plus": { - id: "qwen3-coder-plus", - name: "Qwen3 Coder Plus", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 1000000, output: 65536 }, - }, - }, - }, - "minimax-cn": { - id: "minimax-cn", - env: ["MINIMAX_API_KEY"], - npm: "@ai-sdk/anthropic", - api: "https://api.minimaxi.com/anthropic/v1", - name: "MiniMax (minimaxi.com)", - doc: "https://platform.minimaxi.com/docs/guides/quickstart", - models: { - "MiniMax-M2.5": { - id: "MiniMax-M2.5", - name: "MiniMax-M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.03, cache_write: 0.375 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMax-M2.7-highspeed": { - id: "MiniMax-M2.7-highspeed", - name: "MiniMax-M2.7-highspeed", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.4, cache_read: 0.06, cache_write: 0.375 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMax-M2": { - id: "MiniMax-M2", - name: "MiniMax-M2", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-10-27", - last_updated: "2025-10-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 196608, output: 128000 }, - }, - "MiniMax-M2.5-highspeed": { - id: "MiniMax-M2.5-highspeed", - name: "MiniMax-M2.5-highspeed", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-13", - last_updated: "2026-02-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.4, cache_read: 0.06, cache_write: 0.375 }, - limit: { context: 204800, output: 131072 }, + cost: { input: 0.114, output: 1.143 }, + limit: { context: 256000, output: 32000 }, }, "MiniMax-M2.1": { id: "MiniMax-M2.1", name: "MiniMax-M2.1", - family: "minimax", attachment: false, - reasoning: true, + reasoning: false, tool_call: true, temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", + release_date: "2025-12-19", + last_updated: "2025-12-19", modalities: { input: ["text"], output: ["text"] }, - open_weights: true, + open_weights: false, cost: { input: 0.3, output: 1.2 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMax-M2.7": { - id: "MiniMax-M2.7", - name: "MiniMax-M2.7", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.06, cache_write: 0.375 }, - limit: { context: 204800, output: 131072 }, - }, - }, - }, - bailing: { - id: "bailing", - env: ["BAILING_API_TOKEN"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.tbox.cn/api/llm/v1/chat/completions", - name: "Bailing", - doc: "https://alipaytbox.yuque.com/sxs0ba/ling/intro", - models: { - "Ring-1T": { - id: "Ring-1T", - name: "Ring-1T", - family: "ring", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2024-06", - release_date: "2025-10", - last_updated: "2025-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.57, output: 2.29 }, - limit: { context: 128000, output: 32000 }, - }, - "Ling-1T": { - id: "Ling-1T", - name: "Ling-1T", - family: "ling", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-06", - release_date: "2025-10", - last_updated: "2025-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.57, output: 2.29 }, - limit: { context: 128000, output: 32000 }, - }, - }, - }, - "azure-cognitive-services": { - id: "azure-cognitive-services", - env: ["AZURE_COGNITIVE_SERVICES_RESOURCE_NAME", "AZURE_COGNITIVE_SERVICES_API_KEY"], - npm: "@ai-sdk/azure", - name: "Azure Cognitive Services", - doc: "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", - models: { - "claude-opus-4-1": { - id: "claude-opus-4-1", - name: "Claude Opus 4.1", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - provider: { - npm: "@ai-sdk/anthropic", - api: "https://${AZURE_COGNITIVE_SERVICES_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", - }, - }, - "claude-opus-4-6": { - id: "claude-opus-4-6", - name: "Claude Opus 4.6", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 5, - output: 25, - cache_read: 0.5, - cache_write: 6.25, - context_over_200k: { input: 10, output: 37.5, cache_read: 1, cache_write: 12.5 }, - }, - limit: { context: 200000, output: 128000 }, - provider: { - npm: "@ai-sdk/anthropic", - api: "https://${AZURE_COGNITIVE_SERVICES_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", - }, - }, - "claude-haiku-4-5": { - id: "claude-haiku-4-5", - name: "Claude Haiku 4.5", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-02-31", - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 200000, output: 64000 }, - provider: { - npm: "@ai-sdk/anthropic", - api: "https://${AZURE_COGNITIVE_SERVICES_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", - }, - }, - "claude-opus-4-5": { - id: "claude-opus-4-5", - name: "Claude Opus 4.5", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-24", - last_updated: "2025-08-01", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 64000 }, - provider: { - npm: "@ai-sdk/anthropic", - api: "https://${AZURE_COGNITIVE_SERVICES_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", - }, - }, - "claude-sonnet-4-5": { - id: "claude-sonnet-4-5", - name: "Claude Sonnet 4.5", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - provider: { - npm: "@ai-sdk/anthropic", - api: "https://${AZURE_COGNITIVE_SERVICES_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", - }, - }, - "gpt-5.4-nano": { - id: "gpt-5.4-nano", - name: "GPT-5.4 Nano", - family: "gpt-nano", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-17", - last_updated: "2026-03-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.25, cache_read: 0.02 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "gpt-5.4-mini": { - id: "gpt-5.4-mini", - name: "GPT-5.4 Mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-17", - last_updated: "2026-03-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.75, output: 4.5, cache_read: 0.075 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "phi-3-small-8k-instruct": { - id: "phi-3-small-8k-instruct", - name: "Phi-3-small-instruct (8k)", - family: "phi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-04-23", - last_updated: "2024-04-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 8192, output: 2048 }, - }, - "gpt-4o": { - id: "gpt-4o", - name: "GPT-4o", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-09", - release_date: "2024-05-13", - last_updated: "2024-05-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10, cache_read: 1.25 }, - limit: { context: 128000, output: 16384 }, - }, - "codestral-2501": { - id: "codestral-2501", - name: "Codestral 25.01", - family: "codestral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-03", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.9 }, - limit: { context: 256000, output: 256000 }, - }, - "mistral-small-2503": { - id: "mistral-small-2503", - name: "Mistral Small 3.1", - family: "mistral-small", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-09", - release_date: "2025-03-01", - last_updated: "2025-03-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 128000, output: 32768 }, - }, - "o1-mini": { - id: "o1-mini", - name: "o1-mini", - family: "o-mini", - attachment: false, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2023-09", - release_date: "2024-09-12", - last_updated: "2024-09-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, - limit: { context: 128000, output: 65536 }, - }, - "gpt-3.5-turbo-instruct": { - id: "gpt-3.5-turbo-instruct", - name: "GPT-3.5 Turbo Instruct", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2021-08", - release_date: "2023-09-21", - last_updated: "2023-09-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.5, output: 2 }, - limit: { context: 4096, output: 4096 }, - }, - "gpt-5-nano": { - id: "gpt-5-nano", - name: "GPT-5 Nano", - family: "gpt-nano", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.4, cache_read: 0.01 }, - limit: { context: 272000, output: 128000 }, - }, - "gpt-4": { - id: "gpt-4", - name: "GPT-4", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-11", - release_date: "2023-03-14", - last_updated: "2023-03-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 60, output: 120 }, - limit: { context: 8192, output: 8192 }, - }, - "gpt-3.5-turbo-1106": { - id: "gpt-3.5-turbo-1106", - name: "GPT-3.5 Turbo 1106", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2021-08", - release_date: "2023-11-06", - last_updated: "2023-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 2 }, - limit: { context: 16384, output: 16384 }, - }, - "phi-4-reasoning": { - id: "phi-4-reasoning", - name: "Phi-4-reasoning", - family: "phi", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.125, output: 0.5 }, - limit: { context: 32000, output: 4096 }, - }, - "phi-3-mini-128k-instruct": { - id: "phi-3-mini-128k-instruct", - name: "Phi-3-mini-instruct (128k)", - family: "phi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-04-23", - last_updated: "2024-04-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.13, output: 0.52 }, - limit: { context: 128000, output: 4096 }, - }, - "gpt-5-mini": { - id: "gpt-5-mini", - name: "GPT-5 Mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.03 }, - limit: { context: 272000, output: 128000 }, - }, - "llama-4-maverick-17b-128e-instruct-fp8": { - id: "llama-4-maverick-17b-128e-instruct-fp8", - name: "Llama 4 Maverick 17B 128E Instruct FP8", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.25, output: 1 }, - limit: { context: 128000, output: 8192 }, - }, - "grok-4-fast-non-reasoning": { - id: "grok-4-fast-non-reasoning", - name: "Grok 4 Fast (Non-Reasoning)", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-09-19", - last_updated: "2025-09-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 30000 }, - }, - "o3-mini": { - id: "o3-mini", - name: "o3-mini", - family: "o-mini", - attachment: false, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05", - release_date: "2024-12-20", - last_updated: "2025-01-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, - limit: { context: 200000, output: 100000 }, - }, - "cohere-embed-v3-english": { - id: "cohere-embed-v3-english", - name: "Embed v3 English", - family: "cohere-embed", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2023-11-07", - last_updated: "2023-11-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0 }, - limit: { context: 512, output: 1024 }, - }, - "phi-3-medium-4k-instruct": { - id: "phi-3-medium-4k-instruct", - name: "Phi-3-medium-instruct (4k)", - family: "phi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-04-23", - last_updated: "2024-04-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.17, output: 0.68 }, - limit: { context: 4096, output: 1024 }, - }, - "cohere-embed-v3-multilingual": { - id: "cohere-embed-v3-multilingual", - name: "Embed v3 Multilingual", - family: "cohere-embed", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2023-11-07", - last_updated: "2023-11-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0 }, - limit: { context: 512, output: 1024 }, - }, - "gpt-3.5-turbo-0125": { - id: "gpt-3.5-turbo-0125", - name: "GPT-3.5 Turbo 0125", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2021-08", - release_date: "2024-01-25", - last_updated: "2024-01-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 1.5 }, - limit: { context: 16384, output: 16384 }, - }, - "phi-4-mini-reasoning": { - id: "phi-4-mini-reasoning", - name: "Phi-4-mini-reasoning", - family: "phi", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.075, output: 0.3 }, - limit: { context: 128000, output: 4096 }, - }, - "mistral-large-2411": { - id: "mistral-large-2411", - name: "Mistral Large 24.11", - family: "mistral-large", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-09", - release_date: "2024-11-01", - last_updated: "2024-11-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6 }, - limit: { context: 128000, output: 32768 }, - }, - "gpt-5.1-codex": { - id: "gpt-5.1-codex", - name: "GPT-5.1 Codex", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text", "image", "audio"], output: ["text", "image", "audio"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "meta-llama-3.1-8b-instruct": { - id: "meta-llama-3.1-8b-instruct", - name: "Meta-Llama-3.1-8B-Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.61 }, - limit: { context: 128000, output: 32768 }, - }, - "gpt-5.4-pro": { - id: "gpt-5.4-pro", - name: "GPT-5.4 Pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 30, output: 180 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "o1-preview": { - id: "o1-preview", - name: "o1-preview", - family: "o", - attachment: false, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2023-09", - release_date: "2024-09-12", - last_updated: "2024-09-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 16.5, output: 66, cache_read: 8.25 }, - limit: { context: 128000, output: 32768 }, - }, - "meta-llama-3.1-70b-instruct": { - id: "meta-llama-3.1-70b-instruct", - name: "Meta-Llama-3.1-70B-Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.68, output: 3.54 }, - limit: { context: 128000, output: 32768 }, - }, - "phi-3-mini-4k-instruct": { - id: "phi-3-mini-4k-instruct", - name: "Phi-3-mini-instruct (4k)", - family: "phi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-04-23", - last_updated: "2024-04-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.13, output: 0.52 }, - limit: { context: 4096, output: 1024 }, - }, - "codex-mini": { - id: "codex-mini", - name: "Codex Mini", - family: "gpt-codex-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-04", - release_date: "2025-05-16", - last_updated: "2025-05-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.5, output: 6, cache_read: 0.375 }, - limit: { context: 200000, output: 100000 }, - }, - "gpt-5.4": { - id: "gpt-5.4", - name: "GPT-5.4", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 15, cache_read: 0.25 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "kimi-k2-thinking": { - id: "kimi-k2-thinking", - name: "Kimi K2 Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-11-06", - last_updated: "2025-12-02", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, - limit: { context: 262144, output: 262144 }, - }, - "phi-4-reasoning-plus": { - id: "phi-4-reasoning-plus", - name: "Phi-4-reasoning-plus", - family: "phi", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.125, output: 0.5 }, - limit: { context: 32000, output: 4096 }, - }, - "gpt-4.1-mini": { - id: "gpt-4.1-mini", - name: "GPT-4.1 mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-05", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.6, cache_read: 0.1 }, - limit: { context: 1047576, output: 32768 }, - }, - "phi-4": { - id: "phi-4", - name: "Phi-4", - family: "phi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.125, output: 0.5 }, - limit: { context: 128000, output: 4096 }, - }, - "o4-mini": { - id: "o4-mini", - name: "o4-mini", - family: "o-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05", - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.28 }, - limit: { context: 200000, output: 100000 }, - }, - "gpt-5": { - id: "gpt-5", - name: "GPT-5", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.13 }, - limit: { context: 272000, output: 128000 }, - }, - "gpt-4-32k": { - id: "gpt-4-32k", - name: "GPT-4 32K", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-11", - release_date: "2023-03-14", - last_updated: "2023-03-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 60, output: 120 }, - limit: { context: 32768, output: 32768 }, - }, - "grok-3-mini": { - id: "grok-3-mini", - name: "Grok 3 Mini", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.5, reasoning: 0.5, cache_read: 0.075 }, - limit: { context: 131072, output: 8192 }, - }, - "cohere-embed-v-4-0": { - id: "cohere-embed-v-4-0", - name: "Embed v4", - family: "cohere-embed", - attachment: true, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-04-15", - last_updated: "2025-04-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.12, output: 0 }, - limit: { context: 128000, output: 1536 }, - }, - "deepseek-v3.2": { - id: "deepseek-v3.2", - name: "DeepSeek-V3.2", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.58, output: 1.68 }, - limit: { context: 128000, output: 128000 }, - }, - "mistral-nemo": { - id: "mistral-nemo", - name: "Mistral Nemo", - family: "mistral-nemo", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.15 }, - limit: { context: 128000, output: 128000 }, - }, - "gpt-4-turbo": { - id: "gpt-4-turbo", - name: "GPT-4 Turbo", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-11", - release_date: "2023-11-06", - last_updated: "2024-04-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 10, output: 30 }, - limit: { context: 128000, output: 4096 }, - }, - "gpt-4.1": { - id: "gpt-4.1", - name: "GPT-4.1", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-05", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 1047576, output: 32768 }, - }, - "model-router": { - id: "model-router", - name: "Model Router", - family: "model-router", - attachment: true, - reasoning: false, - tool_call: true, - release_date: "2025-05-19", - last_updated: "2025-11-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "deepseek-v3-0324": { - id: "deepseek-v3-0324", - name: "DeepSeek-V3-0324", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-03-24", - last_updated: "2025-03-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.14, output: 4.56 }, - limit: { context: 131072, output: 131072 }, - }, - "kimi-k2.5": { - id: "kimi-k2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-02-06", - last_updated: "2026-02-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3 }, - limit: { context: 262144, output: 262144 }, - provider: { - npm: "@ai-sdk/openai-compatible", - api: "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/models", - shape: "completions", - }, - }, - "gpt-5.2": { - id: "gpt-5.2", - name: "GPT-5.2", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "gpt-5.1-codex-mini": { - id: "gpt-5.1-codex-mini", - name: "GPT-5.1 Codex Mini", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.025 }, - limit: { context: 400000, output: 128000 }, - }, - "text-embedding-3-large": { - id: "text-embedding-3-large", - name: "text-embedding-3-large", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - release_date: "2024-01-25", - last_updated: "2024-01-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.13, output: 0 }, - limit: { context: 8191, output: 3072 }, - }, - "gpt-3.5-turbo-0613": { - id: "gpt-3.5-turbo-0613", - name: "GPT-3.5 Turbo 0613", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2021-08", - release_date: "2023-06-13", - last_updated: "2023-06-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 4 }, - limit: { context: 16384, output: 16384 }, - }, - "cohere-command-r-08-2024": { - id: "cohere-command-r-08-2024", - name: "Command R", - family: "command-r", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-06-01", - release_date: "2024-08-30", - last_updated: "2024-08-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 128000, output: 4000 }, - }, - "gpt-4.1-nano": { - id: "gpt-4.1-nano", - name: "GPT-4.1 nano", - family: "gpt-nano", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-05", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.03 }, - limit: { context: 1047576, output: 32768 }, - }, - "deepseek-v3.2-speciale": { - id: "deepseek-v3.2-speciale", - name: "DeepSeek-V3.2-Speciale", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2024-07", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.58, output: 1.68 }, - limit: { context: 128000, output: 128000 }, - }, - "phi-4-mini": { - id: "phi-4-mini", - name: "Phi-4-mini", - family: "phi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.075, output: 0.3 }, - limit: { context: 128000, output: 4096 }, - }, - "deepseek-r1": { - id: "deepseek-r1", - name: "DeepSeek-R1", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2024-07", - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.35, output: 5.4 }, - limit: { context: 163840, output: 163840 }, - }, - "text-embedding-3-small": { - id: "text-embedding-3-small", - name: "text-embedding-3-small", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - release_date: "2024-01-25", - last_updated: "2024-01-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.02, output: 0 }, - limit: { context: 8191, output: 1536 }, - }, - "gpt-3.5-turbo-0301": { - id: "gpt-3.5-turbo-0301", - name: "GPT-3.5 Turbo 0301", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2021-08", - release_date: "2023-03-01", - last_updated: "2023-03-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.5, output: 2 }, - limit: { context: 4096, output: 4096 }, - }, - "deepseek-r1-0528": { - id: "deepseek-r1-0528", - name: "DeepSeek-R1-0528", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-05-28", - last_updated: "2025-05-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.35, output: 5.4 }, - limit: { context: 163840, output: 163840 }, - }, - "meta-llama-3-70b-instruct": { - id: "meta-llama-3-70b-instruct", - name: "Meta-Llama-3-70B-Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-12", - release_date: "2024-04-18", - last_updated: "2024-04-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.68, output: 3.54 }, - limit: { context: 8192, output: 2048 }, - }, - "llama-3.2-11b-vision-instruct": { - id: "llama-3.2-11b-vision-instruct", - name: "Llama-3.2-11B-Vision-Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-09-25", - last_updated: "2024-09-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.37, output: 0.37 }, - limit: { context: 128000, output: 8192 }, - }, - o3: { - id: "o3", - name: "o3", - family: "o", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05", - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 200000, output: 100000 }, - }, - "meta-llama-3-8b-instruct": { - id: "meta-llama-3-8b-instruct", - name: "Meta-Llama-3-8B-Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-12", - release_date: "2024-04-18", - last_updated: "2024-04-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.61 }, - limit: { context: 8192, output: 2048 }, - }, - "gpt-5.1-chat": { - id: "gpt-5.1-chat", - name: "GPT-5.1 Chat", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text", "image", "audio"], output: ["text", "image", "audio"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 128000, output: 16384 }, - }, - "grok-4": { - id: "grok-4", - name: "Grok 4", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, reasoning: 15, cache_read: 0.75 }, - limit: { context: 256000, output: 64000 }, - }, - "gpt-5-chat": { - id: "gpt-5-chat", - name: "GPT-5 Chat", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: false, - temperature: false, - knowledge: "2024-10-24", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.13 }, - limit: { context: 128000, output: 16384 }, - }, - "gpt-5.2-chat": { - id: "gpt-5.2-chat", - name: "GPT-5.2 Chat", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 128000, output: 16384 }, - }, - "cohere-command-r-plus-08-2024": { - id: "cohere-command-r-plus-08-2024", - name: "Command R+", - family: "command-r", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-06-01", - release_date: "2024-08-30", - last_updated: "2024-08-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.5, output: 10 }, - limit: { context: 128000, output: 4000 }, - }, - "meta-llama-3.1-405b-instruct": { - id: "meta-llama-3.1-405b-instruct", - name: "Meta-Llama-3.1-405B-Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 5.33, output: 16 }, - limit: { context: 128000, output: 32768 }, - }, - "llama-4-scout-17b-16e-instruct": { - id: "llama-4-scout-17b-16e-instruct", - name: "Llama 4 Scout 17B 16E Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.78 }, - limit: { context: 128000, output: 8192 }, + limit: { context: 1000000, output: 131072 }, }, "gpt-5.1": { id: "gpt-5.1", - name: "GPT-5.1", - family: "gpt", + name: "gpt-5.1", attachment: true, - reasoning: true, + reasoning: false, tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", + temperature: true, + knowledge: "2024-10", release_date: "2025-11-14", last_updated: "2025-11-14", - modalities: { input: ["text", "image", "audio"], output: ["text", "image", "audio"] }, + modalities: { input: ["text", "image"], output: ["text"] }, open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 272000, output: 128000 }, + cost: { input: 1.25, output: 10 }, + limit: { context: 400000, output: 128000 }, }, - o1: { - id: "o1", - name: "o1", - family: "o", + "kimi-k2-thinking-turbo": { + id: "kimi-k2-thinking-turbo", + name: "kimi-k2-thinking-turbo", attachment: false, reasoning: true, tool_call: true, - temperature: false, - knowledge: "2023-09", - release_date: "2024-12-05", - last_updated: "2024-12-05", - modalities: { input: ["text", "image"], output: ["text"] }, + temperature: true, + knowledge: "2025-06", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 15, output: 60, cache_read: 7.5 }, - limit: { context: 200000, output: 100000 }, + cost: { input: 1.265, output: 9.119 }, + limit: { context: 262144, output: 262144 }, }, - "deepseek-v3.1": { - id: "deepseek-v3.1", - name: "DeepSeek-V3.1", - family: "deepseek", + "deepseek-reasoner": { + id: "deepseek-reasoner", + name: "Deepseek-Reasoner", + family: "deepseek-thinking", attachment: false, reasoning: true, tool_call: true, temperature: true, knowledge: "2024-07", - release_date: "2025-08-21", - last_updated: "2025-08-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.56, output: 1.68 }, - limit: { context: 131072, output: 131072 }, - }, - "mistral-medium-2505": { - id: "mistral-medium-2505", - name: "Mistral Medium 3", - family: "mistral-medium", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2025-05-07", - last_updated: "2025-05-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2 }, - limit: { context: 128000, output: 128000 }, - }, - "cohere-command-a": { - id: "cohere-command-a", - name: "Command A", - family: "command-a", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-06-01", - release_date: "2025-03-13", - last_updated: "2025-03-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.5, output: 10 }, - limit: { context: 256000, output: 8000 }, - }, - "phi-3.5-mini-instruct": { - id: "phi-3.5-mini-instruct", - name: "Phi-3.5-mini-instruct", - family: "phi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-08-20", - last_updated: "2024-08-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.13, output: 0.52 }, - limit: { context: 128000, output: 4096 }, - }, - "llama-3.3-70b-instruct": { - id: "llama-3.3-70b-instruct", - name: "Llama-3.3-70B-Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.71, output: 0.71 }, - limit: { context: 128000, output: 32768 }, - }, - "grok-code-fast-1": { - id: "grok-code-fast-1", - name: "Grok Code Fast 1", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2025-08-28", - last_updated: "2025-08-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.5, cache_read: 0.02 }, - limit: { context: 256000, output: 10000 }, - }, - "llama-3.2-90b-vision-instruct": { - id: "llama-3.2-90b-vision-instruct", - name: "Llama-3.2-90B-Vision-Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-09-25", - last_updated: "2024-09-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 2.04, output: 2.04 }, - limit: { context: 128000, output: 8192 }, - }, - "grok-3": { - id: "grok-3", - name: "Grok 3", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.75 }, - limit: { context: 131072, output: 8192 }, - }, - "gpt-5.2-codex": { - id: "gpt-5.2-codex", - name: "GPT-5.2 Codex", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-01-14", - last_updated: "2026-01-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, output: 128000 }, - }, - "ministral-3b": { - id: "ministral-3b", - name: "Ministral 3B", - family: "ministral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-03", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.04, output: 0.04 }, - limit: { context: 128000, output: 8192 }, - }, - "gpt-4-turbo-vision": { - id: "gpt-4-turbo-vision", - name: "GPT-4 Turbo Vision", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-11", - release_date: "2023-11-06", - last_updated: "2024-04-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 10, output: 30 }, - limit: { context: 128000, output: 4096 }, - }, - "phi-3.5-moe-instruct": { - id: "phi-3.5-moe-instruct", - name: "Phi-3.5-MoE-instruct", - family: "phi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-08-20", - last_updated: "2024-08-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.16, output: 0.64 }, - limit: { context: 128000, output: 4096 }, - }, - "mai-ds-r1": { - id: "mai-ds-r1", - name: "MAI-DS-R1", - family: "mai", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2024-06", release_date: "2025-01-20", last_updated: "2025-01-20", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 1.35, output: 5.4 }, - limit: { context: 128000, output: 8192 }, - }, - "phi-4-multimodal": { - id: "phi-4-multimodal", - name: "Phi-4-multimodal", - family: "phi", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text", "image", "audio"], output: ["text"] }, - open_weights: true, - cost: { input: 0.08, output: 0.32, input_audio: 4 }, - limit: { context: 128000, output: 4096 }, - }, - "phi-3-medium-128k-instruct": { - id: "phi-3-medium-128k-instruct", - name: "Phi-3-medium-instruct (128k)", - family: "phi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-04-23", - last_updated: "2024-04-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.17, output: 0.68 }, - limit: { context: 128000, output: 4096 }, + cost: { input: 0.29, output: 0.43 }, + limit: { context: 128000, output: 128000 }, }, "grok-4-fast-reasoning": { id: "grok-4-fast-reasoning", - name: "Grok 4 Fast (Reasoning)", - family: "grok", + name: "grok-4-fast-reasoning", attachment: true, reasoning: true, tool_call: true, temperature: true, - knowledge: "2025-07", - release_date: "2025-09-19", - last_updated: "2025-09-19", + knowledge: "2025-06", + release_date: "2025-09-23", + last_updated: "2025-09-23", modalities: { input: ["text", "image"], output: ["text"] }, open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + cost: { input: 0.2, output: 0.5 }, limit: { context: 2000000, output: 30000 }, }, - "text-embedding-ada-002": { - id: "text-embedding-ada-002", - name: "text-embedding-ada-002", - family: "text-embedding", + "claude-opus-4-1-20250805-thinking": { + id: "claude-opus-4-1-20250805-thinking", + name: "claude-opus-4-1-20250805-thinking", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03", + release_date: "2025-05-27", + last_updated: "2025-05-27", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75 }, + limit: { context: 200000, output: 32000 }, + }, + "qwen3-30b-a3b": { + id: "qwen3-30b-a3b", + name: "Qwen3-30B-A3B", + family: "qwen", attachment: false, reasoning: false, - tool_call: false, - release_date: "2022-12-15", - last_updated: "2022-12-15", + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04-29", + last_updated: "2025-04-29", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 0.1, output: 0 }, - limit: { context: 8192, output: 1536 }, + cost: { input: 0.11, output: 1.08 }, + limit: { context: 128000, output: 8192 }, }, - "gpt-4o-mini": { - id: "gpt-4o-mini", - name: "GPT-4o mini", - family: "gpt-mini", + "glm-4.5v": { + id: "glm-4.5v", + name: "GLM-4.5V", attachment: true, reasoning: false, tool_call: true, temperature: true, - knowledge: "2023-09", - release_date: "2024-07-18", - last_updated: "2024-07-18", + knowledge: "2024-10", + release_date: "2025-07-29", + last_updated: "2025-07-29", modalities: { input: ["text", "image"], output: ["text"] }, open_weights: false, - cost: { input: 0.15, output: 0.6, cache_read: 0.08 }, - limit: { context: 128000, output: 16384 }, + cost: { input: 0.29, output: 0.86 }, + limit: { context: 64000, output: 16384 }, }, - "phi-3-small-128k-instruct": { - id: "phi-3-small-128k-instruct", - name: "Phi-3-small-instruct (128k)", - family: "phi", + "glm-4.6": { + id: "glm-4.6", + name: "glm-4.6", attachment: false, reasoning: false, - tool_call: false, + tool_call: true, temperature: true, - knowledge: "2023-10", - release_date: "2024-04-23", - last_updated: "2024-04-23", + knowledge: "2025-03", + release_date: "2025-09-30", + last_updated: "2025-09-30", modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 128000, output: 4096 }, + open_weights: false, + cost: { input: 0.286, output: 1.142 }, + limit: { context: 200000, output: 131072 }, + }, + "gemini-2.5-flash-preview-09-2025": { + id: "gemini-2.5-flash-preview-09-2025", + name: "gemini-2.5-flash-preview-09-2025", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-09-26", + last_updated: "2025-09-26", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5 }, + limit: { context: 1000000, output: 65536 }, + }, + "glm-4.6v": { + id: "glm-4.6v", + name: "GLM-4.6V", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-03", + release_date: "2025-12-08", + last_updated: "2025-12-08", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.145, output: 0.43 }, + limit: { context: 128000, output: 32768 }, + }, + "claude-opus-4-1-20250805": { + id: "claude-opus-4-1-20250805", + name: "claude-opus-4-1-20250805", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-03", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75 }, + limit: { context: 200000, output: 32000 }, + }, + "gpt-5.1-chat-latest": { + id: "gpt-5.1-chat-latest", + name: "gpt-5.1-chat-latest", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 128000, output: 16384 }, + }, + "claude-haiku-4-5-20251001": { + id: "claude-haiku-4-5-20251001", + name: "claude-haiku-4-5-20251001", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-03", + release_date: "2025-10-16", + last_updated: "2025-10-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5 }, + limit: { context: 200000, output: 64000 }, + }, + "MiniMax-M1": { + id: "MiniMax-M1", + name: "MiniMax-M1", + family: "minimax", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-06-16", + last_updated: "2025-06-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.132, output: 1.254 }, + limit: { context: 1000000, output: 128000 }, + }, + "qwen3-coder-480b-a35b-instruct": { + id: "qwen3-coder-480b-a35b-instruct", + name: "qwen3-coder-480b-a35b-instruct", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.86, output: 3.43 }, + limit: { context: 262144, output: 65536 }, + }, + "doubao-seed-code-preview-251028": { + id: "doubao-seed-code-preview-251028", + name: "doubao-seed-code-preview-251028", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-11-11", + last_updated: "2025-11-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.17, output: 1.14 }, + limit: { context: 256000, output: 32000 }, + }, + "gpt-4.1-nano": { + id: "gpt-4.1-nano", + name: "gpt-4.1-nano", + family: "gpt-nano", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 1000000, output: 32768 }, + }, + "deepseek-v3.2": { + id: "deepseek-v3.2", + name: "deepseek-v3.2", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.29, output: 0.43 }, + limit: { context: 128000, output: 8192 }, }, "gpt-5-pro": { id: "gpt-5-pro", - name: "GPT-5 Pro", - family: "gpt-pro", + name: "gpt-5-pro", attachment: true, - reasoning: true, + reasoning: false, tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-10-06", - last_updated: "2025-10-06", + temperature: true, + knowledge: "2024-10", + release_date: "2025-10-08", + last_updated: "2025-10-08", modalities: { input: ["text", "image"], output: ["text"] }, open_weights: false, cost: { input: 15, output: 120 }, limit: { context: 400000, output: 272000 }, }, - "gpt-5-codex": { - id: "gpt-5-codex", - name: "GPT-5-Codex", - family: "gpt-codex", - attachment: false, - reasoning: true, + "gpt-4o": { + id: "gpt-4o", + name: "gpt-4o", + family: "gpt", + attachment: true, + reasoning: false, tool_call: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-09-15", - last_updated: "2025-09-15", + temperature: true, + knowledge: "2023-09", + release_date: "2024-05-13", + last_updated: "2024-05-13", modalities: { input: ["text", "image"], output: ["text"] }, open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.13 }, + cost: { input: 2.5, output: 10 }, + limit: { context: 128000, output: 16384 }, + }, + "gpt-5": { + id: "gpt-5", + name: "gpt-5", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-08-08", + last_updated: "2025-08-08", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, limit: { context: 400000, output: 128000 }, }, - "gpt-5.3-codex": { - id: "gpt-5.3-codex", - name: "GPT-5.3 Codex", - family: "gpt-codex", + "claude-sonnet-4-5-20250929-thinking": { + id: "claude-sonnet-4-5-20250929-thinking", + name: "claude-sonnet-4-5-20250929-thinking", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03", + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 200000, output: 64000 }, + }, + "gpt-4.1": { + id: "gpt-4.1", + name: "gpt-4.1", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8 }, + limit: { context: 1000000, output: 32768 }, + }, + "kimi-k2-thinking": { + id: "kimi-k2-thinking", + name: "kimi-k2-thinking", attachment: false, reasoning: true, tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-02-24", - last_updated: "2026-02-24", + temperature: true, + knowledge: "2025-06", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.575, output: 2.3 }, + limit: { context: 262144, output: 262144 }, + }, + "gemini-2.0-flash-lite": { + id: "gemini-2.0-flash-lite", + name: "gemini-2.0-flash-lite", + family: "gemini-flash-lite", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-11", + release_date: "2025-06-16", + last_updated: "2025-06-16", modalities: { input: ["text", "image"], output: ["text"] }, open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, output: 128000 }, + cost: { input: 0.075, output: 0.3 }, + limit: { context: 2000000, output: 8192 }, + }, + "gpt-4.1-mini": { + id: "gpt-4.1-mini", + name: "gpt-4.1-mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.6 }, + limit: { context: 1000000, output: 32768 }, + }, + "grok-4-fast-non-reasoning": { + id: "grok-4-fast-non-reasoning", + name: "grok-4-fast-non-reasoning", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-09-23", + last_updated: "2025-09-23", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5 }, + limit: { context: 2000000, output: 30000 }, + }, + "doubao-seed-1-6-thinking-250715": { + id: "doubao-seed-1-6-thinking-250715", + name: "doubao-seed-1-6-thinking-250715", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-07-15", + last_updated: "2025-07-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.121, output: 1.21 }, + limit: { context: 256000, output: 16000 }, + }, + "ministral-14b-2512": { + id: "ministral-14b-2512", + name: "ministral-14b-2512", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-12-16", + last_updated: "2025-12-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.33, output: 0.33 }, + limit: { context: 128000, output: 128000 }, }, }, }, @@ -17063,233 +987,9 @@ export const snapshot = { name: "Alibaba", doc: "https://www.alibabacloud.com/help/en/model-studio/models", models: { - "qwen-vl-plus": { - id: "qwen-vl-plus", - name: "Qwen-VL Plus", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-01-25", - last_updated: "2025-08-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.21, output: 0.63 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen-vl-max": { - id: "qwen-vl-max", - name: "Qwen-VL Max", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-04-08", - last_updated: "2025-08-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 3.2 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen3-next-80b-a3b-thinking": { - id: "qwen3-next-80b-a3b-thinking", - name: "Qwen3-Next 80B-A3B (Thinking)", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09", - last_updated: "2025-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 6 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen3-coder-480b-a35b-instruct": { - id: "qwen3-coder-480b-a35b-instruct", - name: "Qwen3-Coder 480B-A35B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.5, output: 7.5 }, - limit: { context: 262144, output: 65536 }, - }, - "qwen3-14b": { - id: "qwen3-14b", - name: "Qwen3 14B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.35, output: 1.4, reasoning: 4.2 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen3-coder-flash": { - id: "qwen3-coder-flash", - name: "Qwen3 Coder Flash", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.5 }, - limit: { context: 1000000, output: 65536 }, - }, - "qwen3-vl-30b-a3b": { - id: "qwen3-vl-30b-a3b", - name: "Qwen3-VL 30B-A3B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.8, reasoning: 2.4 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen3-asr-flash": { - id: "qwen3-asr-flash", - name: "Qwen3-ASR Flash", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2024-04", - release_date: "2025-09-08", - last_updated: "2025-09-08", - modalities: { input: ["audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.035, output: 0.035 }, - limit: { context: 53248, output: 4096 }, - }, - "qwen-max": { - id: "qwen-max", - name: "Qwen Max", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-04-03", - last_updated: "2025-01-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.6, output: 6.4 }, - limit: { context: 32768, output: 8192 }, - }, - "qwen-turbo": { - id: "qwen-turbo", - name: "Qwen Turbo", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-11-01", - last_updated: "2025-04-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.2, reasoning: 0.5 }, - limit: { context: 1000000, output: 16384 }, - }, - "qwen2-5-7b-instruct": { - id: "qwen2-5-7b-instruct", - name: "Qwen2.5 7B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-09", - last_updated: "2024-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.175, output: 0.7 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen2-5-vl-72b-instruct": { - id: "qwen2-5-vl-72b-instruct", - name: "Qwen2.5-VL 72B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-09", - last_updated: "2024-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 2.8, output: 8.4 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen2-5-14b-instruct": { - id: "qwen2-5-14b-instruct", - name: "Qwen2.5 14B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-09", - last_updated: "2024-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.35, output: 1.4 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen3-8b": { - id: "qwen3-8b", - name: "Qwen3 8B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.18, output: 0.7, reasoning: 2.1 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen3-32b": { - id: "qwen3-32b", - name: "Qwen3 32B", + "qwen3-235b-a22b": { + id: "qwen3-235b-a22b", + name: "Qwen3 235B-A22B", family: "qwen", attachment: false, reasoning: true, @@ -17303,69 +1003,37 @@ export const snapshot = { cost: { input: 0.7, output: 2.8, reasoning: 8.4 }, limit: { context: 131072, output: 16384 }, }, - "qwen3.5-397b-a17b": { - id: "qwen3.5-397b-a17b", - name: "Qwen3.5 397B-A17B", + "qwen3-coder-plus": { + id: "qwen3-coder-plus", + name: "Qwen3 Coder Plus", family: "qwen", attachment: false, - reasoning: true, + reasoning: false, tool_call: true, temperature: true, knowledge: "2025-04", - release_date: "2026-02-16", - last_updated: "2026-02-16", - modalities: { input: ["text", "image", "video"], output: ["text"] }, + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, open_weights: true, - cost: { input: 0.6, output: 3.6, reasoning: 3.6 }, - limit: { context: 262144, output: 65536 }, + cost: { input: 1, output: 5 }, + limit: { context: 1048576, output: 65536 }, }, - "qvq-max": { - id: "qvq-max", - name: "QVQ Max", - family: "qvq", + "qwen-vl-ocr": { + id: "qwen-vl-ocr", + name: "Qwen-VL OCR", + family: "qwen", attachment: false, - reasoning: true, - tool_call: true, + reasoning: false, + tool_call: false, temperature: true, knowledge: "2024-04", - release_date: "2025-03-25", - last_updated: "2025-03-25", + release_date: "2024-10-28", + last_updated: "2025-04-13", modalities: { input: ["text", "image"], output: ["text"] }, open_weights: false, - cost: { input: 1.2, output: 4.8 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen2-5-omni-7b": { - id: "qwen2-5-omni-7b", - name: "Qwen2.5-Omni 7B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-12", - last_updated: "2024-12", - modalities: { input: ["text", "image", "audio", "video"], output: ["text", "audio"] }, - open_weights: true, - cost: { input: 0.1, output: 0.4, input_audio: 6.76 }, - limit: { context: 32768, output: 2048 }, - }, - "qwen2-5-vl-7b-instruct": { - id: "qwen2-5-vl-7b-instruct", - name: "Qwen2.5-VL 7B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-09", - last_updated: "2024-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.35, output: 1.05 }, - limit: { context: 131072, output: 8192 }, + cost: { input: 0.72, output: 0.72 }, + limit: { context: 34096, output: 4096 }, }, "qwen-omni-turbo-realtime": { id: "qwen-omni-turbo-realtime", @@ -17383,9 +1051,9 @@ export const snapshot = { cost: { input: 0.27, output: 1.07, input_audio: 4.44, output_audio: 8.89 }, limit: { context: 32768, output: 2048 }, }, - "qwen3-235b-a22b": { - id: "qwen3-235b-a22b", - name: "Qwen3 235B-A22B", + "qwen3-8b": { + id: "qwen3-8b", + name: "Qwen3 8B", family: "qwen", attachment: false, reasoning: true, @@ -17396,72 +1064,56 @@ export const snapshot = { last_updated: "2025-04", modalities: { input: ["text"], output: ["text"] }, open_weights: true, - cost: { input: 0.7, output: 2.8, reasoning: 8.4 }, - limit: { context: 131072, output: 16384 }, + cost: { input: 0.18, output: 0.7, reasoning: 2.1 }, + limit: { context: 131072, output: 8192 }, }, - "qwen3-coder-30b-a3b-instruct": { - id: "qwen3-coder-30b-a3b-instruct", - name: "Qwen3-Coder 30B-A3B Instruct", + "qwen3.5-397b-a17b": { + id: "qwen3.5-397b-a17b", + name: "Qwen3.5 397B-A17B", family: "qwen", attachment: false, - reasoning: false, + reasoning: true, tool_call: true, temperature: true, knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text"], output: ["text"] }, + release_date: "2026-02-16", + last_updated: "2026-02-16", + modalities: { input: ["text", "image", "video"], output: ["text"] }, open_weights: true, - cost: { input: 0.45, output: 2.25 }, + cost: { input: 0.6, output: 3.6, reasoning: 3.6 }, limit: { context: 262144, output: 65536 }, }, - "qwen-omni-turbo": { - id: "qwen-omni-turbo", - name: "Qwen-Omni Turbo", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-01-19", - last_updated: "2025-03-26", - modalities: { input: ["text", "image", "audio", "video"], output: ["text", "audio"] }, - open_weights: false, - cost: { input: 0.07, output: 0.27, input_audio: 4.44, output_audio: 8.89 }, - limit: { context: 32768, output: 2048 }, - }, - "qwen-mt-plus": { - id: "qwen-mt-plus", - name: "Qwen-MT Plus", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-04", - release_date: "2025-01", - last_updated: "2025-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.46, output: 7.37 }, - limit: { context: 16384, output: 8192 }, - }, - "qwen3-vl-plus": { - id: "qwen3-vl-plus", - name: "Qwen3-VL Plus", + "qwq-plus": { + id: "qwq-plus", + name: "QwQ Plus", family: "qwen", attachment: false, reasoning: true, tool_call: true, temperature: true, - knowledge: "2025-04", - release_date: "2025-09-23", - last_updated: "2025-09-23", + knowledge: "2024-04", + release_date: "2025-03-05", + last_updated: "2025-03-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 2.4 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen-vl-plus": { + id: "qwen-vl-plus", + name: "Qwen-VL Plus", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-01-25", + last_updated: "2025-08-15", modalities: { input: ["text", "image"], output: ["text"] }, open_weights: false, - cost: { input: 0.2, output: 1.6, reasoning: 4.8 }, - limit: { context: 262144, output: 32768 }, + cost: { input: 0.21, output: 0.63 }, + limit: { context: 131072, output: 8192 }, }, "qwen3-livetranslate-flash-realtime": { id: "qwen3-livetranslate-flash-realtime", @@ -17479,6 +1131,38 @@ export const snapshot = { cost: { input: 10, output: 10, input_audio: 10, output_audio: 38 }, limit: { context: 53248, output: 4096 }, }, + "qwen3-32b": { + id: "qwen3-32b", + name: "Qwen3 32B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.7, output: 2.8, reasoning: 8.4 }, + limit: { context: 131072, output: 16384 }, + }, + "qwen-max": { + id: "qwen-max", + name: "Qwen Max", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-04-03", + last_updated: "2025-01-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.6, output: 6.4 }, + limit: { context: 32768, output: 8192 }, + }, "qwen-plus": { id: "qwen-plus", name: "Qwen Plus", @@ -17495,9 +1179,41 @@ export const snapshot = { cost: { input: 0.4, output: 1.2, reasoning: 4 }, limit: { context: 1000000, output: 32768 }, }, - "qwen2-5-32b-instruct": { - id: "qwen2-5-32b-instruct", - name: "Qwen2.5 32B Instruct", + "qwen-omni-turbo": { + id: "qwen-omni-turbo", + name: "Qwen-Omni Turbo", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-01-19", + last_updated: "2025-03-26", + modalities: { input: ["text", "image", "audio", "video"], output: ["text", "audio"] }, + open_weights: false, + cost: { input: 0.07, output: 0.27, input_audio: 4.44, output_audio: 8.89 }, + limit: { context: 32768, output: 2048 }, + }, + "qwen-flash": { + id: "qwen-flash", + name: "Qwen Flash", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.4 }, + limit: { context: 1000000, output: 32768 }, + }, + "qwen2-5-vl-7b-instruct": { + id: "qwen2-5-vl-7b-instruct", + name: "Qwen2.5-VL 7B Instruct", family: "qwen", attachment: false, reasoning: false, @@ -17506,41 +1222,25 @@ export const snapshot = { knowledge: "2024-04", release_date: "2024-09", last_updated: "2024-09", - modalities: { input: ["text"], output: ["text"] }, + modalities: { input: ["text", "image"], output: ["text"] }, open_weights: true, - cost: { input: 0.7, output: 2.8 }, + cost: { input: 0.35, output: 1.05 }, limit: { context: 131072, output: 8192 }, }, - "qwen3-next-80b-a3b-instruct": { - id: "qwen3-next-80b-a3b-instruct", - name: "Qwen3-Next 80B-A3B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09", - last_updated: "2025-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 2 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen3.5-plus": { - id: "qwen3.5-plus", - name: "Qwen3.5 Plus", + "qwen3.6-plus": { + id: "qwen3.6-plus", + name: "Qwen3.6 Plus", family: "qwen", attachment: false, reasoning: true, tool_call: true, temperature: true, knowledge: "2025-04", - release_date: "2026-02-16", - last_updated: "2026-02-16", + release_date: "2026-04-02", + last_updated: "2026-04-02", modalities: { input: ["text", "image", "video"], output: ["text"] }, open_weights: false, - cost: { input: 0.4, output: 2.4, reasoning: 2.4 }, + cost: { input: 0.276, output: 1.651, cache_read: 0.028, cache_write: 0.344 }, limit: { context: 1000000, output: 65536 }, }, "qwen3-max": { @@ -17575,38 +1275,6 @@ export const snapshot = { cost: { input: 0.43, output: 1.66, input_audio: 3.81, output_audio: 15.11 }, limit: { context: 65536, output: 16384 }, }, - "qwen3-coder-plus": { - id: "qwen3-coder-plus", - name: "Qwen3 Coder Plus", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 5 }, - limit: { context: 1048576, output: 65536 }, - }, - "qwen-flash": { - id: "qwen-flash", - name: "Qwen Flash", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.4 }, - limit: { context: 1000000, output: 32768 }, - }, "qwen2-5-72b-instruct": { id: "qwen2-5-72b-instruct", name: "Qwen2.5 72B Instruct", @@ -17623,54 +1291,6 @@ export const snapshot = { cost: { input: 1.4, output: 5.6 }, limit: { context: 131072, output: 8192 }, }, - "qwen3-omni-flash-realtime": { - id: "qwen3-omni-flash-realtime", - name: "Qwen3-Omni Flash Realtime", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image", "audio", "video"], output: ["text", "audio"] }, - open_weights: false, - cost: { input: 0.52, output: 1.99, input_audio: 4.57, output_audio: 18.13 }, - limit: { context: 65536, output: 16384 }, - }, - "qwen-vl-ocr": { - id: "qwen-vl-ocr", - name: "Qwen-VL OCR", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-04", - release_date: "2024-10-28", - last_updated: "2025-04-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.72, output: 0.72 }, - limit: { context: 34096, output: 4096 }, - }, - "qwq-plus": { - id: "qwq-plus", - name: "QwQ Plus", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-03-05", - last_updated: "2025-03-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 2.4 }, - limit: { context: 131072, output: 8192 }, - }, "qwen3-vl-235b-a22b": { id: "qwen3-vl-235b-a22b", name: "Qwen3-VL 235B-A22B", @@ -17687,6 +1307,150 @@ export const snapshot = { cost: { input: 0.7, output: 2.8, reasoning: 8.4 }, limit: { context: 131072, output: 32768 }, }, + "qwen3-asr-flash": { + id: "qwen3-asr-flash", + name: "Qwen3-ASR Flash", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2024-04", + release_date: "2025-09-08", + last_updated: "2025-09-08", + modalities: { input: ["audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.035, output: 0.035 }, + limit: { context: 53248, output: 4096 }, + }, + "qwen3-next-80b-a3b-thinking": { + id: "qwen3-next-80b-a3b-thinking", + name: "Qwen3-Next 80B-A3B (Thinking)", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09", + last_updated: "2025-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 6 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen-mt-plus": { + id: "qwen-mt-plus", + name: "Qwen-MT Plus", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-04", + release_date: "2025-01", + last_updated: "2025-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.46, output: 7.37 }, + limit: { context: 16384, output: 8192 }, + }, + "qwen-vl-max": { + id: "qwen-vl-max", + name: "Qwen-VL Max", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-04-08", + last_updated: "2025-08-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 3.2 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen3-coder-flash": { + id: "qwen3-coder-flash", + name: "Qwen3 Coder Flash", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.5 }, + limit: { context: 1000000, output: 65536 }, + }, + "qwen2-5-7b-instruct": { + id: "qwen2-5-7b-instruct", + name: "Qwen2.5 7B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-09", + last_updated: "2024-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.175, output: 0.7 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen2-5-14b-instruct": { + id: "qwen2-5-14b-instruct", + name: "Qwen2.5 14B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-09", + last_updated: "2024-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.35, output: 1.4 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen2-5-32b-instruct": { + id: "qwen2-5-32b-instruct", + name: "Qwen2.5 32B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-09", + last_updated: "2024-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.7, output: 2.8 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen3-next-80b-a3b-instruct": { + id: "qwen3-next-80b-a3b-instruct", + name: "Qwen3-Next 80B-A3B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09", + last_updated: "2025-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 2 }, + limit: { context: 131072, output: 32768 }, + }, "qwen-plus-character-ja": { id: "qwen-plus-character-ja", name: "Qwen Plus Character (Japanese)", @@ -17703,6 +1467,102 @@ export const snapshot = { cost: { input: 0.5, output: 1.4 }, limit: { context: 8192, output: 512 }, }, + "qwen3-omni-flash-realtime": { + id: "qwen3-omni-flash-realtime", + name: "Qwen3-Omni Flash Realtime", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image", "audio", "video"], output: ["text", "audio"] }, + open_weights: false, + cost: { input: 0.52, output: 1.99, input_audio: 4.57, output_audio: 18.13 }, + limit: { context: 65536, output: 16384 }, + }, + "qwen3-vl-30b-a3b": { + id: "qwen3-vl-30b-a3b", + name: "Qwen3-VL 30B-A3B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.8, reasoning: 2.4 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen3-vl-plus": { + id: "qwen3-vl-plus", + name: "Qwen3-VL Plus", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-23", + last_updated: "2025-09-23", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.6, reasoning: 4.8 }, + limit: { context: 262144, output: 32768 }, + }, + "qwen3-coder-480b-a35b-instruct": { + id: "qwen3-coder-480b-a35b-instruct", + name: "Qwen3-Coder 480B-A35B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.5, output: 7.5 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen3-coder-30b-a3b-instruct": { + id: "qwen3-coder-30b-a3b-instruct", + name: "Qwen3-Coder 30B-A3B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.45, output: 2.25 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen-turbo": { + id: "qwen-turbo", + name: "Qwen Turbo", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-11-01", + last_updated: "2025-04-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.2, reasoning: 0.5 }, + limit: { context: 1000000, output: 16384 }, + }, "qwen-mt-turbo": { id: "qwen-mt-turbo", name: "Qwen-MT Turbo", @@ -17719,25285 +1579,24 @@ export const snapshot = { cost: { input: 0.16, output: 0.49 }, limit: { context: 16384, output: 8192 }, }, - }, - }, - "cloudflare-workers-ai": { - id: "cloudflare-workers-ai", - env: ["CLOUDFLARE_ACCOUNT_ID", "CLOUDFLARE_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.cloudflare.com/client/v4/accounts/${CLOUDFLARE_ACCOUNT_ID}/ai/v1", - name: "Cloudflare Workers AI", - doc: "https://developers.cloudflare.com/workers-ai/models/", - models: { - "@cf/zai-org/glm-4.7-flash": { - id: "@cf/zai-org/glm-4.7-flash", - name: "GLM-4.7-Flash", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.06, output: 0.4 }, - limit: { context: 131072, output: 131072 }, - }, - "@cf/nvidia/nemotron-3-120b-a12b": { - id: "@cf/nvidia/nemotron-3-120b-a12b", - name: "Nemotron 3 Super 120B", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-03-11", - last_updated: "2026-03-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 1.5 }, - limit: { context: 256000, output: 256000 }, - }, - "@cf/ibm-granite/granite-4.0-h-micro": { - id: "@cf/ibm-granite/granite-4.0-h-micro", - name: "IBM Granite 4.0 H Micro", - family: "granite", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.017, output: 0.11 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/baai/bge-small-en-v1.5": { - id: "@cf/baai/bge-small-en-v1.5", - name: "BGE Small EN v1.5", - family: "bge", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.02, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/baai/bge-large-en-v1.5": { - id: "@cf/baai/bge-large-en-v1.5", - name: "BGE Large EN v1.5", - family: "bge", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/baai/bge-reranker-base": { - id: "@cf/baai/bge-reranker-base", - name: "BGE Reranker Base", - family: "bge", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-09", - last_updated: "2025-04-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.0031, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/baai/bge-m3": { - id: "@cf/baai/bge-m3", - name: "BGE M3", - family: "bge", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.012, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/baai/bge-base-en-v1.5": { - id: "@cf/baai/bge-base-en-v1.5", - name: "BGE Base EN v1.5", - family: "bge", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.067, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/pfnet/plamo-embedding-1b": { - id: "@cf/pfnet/plamo-embedding-1b", - name: "PLaMo Embedding 1B", - family: "plamo", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.019, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/deepseek-ai/deepseek-r1-distill-qwen-32b": { - id: "@cf/deepseek-ai/deepseek-r1-distill-qwen-32b", - name: "DeepSeek R1 Distill Qwen 32B", - family: "deepseek-thinking", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 4.88 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/facebook/bart-large-cnn": { - id: "@cf/facebook/bart-large-cnn", - name: "BART Large CNN", - family: "bart", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-09", - last_updated: "2025-04-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/mistral/mistral-7b-instruct-v0.1": { - id: "@cf/mistral/mistral-7b-instruct-v0.1", - name: "Mistral 7B Instruct v0.1", - family: "mistral", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.11, output: 0.19 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/myshell-ai/melotts": { - id: "@cf/myshell-ai/melotts", - name: "MyShell MeloTTS", - family: "melotts", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/pipecat-ai/smart-turn-v2": { - id: "@cf/pipecat-ai/smart-turn-v2", - name: "Pipecat Smart Turn v2", - family: "smart-turn", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/moonshotai/kimi-k2.5": { - id: "@cf/moonshotai/kimi-k2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3, cache_read: 0.1 }, - limit: { context: 256000, output: 256000 }, - }, - "@cf/google/gemma-3-12b-it": { - id: "@cf/google/gemma-3-12b-it", - name: "Gemma 3 12B IT", - family: "gemma", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-11", - last_updated: "2025-04-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.35, output: 0.56 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/qwen/qwq-32b": { - id: "@cf/qwen/qwq-32b", - name: "QwQ 32B", + "qwen2-5-omni-7b": { + id: "qwen2-5-omni-7b", + name: "Qwen2.5-Omni 7B", family: "qwen", attachment: false, reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-11", - last_updated: "2025-04-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.66, output: 1 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/qwen/qwen3-30b-a3b-fp8": { - id: "@cf/qwen/qwen3-30b-a3b-fp8", - name: "Qwen3 30B A3B FP8", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.051, output: 0.34 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/qwen/qwen2.5-coder-32b-instruct": { - id: "@cf/qwen/qwen2.5-coder-32b-instruct", - name: "Qwen 2.5 Coder 32B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-11", - last_updated: "2025-04-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.66, output: 1 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/qwen/qwen3-embedding-0.6b": { - id: "@cf/qwen/qwen3-embedding-0.6b", - name: "Qwen3 Embedding 0.6B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.012, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/meta/llama-3.1-8b-instruct-fp8": { - id: "@cf/meta/llama-3.1-8b-instruct-fp8", - name: "Llama 3.1 8B Instruct FP8", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.29 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/meta/llama-3-8b-instruct-awq": { - id: "@cf/meta/llama-3-8b-instruct-awq", - name: "Llama 3 8B Instruct AWQ", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.12, output: 0.27 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/meta/llama-3.1-8b-instruct-awq": { - id: "@cf/meta/llama-3.1-8b-instruct-awq", - name: "Llama 3.1 8B Instruct AWQ", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.12, output: 0.27 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/meta/llama-4-scout-17b-16e-instruct": { - id: "@cf/meta/llama-4-scout-17b-16e-instruct", - name: "Llama 4 Scout 17B 16E Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 0.85 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/meta/llama-3.2-11b-vision-instruct": { - id: "@cf/meta/llama-3.2-11b-vision-instruct", - name: "Llama 3.2 11B Vision Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.049, output: 0.68 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/meta/llama-3.2-3b-instruct": { - id: "@cf/meta/llama-3.2-3b-instruct", - name: "Llama 3.2 3B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.051, output: 0.34 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/meta/llama-guard-3-8b": { - id: "@cf/meta/llama-guard-3-8b", - name: "Llama Guard 3 8B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.48, output: 0.03 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/meta/llama-3.2-1b-instruct": { - id: "@cf/meta/llama-3.2-1b-instruct", - name: "Llama 3.2 1B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.027, output: 0.2 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/meta/llama-3.3-70b-instruct-fp8-fast": { - id: "@cf/meta/llama-3.3-70b-instruct-fp8-fast", - name: "Llama 3.3 70B Instruct FP8 Fast", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.29, output: 2.25 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/meta/llama-3.1-8b-instruct": { - id: "@cf/meta/llama-3.1-8b-instruct", - name: "Llama 3.1 8B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.28, output: 0.8299999999999998 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/meta/m2m100-1.2b": { - id: "@cf/meta/m2m100-1.2b", - name: "M2M100 1.2B", - family: "m2m", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.34, output: 0.34 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/meta/llama-2-7b-chat-fp16": { - id: "@cf/meta/llama-2-7b-chat-fp16", - name: "Llama 2 7B Chat FP16", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.56, output: 6.67 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/meta/llama-3-8b-instruct": { - id: "@cf/meta/llama-3-8b-instruct", - name: "Llama 3 8B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.28, output: 0.83 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/mistralai/mistral-small-3.1-24b-instruct": { - id: "@cf/mistralai/mistral-small-3.1-24b-instruct", - name: "Mistral Small 3.1 24B Instruct", - family: "mistral-small", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-11", - last_updated: "2025-04-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.35, output: 0.56 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/deepgram/aura-2-es": { - id: "@cf/deepgram/aura-2-es", - name: "Deepgram Aura 2 (ES)", - family: "aura", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/deepgram/nova-3": { - id: "@cf/deepgram/nova-3", - name: "Deepgram Nova 3", - family: "nova", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/deepgram/aura-2-en": { - id: "@cf/deepgram/aura-2-en", - name: "Deepgram Aura 2 (EN)", - family: "aura", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/openai/gpt-oss-120b": { - id: "@cf/openai/gpt-oss-120b", - name: "GPT OSS 120B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.35, output: 0.75 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/openai/gpt-oss-20b": { - id: "@cf/openai/gpt-oss-20b", - name: "GPT OSS 20B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.3 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/ai4bharat/indictrans2-en-indic-1B": { - id: "@cf/ai4bharat/indictrans2-en-indic-1B", - name: "IndicTrans2 EN-Indic 1B", - family: "indictrans", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.34, output: 0.34 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/huggingface/distilbert-sst-2-int8": { - id: "@cf/huggingface/distilbert-sst-2-int8", - name: "DistilBERT SST-2 INT8", - family: "distilbert", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.026, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "@cf/aisingapore/gemma-sea-lion-v4-27b-it": { - id: "@cf/aisingapore/gemma-sea-lion-v4-27b-it", - name: "Gemma SEA-LION v4 27B IT", - family: "gemma", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.35, output: 0.56 }, - limit: { context: 128000, output: 16384 }, - }, - }, - }, - groq: { - id: "groq", - env: ["GROQ_API_KEY"], - npm: "@ai-sdk/groq", - name: "Groq", - doc: "https://console.groq.com/docs/models", - models: { - "llama3-70b-8192": { - id: "llama3-70b-8192", - name: "Llama 3 70B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-03", - release_date: "2024-04-18", - last_updated: "2024-04-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.59, output: 0.79 }, - limit: { context: 8192, output: 8192 }, - status: "deprecated", - }, - "qwen-qwq-32b": { - id: "qwen-qwq-32b", - name: "Qwen QwQ 32B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-09", - release_date: "2024-11-27", - last_updated: "2024-11-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.29, output: 0.39 }, - limit: { context: 131072, output: 16384 }, - status: "deprecated", - }, - "llama-3.1-8b-instant": { - id: "llama-3.1-8b-instant", - name: "Llama 3.1 8B Instant", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.08 }, - limit: { context: 131072, output: 131072 }, - }, - "llama-guard-3-8b": { - id: "llama-guard-3-8b", - name: "Llama Guard 3 8B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 8192, output: 8192 }, - status: "deprecated", - }, - "deepseek-r1-distill-llama-70b": { - id: "deepseek-r1-distill-llama-70b", - name: "DeepSeek R1 Distill Llama 70B", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.75, output: 0.99 }, - limit: { context: 131072, output: 8192 }, - status: "deprecated", - }, - "llama3-8b-8192": { - id: "llama3-8b-8192", - name: "Llama 3 8B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-03", - release_date: "2024-04-18", - last_updated: "2024-04-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.08 }, - limit: { context: 8192, output: 8192 }, - status: "deprecated", - }, - "mistral-saba-24b": { - id: "mistral-saba-24b", - name: "Mistral Saba 24B", - family: "mistral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-02-06", - last_updated: "2025-02-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.79, output: 0.79 }, - limit: { context: 32768, output: 32768 }, - status: "deprecated", - }, - "llama-3.3-70b-versatile": { - id: "llama-3.3-70b-versatile", - name: "Llama 3.3 70B Versatile", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.59, output: 0.79 }, - limit: { context: 131072, output: 32768 }, - }, - "gemma2-9b-it": { - id: "gemma2-9b-it", - name: "Gemma 2 9B", - family: "gemma", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-06", - release_date: "2024-06-27", - last_updated: "2024-06-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 8192, output: 8192 }, - status: "deprecated", - }, - "moonshotai/kimi-k2-instruct": { - id: "moonshotai/kimi-k2-instruct", - name: "Kimi K2 Instruct", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-07-14", - last_updated: "2025-07-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3 }, - limit: { context: 131072, output: 16384 }, - status: "deprecated", - }, - "moonshotai/kimi-k2-instruct-0905": { - id: "moonshotai/kimi-k2-instruct-0905", - name: "Kimi K2 Instruct 0905", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3 }, - limit: { context: 262144, output: 16384 }, - }, - "qwen/qwen3-32b": { - id: "qwen/qwen3-32b", - name: "Qwen3 32B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-11-08", - release_date: "2024-12-23", - last_updated: "2024-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.29, output: 0.59 }, - limit: { context: 131072, output: 16384 }, - }, - "meta-llama/llama-4-scout-17b-16e-instruct": { - id: "meta-llama/llama-4-scout-17b-16e-instruct", - name: "Llama 4 Scout 17B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.11, output: 0.34 }, - limit: { context: 131072, output: 8192 }, - }, - "meta-llama/llama-guard-4-12b": { - id: "meta-llama/llama-guard-4-12b", - name: "Llama Guard 4 12B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 131072, output: 1024 }, - }, - "meta-llama/llama-4-maverick-17b-128e-instruct": { - id: "meta-llama/llama-4-maverick-17b-128e-instruct", - name: "Llama 4 Maverick 17B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.6 }, - limit: { context: 131072, output: 8192 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "GPT OSS 120B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 131072, output: 65536 }, - }, - "openai/gpt-oss-20b": { - id: "openai/gpt-oss-20b", - name: "GPT OSS 20B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.075, output: 0.3 }, - limit: { context: 131072, output: 65536 }, - }, - }, - }, - wandb: { - id: "wandb", - env: ["WANDB_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.inference.wandb.ai/v1", - name: "Weights & Biases", - doc: "https://docs.wandb.ai/guides/integrations/inference/", - models: { - "zai-org/GLM-5-FP8": { - id: "zai-org/GLM-5-FP8", - name: "GLM 5", - family: "glm", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3.2 }, - limit: { context: 200000, output: 200000 }, - }, - "nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-FP8": { - id: "nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-FP8", - name: "NVIDIA Nemotron 3 Super 120B", - family: "nemotron", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-03-11", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 262144, output: 262144 }, - }, - "microsoft/Phi-4-mini-instruct": { - id: "microsoft/Phi-4-mini-instruct", - name: "Phi-4-mini-instruct", - family: "phi", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-12-11", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.08, output: 0.35 }, - limit: { context: 128000, output: 128000 }, - }, - "MiniMaxAI/MiniMax-M2.5": { - id: "MiniMaxAI/MiniMax-M2.5", - name: "MiniMax M2.5", - family: "minimax", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 196608, output: 196608 }, - }, - "deepseek-ai/DeepSeek-V3.1": { - id: "deepseek-ai/DeepSeek-V3.1", - name: "DeepSeek V3.1", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-21", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 1.65 }, - limit: { context: 161000, output: 161000 }, - }, - "moonshotai/Kimi-K2.5": { - id: "moonshotai/Kimi-K2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-01-27", - last_updated: "2026-03-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 2.85 }, - limit: { context: 262144, output: 262144 }, - }, - "meta-llama/Llama-4-Scout-17B-16E-Instruct": { - id: "meta-llama/Llama-4-Scout-17B-16E-Instruct", - name: "Llama 4 Scout 17B 16E Instruct", - family: "llama", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-01-31", - last_updated: "2026-03-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.17, output: 0.66 }, - limit: { context: 64000, output: 64000 }, - }, - "meta-llama/Llama-3.1-70B-Instruct": { - id: "meta-llama/Llama-3.1-70B-Instruct", - name: "Llama 3.1 70B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-07-23", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.8, output: 0.8 }, - limit: { context: 128000, output: 128000 }, - }, - "meta-llama/Llama-3.1-8B-Instruct": { - id: "meta-llama/Llama-3.1-8B-Instruct", - name: "Meta-Llama-3.1-8B-Instruct", - family: "llama", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.22, output: 0.22 }, - limit: { context: 128000, output: 128000 }, - }, - "meta-llama/Llama-3.3-70B-Instruct": { - id: "meta-llama/Llama-3.3-70B-Instruct", - name: "Llama-3.3-70B-Instruct", - family: "llama", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-12-06", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.71, output: 0.71 }, - limit: { context: 128000, output: 128000 }, - }, - "Qwen/Qwen3-30B-A3B-Instruct-2507": { - id: "Qwen/Qwen3-30B-A3B-Instruct-2507", - name: "Qwen3 30B A3B Instruct 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-29", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 262144, output: 262144 }, - }, - "Qwen/Qwen3-235B-A22B-Thinking-2507": { - id: "Qwen/Qwen3-235B-A22B-Thinking-2507", - name: "Qwen3-235B-A22B-Thinking-2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-25", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.1 }, - limit: { context: 262144, output: 262144 }, - }, - "Qwen/Qwen3-Coder-480B-A35B-Instruct": { - id: "Qwen/Qwen3-Coder-480B-A35B-Instruct", - name: "Qwen3-Coder-480B-A35B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 1.5 }, - limit: { context: 262144, output: 262144 }, - }, - "Qwen/Qwen3-235B-A22B-Instruct-2507": { - id: "Qwen/Qwen3-235B-A22B-Instruct-2507", - name: "Qwen3 235B A22B Instruct 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04-28", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.1 }, - limit: { context: 262144, output: 262144 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "gpt-oss-120b", - family: "gpt-oss", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 131072, output: 131072 }, - }, - "openai/gpt-oss-20b": { - id: "openai/gpt-oss-20b", - name: "gpt-oss-20b", - family: "gpt-oss", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.2 }, - limit: { context: 131072, output: 131072 }, - }, - "OpenPipe/Qwen3-14B-Instruct": { - id: "OpenPipe/Qwen3-14B-Instruct", - name: "OpenPipe Qwen3 14B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-29", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.22 }, - limit: { context: 32768, output: 32768 }, - }, - }, - }, - aihubmix: { - id: "aihubmix", - env: ["AIHUBMIX_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://aihubmix.com/v1", - name: "AIHubMix", - doc: "https://docs.aihubmix.com", - models: { - "qwen3-235b-a22b-instruct-2507": { - id: "qwen3-235b-a22b-instruct-2507", - name: "Qwen3 235B A22B Instruct 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-30", - last_updated: "2025-07-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.28, output: 1.12 }, - limit: { context: 262144, output: 262144 }, - }, - "gpt-5-codex": { - id: "gpt-5-codex", - name: "GPT-5-Codex", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.13 }, - limit: { context: 400000, output: 128000 }, - }, - "gpt-5-pro": { - id: "gpt-5-pro", - name: "GPT-5-Pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-09-30", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 7, output: 28, cache_read: 3.5 }, - limit: { context: 400000, output: 128000 }, - }, - "glm-5": { - id: "glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.88, output: 2.82 }, - limit: { context: 204800, output: 131072 }, - }, - "gpt-5.1-codex-max": { - id: "gpt-5.1-codex-max", - name: "GPT-5.1-Codex-Max", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "claude-opus-4-1": { - id: "claude-opus-4-1", - name: "Claude Opus 4.1", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 16.5, output: 82.5, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "qwen3-coder-480b-a35b-instruct": { - id: "qwen3-coder-480b-a35b-instruct", - name: "Qwen3 Coder 480B A35B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-08-01", - last_updated: "2025-08-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.82, output: 3.29 }, - limit: { context: 262144, output: 131000 }, - }, - "gpt-5.2-codex": { - id: "gpt-5.2-codex", - name: "GPT-5.2-Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2026-01-14", - last_updated: "2026-01-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, output: 128000 }, - }, - "claude-opus-4-6": { - id: "claude-opus-4-6", - name: "Claude Opus 4.6", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 5, - output: 25, - cache_read: 0.3, - cache_write: 3.75, - context_over_200k: { input: 6, output: 22, cache_read: 0.6, cache_write: 7.5 }, - }, - limit: { context: 200000, output: 128000 }, - }, - "coding-glm-4.7-free": { - id: "coding-glm-4.7-free", - name: "Coding GLM 4.7 Free", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "coding-minimax-m2.1-free": { - id: "coding-minimax-m2.1-free", - name: "Coding MiniMax M2.1 Free", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "claude-sonnet-4-6": { - id: "claude-sonnet-4-6", - name: "Claude Sonnet 4.6", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2026-02-17", - last_updated: "2026-02-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 3, - output: 15, - cache_read: 0.3, - cache_write: 3.75, - context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, - }, - limit: { context: 200000, output: 64000 }, - }, - "gemini-2.5-flash": { - id: "gemini-2.5-flash", - name: "Gemini 2.5 Flash", - family: "gemini-flash", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.075, output: 0.3, cache_read: 0.02 }, - limit: { context: 1000000, output: 65000 }, - }, - "claude-opus-4-6-think": { - id: "claude-opus-4-6-think", - name: "Claude Opus 4.6 Think", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 5, - output: 25, - cache_read: 0.3, - cache_write: 3.75, - context_over_200k: { input: 6, output: 22, cache_read: 0.6, cache_write: 7.5 }, - }, - limit: { context: 200000, output: 128000 }, - }, - "gpt-5.1": { - id: "gpt-5.1", - name: "GPT-5.1", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-11", - release_date: "2025-11-15", - last_updated: "2025-11-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "qwen3-coder-next": { - id: "qwen3-coder-next", - name: "Qwen3 Coder Next", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2026-02-04", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.14, output: 0.55 }, - limit: { context: 262144, input: 262144, output: 65536 }, - }, - "minimax-m2.1": { - id: "minimax-m2.1", - name: "MiniMax M2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.29, output: 1.15 }, - limit: { context: 204800, output: 131072 }, - }, - "gpt-4.1-nano": { - id: "gpt-4.1-nano", - name: "GPT-4.1 nano", - family: "gpt-nano", - attachment: true, - reasoning: false, tool_call: true, temperature: true, knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.03 }, - limit: { context: 1047576, output: 32768 }, - }, - "gemini-3-pro-preview-search": { - id: "gemini-3-pro-preview-search", - name: "Gemini 3 Pro Preview Search", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-11", - release_date: "2025-11-19", - last_updated: "2025-11-19", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.5 }, - limit: { context: 1000000, output: 65000 }, - }, - "gpt-5.1-codex-mini": { - id: "gpt-5.1-codex-mini", - name: "GPT-5.1 Codex Mini", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-11", - release_date: "2025-11-15", - last_updated: "2025-11-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.03 }, - limit: { context: 400000, output: 128000 }, - }, - "gpt-5.2": { - id: "gpt-5.2", - name: "GPT-5.2", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, output: 128000 }, - }, - "deepseek-v3.2-think": { - id: "deepseek-v3.2-think", - name: "DeepSeek-V3.2-Think", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, + release_date: "2024-12", + last_updated: "2024-12", + modalities: { input: ["text", "image", "audio", "video"], output: ["text", "audio"] }, open_weights: true, - cost: { input: 0.3, output: 0.45 }, - limit: { context: 131000, output: 64000 }, - }, - "kimi-k2.5": { - id: "kimi-k2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-07", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3, cache_read: 0.1 }, - limit: { context: 262144, output: 262144 }, - }, - "Kimi-K2-0905": { - id: "Kimi-K2-0905", - name: "Kimi K2 0905", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.19 }, - limit: { context: 262144, output: 262144 }, - }, - "gpt-4.1": { - id: "gpt-4.1", - name: "GPT-4.1", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 1047576, output: 32768 }, - }, - "deepseek-v3.2": { - id: "deepseek-v3.2", - name: "DeepSeek-V3.2", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.45 }, - limit: { context: 131000, output: 64000 }, - }, - "qwen3-max-2026-01-23": { - id: "qwen3-max-2026-01-23", - name: "Qwen3 Max", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-23", - last_updated: "2025-09-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.34, output: 1.37 }, - limit: { context: 262144, output: 65536 }, - }, - "gpt-5": { - id: "gpt-5", - name: "GPT-5", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-09-30", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 20, cache_read: 2.5 }, - limit: { context: 400000, output: 128000 }, - }, - "o4-mini": { - id: "o4-mini", - name: "o4-mini", - family: "o-mini", - attachment: false, - reasoning: true, - tool_call: false, - temperature: false, - knowledge: "2024-09", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.5, output: 6, cache_read: 0.75 }, - limit: { context: 200000, output: 65536 }, - }, - "gpt-4.1-mini": { - id: "gpt-4.1-mini", - name: "GPT-4.1 mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.6, cache_read: 0.1 }, - limit: { context: 1047576, output: 32768 }, - }, - "glm-4.7": { - id: "glm-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 1.1, cache_read: 0.548 }, - limit: { context: 204800, output: 131072 }, - }, - "claude-haiku-4-5": { - id: "claude-haiku-4-5", - name: "Claude Haiku 4.5", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 5.5, cache_read: 0.11, cache_write: 1.25 }, - limit: { context: 200000, output: 64000 }, - }, - "gpt-5.1-codex": { - id: "gpt-5.1-codex", - name: "GPT-5.1 Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-11", - release_date: "2025-11-15", - last_updated: "2025-11-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.13 }, - limit: { context: 400000, output: 128000 }, - }, - "minimax-m2.5": { - id: "minimax-m2.5", - name: "MiniMax-M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.29, output: 1.15 }, - limit: { context: 204800, output: 131072 }, - }, - "claude-opus-4-5": { - id: "claude-opus-4-5", - name: "Claude Opus 4.5", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03", - release_date: "2025-11-25", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 32000 }, - }, - "qwen3-235b-a22b-thinking-2507": { - id: "qwen3-235b-a22b-thinking-2507", - name: "Qwen3 235B A22B Thinking 2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-30", - last_updated: "2025-07-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.28, output: 2.8 }, - limit: { context: 262144, output: 262144 }, - }, - "gemini-3-pro-preview": { - id: "gemini-3-pro-preview", - name: "Gemini 3 Pro Preview", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-11", - release_date: "2025-11-19", - last_updated: "2025-11-19", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.5 }, - limit: { context: 1000000, output: 65000 }, + cost: { input: 0.1, output: 0.4, input_audio: 6.76 }, + limit: { context: 32768, output: 2048 }, }, "qwen3.5-plus": { id: "qwen3.5-plus", - name: "Qwen 3.5 Plus", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02-16", - last_updated: "2026-02-16", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.11, output: 0.66 }, - limit: { context: 1000000, output: 65536 }, - }, - "claude-sonnet-4-5": { - id: "claude-sonnet-4-5", - name: "Claude Sonnet 4.5", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3.3, output: 16.5, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "gpt-5-mini": { - id: "gpt-5-mini", - name: "GPT-5-Mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-09-30", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.5, output: 6, cache_read: 0.75 }, - limit: { context: 200000, output: 64000 }, - }, - "deepseek-v3.2-fast": { - id: "deepseek-v3.2-fast", - name: "DeepSeek-V3.2-Fast", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: false, - knowledge: "2024-07", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.1, output: 3.29 }, - limit: { context: 128000, output: 128000 }, - }, - "glm-4.6v": { - id: "glm-4.6v", - name: "GLM-4.6V", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-08", - last_updated: "2025-12-08", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.14, output: 0.41 }, - limit: { context: 128000, output: 32768 }, - }, - "coding-glm-4.7": { - id: "coding-glm-4.7", - name: "Coding-GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 1.1, cache_read: 0.548 }, - limit: { context: 204800, output: 131072 }, - }, - "coding-glm-5-free": { - id: "coding-glm-5-free", - name: "Coding-GLM-5-Free", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "gemini-2.5-pro": { - id: "gemini-2.5-pro", - name: "Gemini 2.5 Pro", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 5, cache_read: 0.31 }, - limit: { context: 2000000, output: 65000 }, - }, - "gpt-5-nano": { - id: "gpt-5-nano", - name: "GPT-5-Nano", - family: "gpt-nano", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-09-30", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 2, cache_read: 0.25 }, - limit: { context: 128000, output: 16384 }, - }, - "claude-sonnet-4-6-think": { - id: "claude-sonnet-4-6-think", - name: "Claude Sonnet 4.6 Think", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2026-02-17", - last_updated: "2026-02-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 3, - output: 15, - cache_read: 0.3, - cache_write: 3.75, - context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, - }, - limit: { context: 200000, output: 64000 }, - }, - "gpt-4o": { - id: "gpt-4o", - name: "GPT-4o", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-09", - release_date: "2024-05-13", - last_updated: "2024-08-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10, cache_read: 1.25 }, - limit: { context: 128000, output: 16384 }, - }, - }, - }, - "minimax-coding-plan": { - id: "minimax-coding-plan", - env: ["MINIMAX_API_KEY"], - npm: "@ai-sdk/anthropic", - api: "https://api.minimax.io/anthropic/v1", - name: "MiniMax Coding Plan (minimax.io)", - doc: "https://platform.minimax.io/docs/coding-plan/intro", - models: { - "MiniMax-M2.5": { - id: "MiniMax-M2.5", - name: "MiniMax-M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMax-M2.7-highspeed": { - id: "MiniMax-M2.7-highspeed", - name: "MiniMax-M2.7-highspeed", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMax-M2": { - id: "MiniMax-M2", - name: "MiniMax-M2", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-10-27", - last_updated: "2025-10-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 196608, output: 128000 }, - }, - "MiniMax-M2.5-highspeed": { - id: "MiniMax-M2.5-highspeed", - name: "MiniMax-M2.5-highspeed", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-13", - last_updated: "2026-02-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMax-M2.1": { - id: "MiniMax-M2.1", - name: "MiniMax-M2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMax-M2.7": { - id: "MiniMax-M2.7", - name: "MiniMax-M2.7", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - }, - }, - "kimi-for-coding": { - id: "kimi-for-coding", - env: ["KIMI_API_KEY"], - npm: "@ai-sdk/anthropic", - api: "https://api.kimi.com/coding/v1", - name: "Kimi For Coding", - doc: "https://www.kimi.com/coding/docs/en/third-party-agents.html", - models: { - k2p5: { - id: "k2p5", - name: "Kimi K2.5", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 262144, output: 32768 }, - }, - "kimi-k2-thinking": { - id: "kimi-k2-thinking", - name: "Kimi K2 Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-11", - last_updated: "2025-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 262144, output: 32768 }, - }, - }, - }, - mistral: { - id: "mistral", - env: ["MISTRAL_API_KEY"], - npm: "@ai-sdk/mistral", - name: "Mistral", - doc: "https://docs.mistral.ai/getting-started/models/", - models: { - "devstral-medium-2507": { - id: "devstral-medium-2507", - name: "Devstral Medium", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2025-07-10", - last_updated: "2025-07-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 2 }, - limit: { context: 128000, output: 128000 }, - }, - "labs-devstral-small-2512": { - id: "labs-devstral-small-2512", - name: "Devstral Small 2", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-12", - release_date: "2025-12-09", - last_updated: "2025-12-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 256000 }, - }, - "devstral-medium-latest": { - id: "devstral-medium-latest", - name: "Devstral 2 (latest)", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-12", - release_date: "2025-12-02", - last_updated: "2025-12-02", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 2 }, - limit: { context: 262144, output: 262144 }, - }, - "open-mistral-7b": { - id: "open-mistral-7b", - name: "Mistral 7B", - family: "mistral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2023-09-27", - last_updated: "2023-09-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.25, output: 0.25 }, - limit: { context: 8000, output: 8000 }, - }, - "mistral-small-2506": { - id: "mistral-small-2506", - name: "Mistral Small 3.2", - family: "mistral-small", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-03", - release_date: "2025-06-20", - last_updated: "2025-06-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 128000, output: 16384 }, - }, - "mistral-medium-2505": { - id: "mistral-medium-2505", - name: "Mistral Medium 3", - family: "mistral-medium", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2025-05-07", - last_updated: "2025-05-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2 }, - limit: { context: 131072, output: 131072 }, - }, - "codestral-latest": { - id: "codestral-latest", - name: "Codestral (latest)", - family: "codestral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-05-29", - last_updated: "2025-01-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.9 }, - limit: { context: 256000, output: 4096 }, - }, - "ministral-8b-latest": { - id: "ministral-8b-latest", - name: "Ministral 8B (latest)", - family: "ministral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-10-01", - last_updated: "2024-10-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.1 }, - limit: { context: 128000, output: 128000 }, - }, - "magistral-small": { - id: "magistral-small", - name: "Magistral Small", - family: "magistral-small", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-03-17", - last_updated: "2025-03-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 1.5 }, - limit: { context: 128000, output: 128000 }, - }, - "mistral-large-2512": { - id: "mistral-large-2512", - name: "Mistral Large 3", - family: "mistral-large", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2024-11-01", - last_updated: "2025-12-02", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 1.5 }, - limit: { context: 262144, output: 262144 }, - }, - "ministral-3b-latest": { - id: "ministral-3b-latest", - name: "Ministral 3B (latest)", - family: "ministral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-10-01", - last_updated: "2024-10-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.04, output: 0.04 }, - limit: { context: 128000, output: 128000 }, - }, - "mistral-embed": { - id: "mistral-embed", - name: "Mistral Embed", - family: "mistral-embed", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2023-12-11", - last_updated: "2023-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0 }, - limit: { context: 8000, output: 3072 }, - }, - "devstral-small-2505": { - id: "devstral-small-2505", - name: "Devstral Small 2505", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2025-05-07", - last_updated: "2025-05-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 128000, output: 128000 }, - }, - "pixtral-12b": { - id: "pixtral-12b", - name: "Pixtral 12B", - family: "pixtral", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-09", - release_date: "2024-09-01", - last_updated: "2024-09-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.15 }, - limit: { context: 128000, output: 128000 }, - }, - "open-mixtral-8x7b": { - id: "open-mixtral-8x7b", - name: "Mixtral 8x7B", - family: "mixtral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-01", - release_date: "2023-12-11", - last_updated: "2023-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.7, output: 0.7 }, - limit: { context: 32000, output: 32000 }, - }, - "pixtral-large-latest": { - id: "pixtral-large-latest", - name: "Pixtral Large (latest)", - family: "pixtral", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2024-11-01", - last_updated: "2024-11-04", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 2, output: 6 }, - limit: { context: 128000, output: 128000 }, - }, - "mistral-nemo": { - id: "mistral-nemo", - name: "Mistral Nemo", - family: "mistral-nemo", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2024-07-01", - last_updated: "2024-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.15 }, - limit: { context: 128000, output: 128000 }, - }, - "devstral-2512": { - id: "devstral-2512", - name: "Devstral 2", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-12", - release_date: "2025-12-09", - last_updated: "2025-12-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 2 }, - limit: { context: 262144, output: 262144 }, - }, - "mistral-large-latest": { - id: "mistral-large-latest", - name: "Mistral Large (latest)", - family: "mistral-large", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2024-11-01", - last_updated: "2025-12-02", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 1.5 }, - limit: { context: 262144, output: 262144 }, - }, - "mistral-medium-2508": { - id: "mistral-medium-2508", - name: "Mistral Medium 3.1", - family: "mistral-medium", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2025-08-12", - last_updated: "2025-08-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2 }, - limit: { context: 262144, output: 262144 }, - }, - "mistral-large-2411": { - id: "mistral-large-2411", - name: "Mistral Large 2.1", - family: "mistral-large", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2024-11-01", - last_updated: "2024-11-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2, output: 6 }, - limit: { context: 131072, output: 16384 }, - }, - "mistral-small-latest": { - id: "mistral-small-latest", - name: "Mistral Small (latest)", - family: "mistral-small", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-03", - release_date: "2024-09-01", - last_updated: "2024-09-04", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 128000, output: 16384 }, - }, - "open-mixtral-8x22b": { - id: "open-mixtral-8x22b", - name: "Mixtral 8x22B", - family: "mixtral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-04-17", - last_updated: "2024-04-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2, output: 6 }, - limit: { context: 64000, output: 64000 }, - }, - "mistral-medium-latest": { - id: "mistral-medium-latest", - name: "Mistral Medium (latest)", - family: "mistral-medium", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2025-05-07", - last_updated: "2025-05-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 2 }, - limit: { context: 128000, output: 16384 }, - }, - "devstral-small-2507": { - id: "devstral-small-2507", - name: "Devstral Small", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2025-07-10", - last_updated: "2025-07-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 128000, output: 128000 }, - }, - "magistral-medium-latest": { - id: "magistral-medium-latest", - name: "Magistral Medium (latest)", - family: "magistral-medium", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-03-17", - last_updated: "2025-03-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2, output: 5 }, - limit: { context: 128000, output: 16384 }, - }, - }, - }, - abacus: { - id: "abacus", - env: ["ABACUS_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://routellm.abacus.ai/v1", - name: "Abacus", - doc: "https://abacus.ai/help/api", - models: { - "gpt-4o-2024-11-20": { - id: "gpt-4o-2024-11-20", - name: "GPT-4o (2024-11-20)", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-11-20", - last_updated: "2024-11-20", - modalities: { input: ["text", "image", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10 }, - limit: { context: 128000, output: 16384 }, - }, - "gpt-5.3-codex": { - id: "gpt-5.3-codex", - name: "GPT-5.3 Codex", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "gpt-5-codex": { - id: "gpt-5-codex", - name: "GPT-5 Codex", - family: "gpt", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "claude-opus-4-5-20251101": { - id: "claude-opus-4-5-20251101", - name: "Claude Opus 4.5", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-01", - last_updated: "2025-11-01", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25 }, - limit: { context: 200000, output: 64000 }, - }, - "gpt-4o-mini": { - id: "gpt-4o-mini", - name: "GPT-4o Mini", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 128000, output: 16384 }, - }, - "gpt-5.1-codex-max": { - id: "gpt-5.1-codex-max", - name: "GPT-5.1 Codex Max", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "gpt-5.2-chat-latest": { - id: "gpt-5.2-chat-latest", - name: "GPT-5.2 Chat Latest", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-09-30", - release_date: "2026-01-01", - last_updated: "2026-01-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14 }, - limit: { context: 400000, output: 128000 }, - }, - "grok-4-0709": { - id: "grok-4-0709", - name: "Grok 4", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 256000, output: 16384 }, - }, - "gpt-5.2-codex": { - id: "gpt-5.2-codex", - name: "GPT-5.2 Codex", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "claude-opus-4-6": { - id: "claude-opus-4-6", - name: "Claude Opus 4.6", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25 }, - limit: { context: 200000, output: 128000 }, - }, - "grok-code-fast-1": { - id: "grok-code-fast-1", - name: "Grok Code Fast 1", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-09-01", - last_updated: "2025-09-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.5 }, - limit: { context: 256000, output: 16384 }, - }, - "claude-sonnet-4-6": { - id: "claude-sonnet-4-6", - name: "Claude Sonnet 4.6", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2026-02-17", - last_updated: "2026-02-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 200000, output: 64000 }, - }, - "gemini-2.5-flash": { - id: "gemini-2.5-flash", - name: "Gemini 2.5 Flash", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-03-20", - last_updated: "2025-06-05", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5 }, - limit: { context: 1048576, output: 65536 }, - }, - "gpt-5.3-codex-xhigh": { - id: "gpt-5.3-codex-xhigh", - name: "GPT-5.3 Codex XHigh", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "grok-4-1-fast-non-reasoning": { - id: "grok-4-1-fast-non-reasoning", - name: "Grok 4.1 Fast (Non-Reasoning)", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-11-17", - last_updated: "2025-11-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5 }, - limit: { context: 2000000, output: 16384 }, - }, - "gpt-5.1": { - id: "gpt-5.1", - name: "GPT-5.1", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, output: 128000 }, - }, - "gemini-3.1-flash-lite-preview": { - id: "gemini-3.1-flash-lite-preview", - name: "Gemini 3.1 Flash Lite Preview", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-03-01", - last_updated: "2026-03-01", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1.5, cache_read: 0.025, cache_write: 1 }, - limit: { context: 1048576, output: 65536 }, - }, - o3: { - id: "o3", - name: "o3", - family: "o", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05", - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8 }, - limit: { context: 200000, output: 100000 }, - }, - "gemini-3-flash-preview": { - id: "gemini-3-flash-preview", - name: "Gemini 3 Flash Preview", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 3 }, - limit: { context: 1048576, output: 65536 }, - }, - "claude-opus-4-20250514": { - id: "claude-opus-4-20250514", - name: "Claude Opus 4", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-05-14", - last_updated: "2025-05-14", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75 }, - limit: { context: 200000, output: 32000 }, - }, - "gpt-4.1-nano": { - id: "gpt-4.1-nano", - name: "GPT-4.1 Nano", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 1047576, output: 32768 }, - }, - "claude-sonnet-4-5-20250929": { - id: "claude-sonnet-4-5-20250929", - name: "Claude Sonnet 4.5", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 200000, output: 64000 }, - }, - "gpt-5.2": { - id: "gpt-5.2", - name: "GPT-5.2", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14 }, - limit: { context: 400000, output: 128000 }, - }, - "kimi-k2.5": { - id: "kimi-k2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3 }, - limit: { context: 262144, output: 32768 }, - }, - "gpt-4.1": { - id: "gpt-4.1", - name: "GPT-4.1", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8 }, - limit: { context: 1047576, output: 32768 }, - }, - "o3-pro": { - id: "o3-pro", - name: "o3-pro", - family: "o-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05", - release_date: "2025-06-10", - last_updated: "2025-06-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 20, output: 40 }, - limit: { context: 200000, output: 100000 }, - }, - "gemini-3.1-pro-preview": { - id: "gemini-3.1-pro-preview", - name: "Gemini 3.1 Pro Preview", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-02-19", - last_updated: "2026-02-19", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12 }, - limit: { context: 1048576, output: 65536 }, - }, - "claude-3-7-sonnet-20250219": { - id: "claude-3-7-sonnet-20250219", - name: "Claude Sonnet 3.7", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10-31", - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 200000, output: 64000 }, - }, - "claude-haiku-4-5-20251001": { - id: "claude-haiku-4-5-20251001", - name: "Claude Haiku 4.5", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-02-28", - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5 }, - limit: { context: 200000, output: 64000 }, - }, - "gpt-5": { - id: "gpt-5", - name: "GPT-5", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, output: 128000 }, - }, - "o4-mini": { - id: "o4-mini", - name: "o4-mini", - family: "o-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05", - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4 }, - limit: { context: 200000, output: 100000 }, - }, - "gpt-4.1-mini": { - id: "gpt-4.1-mini", - name: "GPT-4.1 Mini", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.6 }, - limit: { context: 1047576, output: 32768 }, - }, - "llama-3.3-70b-versatile": { - id: "llama-3.3-70b-versatile", - name: "Llama 3.3 70B Versatile", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.59, output: 0.79 }, - limit: { context: 128000, output: 32768 }, - }, - "gpt-5.4": { - id: "gpt-5.4", - name: "GPT-5.4", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 15 }, - limit: { context: 1050000, input: 922000, output: 128000 }, - }, - "kimi-k2-turbo-preview": { - id: "kimi-k2-turbo-preview", - name: "Kimi K2 Turbo Preview", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-07-08", - last_updated: "2025-07-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 8 }, - limit: { context: 256000, output: 8192 }, - }, - "qwen-2.5-coder-32b": { - id: "qwen-2.5-coder-32b", - name: "Qwen 2.5 Coder 32B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-11-11", - last_updated: "2024-11-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.79, output: 0.79 }, - limit: { context: 128000, output: 8192 }, - }, - "gpt-5.1-codex": { - id: "gpt-5.1-codex", - name: "GPT-5.1 Codex", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "route-llm": { - id: "route-llm", - name: "Route LLM", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-01-01", - last_updated: "2024-01-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 128000, output: 16384 }, - }, - "gpt-5.3-chat-latest": { - id: "gpt-5.3-chat-latest", - name: "GPT-5.3 Chat Latest", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-01", - last_updated: "2026-03-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14 }, - limit: { context: 400000, output: 128000 }, - }, - "o3-mini": { - id: "o3-mini", - name: "o3-mini", - family: "o-mini", - attachment: false, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05", - release_date: "2024-12-20", - last_updated: "2025-01-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4 }, - limit: { context: 200000, output: 100000 }, - }, - "qwen3-max": { - id: "qwen3-max", - name: "Qwen3 Max", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-05-28", - last_updated: "2025-05-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.2, output: 6 }, - limit: { context: 131072, output: 16384 }, - }, - "grok-4-fast-non-reasoning": { - id: "grok-4-fast-non-reasoning", - name: "Grok 4 Fast (Non-Reasoning)", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5 }, - limit: { context: 2000000, output: 16384 }, - }, - "gpt-5-mini": { - id: "gpt-5-mini", - name: "GPT-5 Mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2 }, - limit: { context: 400000, output: 128000 }, - }, - "claude-sonnet-4-20250514": { - id: "claude-sonnet-4-20250514", - name: "Claude Sonnet 4", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-05-14", - last_updated: "2025-05-14", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 200000, output: 64000 }, - }, - "gpt-5.1-chat-latest": { - id: "gpt-5.1-chat-latest", - name: "GPT-5.1 Chat Latest", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, output: 128000 }, - }, - "claude-opus-4-1-20250805": { - id: "claude-opus-4-1-20250805", - name: "Claude Opus 4.1", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75 }, - limit: { context: 200000, output: 32000 }, - }, - "gemini-2.5-pro": { - id: "gemini-2.5-pro", - name: "Gemini 2.5 Pro", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-03-25", - last_updated: "2025-03-25", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 1048576, output: 65536 }, - }, - "gpt-5-nano": { - id: "gpt-5-nano", - name: "GPT-5 Nano", - family: "gpt-nano", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.4 }, - limit: { context: 400000, output: 128000 }, - }, - "zai-org/glm-5": { - id: "zai-org/glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3.2 }, - limit: { context: 204800, output: 131072 }, - }, - "zai-org/glm-4.5": { - id: "zai-org/glm-4.5", - name: "GLM-4.5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2 }, - limit: { context: 128000, output: 8192 }, - }, - "zai-org/glm-4.6": { - id: "zai-org/glm-4.6", - name: "GLM-4.6", - family: "glm", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-03-01", - last_updated: "2025-03-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2 }, - limit: { context: 128000, output: 8192 }, - }, - "zai-org/glm-4.7": { - id: "zai-org/glm-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-06-01", - last_updated: "2025-06-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2 }, - limit: { context: 128000, output: 8192 }, - }, - "deepseek-ai/DeepSeek-R1": { - id: "deepseek-ai/DeepSeek-R1", - name: "DeepSeek R1", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 3, output: 7 }, - limit: { context: 128000, output: 8192 }, - }, - "deepseek-ai/DeepSeek-V3.2": { - id: "deepseek-ai/DeepSeek-V3.2", - name: "DeepSeek V3.2", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-06-15", - last_updated: "2025-06-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 0.4 }, - limit: { context: 128000, output: 8192 }, - }, - "deepseek-ai/DeepSeek-V3.1-Terminus": { - id: "deepseek-ai/DeepSeek-V3.1-Terminus", - name: "DeepSeek V3.1 Terminus", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-06-01", - last_updated: "2025-06-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 1 }, - limit: { context: 128000, output: 8192 }, - }, - "deepseek/deepseek-v3.1": { - id: "deepseek/deepseek-v3.1", - name: "DeepSeek V3.1", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 1.66 }, - limit: { context: 128000, output: 8192 }, - }, - "meta-llama/Meta-Llama-3.1-8B-Instruct": { - id: "meta-llama/Meta-Llama-3.1-8B-Instruct", - name: "Llama 3.1 8B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0.05 }, - limit: { context: 128000, output: 4096 }, - }, - "meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo": { - id: "meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo", - name: "Llama 3.1 405B Instruct Turbo", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 3.5, output: 3.5 }, - limit: { context: 128000, output: 4096 }, - }, - "meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8": { - id: "meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8", - name: "Llama 4 Maverick 17B 128E Instruct FP8", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.14, output: 0.59 }, - limit: { context: 1000000, output: 32768 }, - }, - "Qwen/QwQ-32B": { - id: "Qwen/QwQ-32B", - name: "QwQ 32B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2024-11-28", - last_updated: "2024-11-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 0.4 }, - limit: { context: 32768, output: 32768 }, - }, - "Qwen/qwen3-coder-480b-a35b-instruct": { - id: "Qwen/qwen3-coder-480b-a35b-instruct", - name: "Qwen3 Coder 480B A35B Instruct", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-07-22", - last_updated: "2025-07-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.29, output: 1.2 }, - limit: { context: 262144, output: 65536 }, - }, - "Qwen/Qwen3-32B": { - id: "Qwen/Qwen3-32B", - name: "Qwen3 32B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-04-29", - last_updated: "2025-04-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.09, output: 0.29 }, - limit: { context: 128000, output: 8192 }, - }, - "Qwen/Qwen2.5-72B-Instruct": { - id: "Qwen/Qwen2.5-72B-Instruct", - name: "Qwen 2.5 72B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-09-19", - last_updated: "2024-09-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.11, output: 0.38 }, - limit: { context: 128000, output: 8192 }, - }, - "Qwen/Qwen3-235B-A22B-Instruct-2507": { - id: "Qwen/Qwen3-235B-A22B-Instruct-2507", - name: "Qwen3 235B A22B Instruct", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-07-01", - last_updated: "2025-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.13, output: 0.6 }, - limit: { context: 262144, output: 8192 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "GPT-OSS 120B", - family: "gpt-oss", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.08, output: 0.44 }, - limit: { context: 128000, output: 32768 }, - }, - }, - }, - "fireworks-ai": { - id: "fireworks-ai", - env: ["FIREWORKS_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.fireworks.ai/inference/v1/", - name: "Fireworks AI", - doc: "https://fireworks.ai/docs/", - models: { - "accounts/fireworks/routers/kimi-k2p5-turbo": { - id: "accounts/fireworks/routers/kimi-k2p5-turbo", - name: "Kimi K2.5 Turbo", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0 }, - limit: { context: 256000, output: 256000 }, - }, - "accounts/fireworks/models/kimi-k2-instruct": { - id: "accounts/fireworks/models/kimi-k2-instruct", - name: "Kimi K2 Instruct", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-07-11", - last_updated: "2025-07-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3 }, - limit: { context: 128000, output: 16384 }, - }, - "accounts/fireworks/models/glm-4p7": { - id: "accounts/fireworks/models/glm-4p7", - name: "GLM 4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2, cache_read: 0.3 }, - limit: { context: 198000, output: 198000 }, - }, - "accounts/fireworks/models/glm-5": { - id: "accounts/fireworks/models/glm-5", - name: "GLM 5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3.2, cache_read: 0.5 }, - limit: { context: 202752, output: 131072 }, - }, - "accounts/fireworks/models/deepseek-v3p1": { - id: "accounts/fireworks/models/deepseek-v3p1", - name: "DeepSeek V3.1", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-08-21", - last_updated: "2025-08-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.56, output: 1.68 }, - limit: { context: 163840, output: 163840 }, - }, - "accounts/fireworks/models/minimax-m2p1": { - id: "accounts/fireworks/models/minimax-m2p1", - name: "MiniMax-M2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.03 }, - limit: { context: 200000, output: 200000 }, - }, - "accounts/fireworks/models/glm-4p5-air": { - id: "accounts/fireworks/models/glm-4p5-air", - name: "GLM 4.5 Air", - family: "glm-air", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-08-01", - last_updated: "2025-08-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.22, output: 0.88 }, - limit: { context: 131072, output: 131072 }, - }, - "accounts/fireworks/models/deepseek-v3p2": { - id: "accounts/fireworks/models/deepseek-v3p2", - name: "DeepSeek V3.2", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-09", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.56, output: 1.68, cache_read: 0.28 }, - limit: { context: 160000, output: 160000 }, - }, - "accounts/fireworks/models/minimax-m2p5": { - id: "accounts/fireworks/models/minimax-m2p5", - name: "MiniMax-M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.03 }, - limit: { context: 196608, output: 196608 }, - }, - "accounts/fireworks/models/gpt-oss-120b": { - id: "accounts/fireworks/models/gpt-oss-120b", - name: "GPT OSS 120B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 131072, output: 32768 }, - }, - "accounts/fireworks/models/kimi-k2p5": { - id: "accounts/fireworks/models/kimi-k2p5", - name: "Kimi K2.5", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3, cache_read: 0.1 }, - limit: { context: 256000, output: 256000 }, - }, - "accounts/fireworks/models/kimi-k2-thinking": { - id: "accounts/fireworks/models/kimi-k2-thinking", - name: "Kimi K2 Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2025-11-06", - last_updated: "2025-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5, cache_read: 0.3 }, - limit: { context: 256000, output: 256000 }, - }, - "accounts/fireworks/models/glm-4p5": { - id: "accounts/fireworks/models/glm-4p5", - name: "GLM 4.5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-29", - last_updated: "2025-07-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.19 }, - limit: { context: 131072, output: 131072 }, - }, - "accounts/fireworks/models/gpt-oss-20b": { - id: "accounts/fireworks/models/gpt-oss-20b", - name: "GPT OSS 20B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.2 }, - limit: { context: 131072, output: 32768 }, - }, - }, - }, - stepfun: { - id: "stepfun", - env: ["STEPFUN_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.stepfun.com/v1", - name: "StepFun", - doc: "https://platform.stepfun.com/docs/zh/overview/concept", - models: { - "step-3.5-flash": { - id: "step-3.5-flash", - name: "Step 3.5 Flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01-29", - last_updated: "2026-02-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.096, output: 0.288, cache_read: 0.019 }, - limit: { context: 256000, input: 256000, output: 256000 }, - }, - "step-2-16k": { - id: "step-2-16k", - name: "Step 2 (16K)", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-06", - release_date: "2025-01-01", - last_updated: "2026-02-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 5.21, output: 16.44, cache_read: 1.04 }, - limit: { context: 16384, input: 16384, output: 8192 }, - }, - "step-1-32k": { - id: "step-1-32k", - name: "Step 1 (32K)", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-06", - release_date: "2025-01-01", - last_updated: "2026-02-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.05, output: 9.59, cache_read: 0.41 }, - limit: { context: 32768, input: 32768, output: 32768 }, - }, - }, - }, - gitlab: { - id: "gitlab", - env: ["GITLAB_TOKEN"], - npm: "gitlab-ai-provider", - name: "GitLab Duo", - doc: "https://docs.gitlab.com/user/duo_agent_platform/", - models: { - "duo-chat-gpt-5-2-codex": { - id: "duo-chat-gpt-5-2-codex", - name: "Agentic Chat (GPT-5.2 Codex)", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-01-22", - last_updated: "2026-01-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "duo-chat-opus-4-6": { - id: "duo-chat-opus-4-6", - name: "Agentic Chat (Claude Opus 4.6)", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 1000000, output: 64000 }, - }, - "duo-chat-gpt-5-mini": { - id: "duo-chat-gpt-5-mini", - name: "Agentic Chat (GPT-5 Mini)", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2026-01-22", - last_updated: "2026-01-22", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "duo-chat-gpt-5-3-codex": { - id: "duo-chat-gpt-5-3-codex", - name: "Agentic Chat (GPT-5.3 Codex)", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "duo-chat-sonnet-4-5": { - id: "duo-chat-sonnet-4-5", - name: "Agentic Chat (Claude Sonnet 4.5)", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2026-01-08", - last_updated: "2026-01-08", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 200000, output: 64000 }, - }, - "duo-chat-haiku-4-5": { - id: "duo-chat-haiku-4-5", - name: "Agentic Chat (Claude Haiku 4.5)", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-02-28", - release_date: "2026-01-08", - last_updated: "2026-01-08", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 200000, output: 64000 }, - }, - "duo-chat-gpt-5-codex": { - id: "duo-chat-gpt-5-codex", - name: "Agentic Chat (GPT-5 Codex)", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2026-01-22", - last_updated: "2026-01-22", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "duo-chat-gpt-5-4-nano": { - id: "duo-chat-gpt-5-4-nano", - name: "Agentic Chat (GPT-5.4 Nano)", - family: "gpt-nano", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-17", - last_updated: "2026-03-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "duo-chat-gpt-5-2": { - id: "duo-chat-gpt-5-2", - name: "Agentic Chat (GPT-5.2)", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-01-23", - last_updated: "2026-01-23", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "duo-chat-gpt-5-4-mini": { - id: "duo-chat-gpt-5-4-mini", - name: "Agentic Chat (GPT-5.4 Mini)", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-17", - last_updated: "2026-03-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "duo-chat-sonnet-4-6": { - id: "duo-chat-sonnet-4-6", - name: "Agentic Chat (Claude Sonnet 4.6)", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2026-02-17", - last_updated: "2026-02-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 1000000, output: 64000 }, - }, - "duo-chat-gpt-5-4": { - id: "duo-chat-gpt-5-4", - name: "Agentic Chat (GPT-5.4)", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 1050000, input: 922000, output: 128000 }, - }, - "duo-chat-opus-4-5": { - id: "duo-chat-opus-4-5", - name: "Agentic Chat (Claude Opus 4.5)", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2026-01-08", - last_updated: "2026-01-08", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 200000, output: 64000 }, - }, - "duo-chat-gpt-5-1": { - id: "duo-chat-gpt-5-1", - name: "Agentic Chat (GPT-5.1)", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2026-01-22", - last_updated: "2026-01-22", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - }, - }, - siliconflow: { - id: "siliconflow", - env: ["SILICONFLOW_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.siliconflow.com/v1", - name: "SiliconFlow", - doc: "https://cloud.siliconflow.com/models", - models: { - "nex-agi/DeepSeek-V3.1-Nex-N1": { - id: "nex-agi/DeepSeek-V3.1-Nex-N1", - name: "nex-agi/DeepSeek-V3.1-Nex-N1", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-01-01", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 2 }, - limit: { context: 131000, output: 131000 }, - }, - "zai-org/GLM-4.5-Air": { - id: "zai-org/GLM-4.5-Air", - name: "zai-org/GLM-4.5-Air", - family: "glm-air", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-28", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.86 }, - limit: { context: 131000, output: 131000 }, - }, - "zai-org/GLM-4.6": { - id: "zai-org/GLM-4.6", - name: "zai-org/GLM-4.6", - family: "glm", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-04", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 1.9 }, - limit: { context: 205000, output: 205000 }, - }, - "zai-org/GLM-4.7": { - id: "zai-org/GLM-4.7", - name: "zai-org/GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 2.2 }, - limit: { context: 205000, output: 205000 }, - }, - "zai-org/GLM-4.5V": { - id: "zai-org/GLM-4.5V", - name: "zai-org/GLM-4.5V", - family: "glm", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-13", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.86 }, - limit: { context: 66000, output: 66000 }, - }, - "zai-org/GLM-4.6V": { - id: "zai-org/GLM-4.6V", - name: "zai-org/GLM-4.6V", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-12-07", - last_updated: "2025-12-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.9 }, - limit: { context: 131000, output: 131000 }, - }, - "zai-org/GLM-4.5": { - id: "zai-org/GLM-4.5", - name: "zai-org/GLM-4.5", - family: "glm", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-28", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2 }, - limit: { context: 131000, output: 131000 }, - }, - "zai-org/GLM-5": { - id: "zai-org/GLM-5", - name: "zai-org/GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3.2 }, - limit: { context: 205000, output: 205000 }, - }, - "MiniMaxAI/MiniMax-M2.5": { - id: "MiniMaxAI/MiniMax-M2.5", - name: "MiniMaxAI/MiniMax-M2.5", - family: "minimax", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2026-02-15", - last_updated: "2026-02-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 197000, output: 131000 }, - }, - "MiniMaxAI/MiniMax-M2.1": { - id: "MiniMaxAI/MiniMax-M2.1", - name: "MiniMaxAI/MiniMax-M2.1", - family: "minimax", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 197000, output: 131000 }, - }, - "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B": { - id: "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", - name: "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-01-20", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.18, output: 0.18 }, - limit: { context: 131000, output: 131000 }, - }, - "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B": { - id: "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B", - name: "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-01-20", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.1 }, - limit: { context: 131000, output: 131000 }, - }, - "deepseek-ai/DeepSeek-V3.2-Exp": { - id: "deepseek-ai/DeepSeek-V3.2-Exp", - name: "deepseek-ai/DeepSeek-V3.2-Exp", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-10", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 0.41 }, - limit: { context: 164000, output: 164000 }, - }, - "deepseek-ai/DeepSeek-R1": { - id: "deepseek-ai/DeepSeek-R1", - name: "deepseek-ai/DeepSeek-R1", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-05-28", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 2.18 }, - limit: { context: 164000, output: 164000 }, - }, - "deepseek-ai/deepseek-vl2": { - id: "deepseek-ai/deepseek-vl2", - name: "deepseek-ai/deepseek-vl2", - family: "deepseek", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-12-13", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.15 }, - limit: { context: 4000, output: 4000 }, - }, - "deepseek-ai/DeepSeek-V3.1": { - id: "deepseek-ai/DeepSeek-V3.1", - name: "deepseek-ai/DeepSeek-V3.1", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-25", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 1 }, - limit: { context: 164000, output: 164000 }, - }, - "deepseek-ai/DeepSeek-V3.2": { - id: "deepseek-ai/DeepSeek-V3.2", - name: "deepseek-ai/DeepSeek-V3.2", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-03", - last_updated: "2025-12-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 0.42 }, - limit: { context: 164000, output: 164000 }, - }, - "deepseek-ai/DeepSeek-V3": { - id: "deepseek-ai/DeepSeek-V3", - name: "deepseek-ai/DeepSeek-V3", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-12-26", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1 }, - limit: { context: 164000, output: 164000 }, - }, - "deepseek-ai/DeepSeek-V3.1-Terminus": { - id: "deepseek-ai/DeepSeek-V3.1-Terminus", - name: "deepseek-ai/DeepSeek-V3.1-Terminus", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-29", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 1 }, - limit: { context: 164000, output: 164000 }, - }, - "ByteDance-Seed/Seed-OSS-36B-Instruct": { - id: "ByteDance-Seed/Seed-OSS-36B-Instruct", - name: "ByteDance-Seed/Seed-OSS-36B-Instruct", - family: "seed", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-04", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.21, output: 0.57 }, - limit: { context: 262000, output: 262000 }, - }, - "tencent/Hunyuan-A13B-Instruct": { - id: "tencent/Hunyuan-A13B-Instruct", - name: "tencent/Hunyuan-A13B-Instruct", - family: "hunyuan", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-06-30", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.57 }, - limit: { context: 131000, output: 131000 }, - }, - "tencent/Hunyuan-MT-7B": { - id: "tencent/Hunyuan-MT-7B", - name: "tencent/Hunyuan-MT-7B", - family: "hunyuan", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 33000, output: 33000 }, - }, - "moonshotai/Kimi-K2-Instruct": { - id: "moonshotai/Kimi-K2-Instruct", - name: "moonshotai/Kimi-K2-Instruct", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-13", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.58, output: 2.29 }, - limit: { context: 131000, output: 131000 }, - }, - "moonshotai/Kimi-K2-Instruct-0905": { - id: "moonshotai/Kimi-K2-Instruct-0905", - name: "moonshotai/Kimi-K2-Instruct-0905", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-08", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2 }, - limit: { context: 262000, output: 262000 }, - }, - "moonshotai/Kimi-K2.5": { - id: "moonshotai/Kimi-K2.5", - name: "moonshotai/Kimi-K2.5", - family: "kimi", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.55, output: 3 }, - limit: { context: 262000, output: 262000 }, - }, - "moonshotai/Kimi-K2-Thinking": { - id: "moonshotai/Kimi-K2-Thinking", - name: "moonshotai/Kimi-K2-Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-11-07", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.55, output: 2.5 }, - limit: { context: 262000, output: 262000 }, - }, - "inclusionAI/Ling-flash-2.0": { - id: "inclusionAI/Ling-flash-2.0", - name: "inclusionAI/Ling-flash-2.0", - family: "ling", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.57 }, - limit: { context: 131000, output: 131000 }, - }, - "inclusionAI/Ring-flash-2.0": { - id: "inclusionAI/Ring-flash-2.0", - name: "inclusionAI/Ring-flash-2.0", - family: "ring", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-29", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.57 }, - limit: { context: 131000, output: 131000 }, - }, - "inclusionAI/Ling-mini-2.0": { - id: "inclusionAI/Ling-mini-2.0", - name: "inclusionAI/Ling-mini-2.0", - family: "ling", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-10", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.07, output: 0.28 }, - limit: { context: 131000, output: 131000 }, - }, - "baidu/ERNIE-4.5-300B-A47B": { - id: "baidu/ERNIE-4.5-300B-A47B", - name: "baidu/ERNIE-4.5-300B-A47B", - family: "ernie", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-02", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.28, output: 1.1 }, - limit: { context: 131000, output: 131000 }, - }, - "stepfun-ai/Step-3.5-Flash": { - id: "stepfun-ai/Step-3.5-Flash", - name: "stepfun-ai/Step-3.5-Flash", - family: "step", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 262000, output: 262000 }, - }, - "meta-llama/Meta-Llama-3.1-8B-Instruct": { - id: "meta-llama/Meta-Llama-3.1-8B-Instruct", - name: "meta-llama/Meta-Llama-3.1-8B-Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-23", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.06, output: 0.06 }, - limit: { context: 33000, output: 4000 }, - }, - "Qwen/Qwen3-VL-30B-A3B-Thinking": { - id: "Qwen/Qwen3-VL-30B-A3B-Thinking", - name: "Qwen/Qwen3-VL-30B-A3B-Thinking", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-11", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.29, output: 1 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-30B-A3B-Instruct-2507": { - id: "Qwen/Qwen3-30B-A3B-Instruct-2507", - name: "Qwen/Qwen3-30B-A3B-Instruct-2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-30", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.09, output: 0.3 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-VL-235B-A22B-Instruct": { - id: "Qwen/Qwen3-VL-235B-A22B-Instruct", - name: "Qwen/Qwen3-VL-235B-A22B-Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-04", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.5 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-VL-32B-Instruct": { - id: "Qwen/Qwen3-VL-32B-Instruct", - name: "Qwen/Qwen3-VL-32B-Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-21", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.6 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/QwQ-32B": { - id: "Qwen/QwQ-32B", - name: "Qwen/QwQ-32B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-03-06", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.58 }, - limit: { context: 131000, output: 131000 }, - }, - "Qwen/Qwen3-32B": { - id: "Qwen/Qwen3-32B", - name: "Qwen/Qwen3-32B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-30", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.57 }, - limit: { context: 131000, output: 131000 }, - }, - "Qwen/Qwen3-VL-235B-A22B-Thinking": { - id: "Qwen/Qwen3-VL-235B-A22B-Thinking", - name: "Qwen/Qwen3-VL-235B-A22B-Thinking", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-04", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.45, output: 3.5 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-Next-80B-A3B-Instruct": { - id: "Qwen/Qwen3-Next-80B-A3B-Instruct", - name: "Qwen/Qwen3-Next-80B-A3B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 1.4 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-235B-A22B-Thinking-2507": { - id: "Qwen/Qwen3-235B-A22B-Thinking-2507", - name: "Qwen/Qwen3-235B-A22B-Thinking-2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-28", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.13, output: 0.6 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-Omni-30B-A3B-Instruct": { - id: "Qwen/Qwen3-Omni-30B-A3B-Instruct", - name: "Qwen/Qwen3-Omni-30B-A3B-Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-04", - last_updated: "2025-11-25", - modalities: { input: ["text", "image", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 66000, output: 66000 }, - }, - "Qwen/Qwen2.5-VL-7B-Instruct": { - id: "Qwen/Qwen2.5-VL-7B-Instruct", - name: "Qwen/Qwen2.5-VL-7B-Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-01-28", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.05 }, - limit: { context: 33000, output: 4000 }, - }, - "Qwen/Qwen3-30B-A3B-Thinking-2507": { - id: "Qwen/Qwen3-30B-A3B-Thinking-2507", - name: "Qwen/Qwen3-30B-A3B-Thinking-2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-31", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.09, output: 0.3 }, - limit: { context: 262000, output: 131000 }, - }, - "Qwen/Qwen2.5-32B-Instruct": { - id: "Qwen/Qwen2.5-32B-Instruct", - name: "Qwen/Qwen2.5-32B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-09-19", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.18, output: 0.18 }, - limit: { context: 33000, output: 4000 }, - }, - "Qwen/Qwen2.5-Coder-32B-Instruct": { - id: "Qwen/Qwen2.5-Coder-32B-Instruct", - name: "Qwen/Qwen2.5-Coder-32B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-11-11", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.18, output: 0.18 }, - limit: { context: 33000, output: 4000 }, - }, - "Qwen/Qwen3-8B": { - id: "Qwen/Qwen3-8B", - name: "Qwen/Qwen3-8B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-30", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.06, output: 0.06 }, - limit: { context: 131000, output: 131000 }, - }, - "Qwen/Qwen3-Coder-480B-A35B-Instruct": { - id: "Qwen/Qwen3-Coder-480B-A35B-Instruct", - name: "Qwen/Qwen3-Coder-480B-A35B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-31", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-Omni-30B-A3B-Thinking": { - id: "Qwen/Qwen3-Omni-30B-A3B-Thinking", - name: "Qwen/Qwen3-Omni-30B-A3B-Thinking", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-04", - last_updated: "2025-11-25", - modalities: { input: ["text", "image", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 66000, output: 66000 }, - }, - "Qwen/Qwen2.5-7B-Instruct": { - id: "Qwen/Qwen2.5-7B-Instruct", - name: "Qwen/Qwen2.5-7B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-09-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.05 }, - limit: { context: 33000, output: 4000 }, - }, - "Qwen/Qwen2.5-14B-Instruct": { - id: "Qwen/Qwen2.5-14B-Instruct", - name: "Qwen/Qwen2.5-14B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-09-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.1 }, - limit: { context: 33000, output: 4000 }, - }, - "Qwen/Qwen2.5-VL-72B-Instruct": { - id: "Qwen/Qwen2.5-VL-72B-Instruct", - name: "Qwen/Qwen2.5-VL-72B-Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-01-28", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.59, output: 0.59 }, - limit: { context: 131000, output: 4000 }, - }, - "Qwen/Qwen2.5-72B-Instruct": { - id: "Qwen/Qwen2.5-72B-Instruct", - name: "Qwen/Qwen2.5-72B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-09-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.59, output: 0.59 }, - limit: { context: 33000, output: 4000 }, - }, - "Qwen/Qwen2.5-72B-Instruct-128K": { - id: "Qwen/Qwen2.5-72B-Instruct-128K", - name: "Qwen/Qwen2.5-72B-Instruct-128K", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-09-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.59, output: 0.59 }, - limit: { context: 131000, output: 4000 }, - }, - "Qwen/Qwen3-235B-A22B": { - id: "Qwen/Qwen3-235B-A22B", - name: "Qwen/Qwen3-235B-A22B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-30", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.35, output: 1.42 }, - limit: { context: 131000, output: 131000 }, - }, - "Qwen/Qwen3-VL-8B-Instruct": { - id: "Qwen/Qwen3-VL-8B-Instruct", - name: "Qwen/Qwen3-VL-8B-Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-15", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.18, output: 0.68 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-Next-80B-A3B-Thinking": { - id: "Qwen/Qwen3-Next-80B-A3B-Thinking", - name: "Qwen/Qwen3-Next-80B-A3B-Thinking", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-25", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.57 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-Omni-30B-A3B-Captioner": { - id: "Qwen/Qwen3-Omni-30B-A3B-Captioner", - name: "Qwen/Qwen3-Omni-30B-A3B-Captioner", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-04", - last_updated: "2025-11-25", - modalities: { input: ["audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 66000, output: 66000 }, - }, - "Qwen/Qwen3-VL-30B-A3B-Instruct": { - id: "Qwen/Qwen3-VL-30B-A3B-Instruct", - name: "Qwen/Qwen3-VL-30B-A3B-Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-05", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.29, output: 1 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-VL-8B-Thinking": { - id: "Qwen/Qwen3-VL-8B-Thinking", - name: "Qwen/Qwen3-VL-8B-Thinking", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-15", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.18, output: 2 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-Coder-30B-A3B-Instruct": { - id: "Qwen/Qwen3-Coder-30B-A3B-Instruct", - name: "Qwen/Qwen3-Coder-30B-A3B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-01", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.07, output: 0.28 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-VL-32B-Thinking": { - id: "Qwen/Qwen3-VL-32B-Thinking", - name: "Qwen/Qwen3-VL-32B-Thinking", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-21", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.5 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-235B-A22B-Instruct-2507": { - id: "Qwen/Qwen3-235B-A22B-Instruct-2507", - name: "Qwen/Qwen3-235B-A22B-Instruct-2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-23", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.09, output: 0.6 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-14B": { - id: "Qwen/Qwen3-14B", - name: "Qwen/Qwen3-14B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-30", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.07, output: 0.28 }, - limit: { context: 131000, output: 131000 }, - }, - "Qwen/Qwen2.5-VL-32B-Instruct": { - id: "Qwen/Qwen2.5-VL-32B-Instruct", - name: "Qwen/Qwen2.5-VL-32B-Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-03-24", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 0.27 }, - limit: { context: 131000, output: 131000 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "openai/gpt-oss-120b", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-13", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.45 }, - limit: { context: 131000, output: 8000 }, - }, - "openai/gpt-oss-20b": { - id: "openai/gpt-oss-20b", - name: "openai/gpt-oss-20b", - family: "gpt-oss", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-13", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.04, output: 0.18 }, - limit: { context: 131000, output: 8000 }, - }, - "THUDM/GLM-4-32B-0414": { - id: "THUDM/GLM-4-32B-0414", - name: "THUDM/GLM-4-32B-0414", - family: "glm", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 0.27 }, - limit: { context: 33000, output: 33000 }, - }, - "THUDM/GLM-4-9B-0414": { - id: "THUDM/GLM-4-9B-0414", - name: "THUDM/GLM-4-9B-0414", - family: "glm", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.086, output: 0.086 }, - limit: { context: 33000, output: 33000 }, - }, - "THUDM/GLM-Z1-32B-0414": { - id: "THUDM/GLM-Z1-32B-0414", - name: "THUDM/GLM-Z1-32B-0414", - family: "glm-z", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.57 }, - limit: { context: 131000, output: 131000 }, - }, - "THUDM/GLM-Z1-9B-0414": { - id: "THUDM/GLM-Z1-9B-0414", - name: "THUDM/GLM-Z1-9B-0414", - family: "glm-z", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.086, output: 0.086 }, - limit: { context: 131000, output: 131000 }, - }, - }, - }, - togetherai: { - id: "togetherai", - env: ["TOGETHER_API_KEY"], - npm: "@ai-sdk/togetherai", - name: "Together AI", - doc: "https://docs.together.ai/docs/serverless-models", - models: { - "zai-org/GLM-4.6": { - id: "zai-org/GLM-4.6", - name: "GLM 4.6", - family: "glm", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-09", - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2 }, - limit: { context: 200000, output: 200000 }, - }, - "zai-org/GLM-4.7": { - id: "zai-org/GLM-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-07-25", - last_updated: "2025-07-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.45, output: 2 }, - limit: { context: 200000, output: 200000 }, - }, - "zai-org/GLM-5": { - id: "zai-org/GLM-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-11", - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3.2 }, - limit: { context: 202752, output: 131072 }, - }, - "essentialai/Rnj-1-Instruct": { - id: "essentialai/Rnj-1-Instruct", - name: "Rnj-1 Instruct", - family: "rnj", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-12-05", - last_updated: "2025-12-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.15 }, - limit: { context: 32768, output: 32768 }, - }, - "MiniMaxAI/MiniMax-M2.5": { - id: "MiniMaxAI/MiniMax-M2.5", - name: "MiniMax-M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.06 }, - limit: { context: 204800, output: 131072 }, - }, - "deepseek-ai/DeepSeek-V3-1": { - id: "deepseek-ai/DeepSeek-V3-1", - name: "DeepSeek V3.1", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2025-08-21", - last_updated: "2025-08-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 1.7 }, - limit: { context: 131072, output: 131072 }, - }, - "deepseek-ai/DeepSeek-R1": { - id: "deepseek-ai/DeepSeek-R1", - name: "DeepSeek R1", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2024-07", - release_date: "2024-12-26", - last_updated: "2025-03-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 3, output: 7 }, - limit: { context: 163839, output: 163839 }, - }, - "deepseek-ai/DeepSeek-V3": { - id: "deepseek-ai/DeepSeek-V3", - name: "DeepSeek V3", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-01-20", - last_updated: "2025-05-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.25, output: 1.25 }, - limit: { context: 131072, output: 131072 }, - }, - "moonshotai/Kimi-K2-Instruct": { - id: "moonshotai/Kimi-K2-Instruct", - name: "Kimi K2 Instruct", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-07-14", - last_updated: "2025-07-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3 }, - limit: { context: 131072, output: 131072 }, - }, - "moonshotai/Kimi-K2.5": { - id: "moonshotai/Kimi-K2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2026-01", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 2.8 }, - limit: { context: 262144, output: 262144 }, - }, - "meta-llama/Llama-3.3-70B-Instruct-Turbo": { - id: "meta-llama/Llama-3.3-70B-Instruct-Turbo", - name: "Llama 3.3 70B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.88, output: 0.88 }, - limit: { context: 131072, output: 131072 }, - }, - "Qwen/Qwen3-Next-80B-A3B-Instruct": { - id: "Qwen/Qwen3-Next-80B-A3B-Instruct", - name: "Qwen3-Next-80B-A3B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-07-25", - last_updated: "2025-07-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 1.5 }, - limit: { context: 262144, output: 262144 }, - }, - "Qwen/Qwen3-235B-A22B-Instruct-2507-tput": { - id: "Qwen/Qwen3-235B-A22B-Instruct-2507-tput", - name: "Qwen3 235B A22B Instruct 2507 FP8", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-07-25", - last_updated: "2025-07-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.6 }, - limit: { context: 262144, output: 262144 }, - }, - "Qwen/Qwen3.5-397B-A17B": { - id: "Qwen/Qwen3.5-397B-A17B", - name: "Qwen3.5 397B A17B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-16", - last_updated: "2026-02-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3.6 }, - limit: { context: 262144, output: 130000 }, - }, - "Qwen/Qwen3-Coder-Next-FP8": { - id: "Qwen/Qwen3-Coder-Next-FP8", - name: "Qwen3 Coder Next FP8", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2026-02-03", - release_date: "2026-02-03", - last_updated: "2026-02-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 1.2 }, - limit: { context: 262144, output: 262144 }, - }, - "Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8": { - id: "Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8", - name: "Qwen3 Coder 480B A35B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2, output: 2 }, - limit: { context: 262144, output: 262144 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "GPT OSS 120B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 131072, output: 131072 }, - }, - }, - }, - clarifai: { - id: "clarifai", - env: ["CLARIFAI_PAT"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.clarifai.com/v2/ext/openai/v1", - name: "Clarifai", - doc: "https://docs.clarifai.com/compute/inference/", - models: { - "minimaxai/chat-completion/models/MiniMax-M2_5-high-throughput": { - id: "minimaxai/chat-completion/models/MiniMax-M2_5-high-throughput", - name: "MiniMax-M2.5 High Throughput", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 204800, output: 131072 }, - }, - "arcee_ai/AFM/models/trinity-mini": { - id: "arcee_ai/AFM/models/trinity-mini", - name: "Trinity Mini", - family: "trinity-mini", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-12", - last_updated: "2026-02-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.045, output: 0.15 }, - limit: { context: 131072, output: 131072 }, - }, - "deepseek-ai/deepseek-ocr/models/DeepSeek-OCR": { - id: "deepseek-ai/deepseek-ocr/models/DeepSeek-OCR", - name: "DeepSeek OCR", - family: "deepseek", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-10-20", - last_updated: "2026-02-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.7 }, - limit: { context: 8192, output: 8192 }, - }, - "clarifai/main/models/mm-poly-8b": { - id: "clarifai/main/models/mm-poly-8b", - name: "MM Poly 8B", - family: "mm-poly", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-06", - last_updated: "2026-02-25", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.658, output: 1.11 }, - limit: { context: 32768, output: 4096 }, - }, - "qwen/qwenCoder/models/Qwen3-Coder-30B-A3B-Instruct": { - id: "qwen/qwenCoder/models/Qwen3-Coder-30B-A3B-Instruct", - name: "Qwen3 Coder 30B A3B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-31", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.11458, output: 0.74812 }, - limit: { context: 262144, output: 65536 }, - }, - "qwen/qwenLM/models/Qwen3-30B-A3B-Instruct-2507": { - id: "qwen/qwenLM/models/Qwen3-30B-A3B-Instruct-2507", - name: "Qwen3 30B A3B Instruct 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-30", - last_updated: "2026-02-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.5 }, - limit: { context: 262144, output: 262144 }, - }, - "qwen/qwenLM/models/Qwen3-30B-A3B-Thinking-2507": { - id: "qwen/qwenLM/models/Qwen3-30B-A3B-Thinking-2507", - name: "Qwen3 30B A3B Thinking 2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-31", - last_updated: "2026-02-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.36, output: 1.3 }, - limit: { context: 262144, output: 131072 }, - }, - "mistralai/completion/models/Ministral-3-14B-Reasoning-2512": { - id: "mistralai/completion/models/Ministral-3-14B-Reasoning-2512", - name: "Ministral 3 14B Reasoning 2512", - family: "ministral", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-12", - release_date: "2025-12-01", - last_updated: "2025-12-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 2.5, output: 1.7 }, - limit: { context: 262144, output: 262144 }, - }, - "mistralai/completion/models/Ministral-3-3B-Reasoning-2512": { - id: "mistralai/completion/models/Ministral-3-3B-Reasoning-2512", - name: "Ministral 3 3B Reasoning 2512", - family: "ministral", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-12", - last_updated: "2026-02-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 1.039, output: 0.54825 }, - limit: { context: 262144, output: 262144 }, - }, - "openai/chat-completion/models/gpt-oss-120b-high-throughput": { - id: "openai/chat-completion/models/gpt-oss-120b-high-throughput", - name: "GPT OSS 120B High Throughput", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2026-02-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.09, output: 0.36 }, - limit: { context: 131072, output: 16384 }, - }, - "openai/chat-completion/models/gpt-oss-20b": { - id: "openai/chat-completion/models/gpt-oss-20b", - name: "GPT OSS 20B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-12-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.045, output: 0.18 }, - limit: { context: 131072, output: 16384 }, - }, - }, - }, - berget: { - id: "berget", - env: ["BERGET_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.berget.ai/v1", - name: "Berget.AI", - doc: "https://api.berget.ai", - models: { - "zai-org/GLM-4.7": { - id: "zai-org/GLM-4.7", - name: "GLM 4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-12", - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.7, output: 2.3 }, - limit: { context: 128000, output: 8192 }, - }, - "BAAI/bge-reranker-v2-m3": { - id: "BAAI/bge-reranker-v2-m3", - name: "bge-reranker-v2-m3", - family: "bge", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2025-04", - release_date: "2025-04-23", - last_updated: "2025-04-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.1 }, - limit: { context: 512, output: 512 }, - }, - "intfloat/multilingual-e5-large-instruct": { - id: "intfloat/multilingual-e5-large-instruct", - name: "Multilingual-E5-large-instruct", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2025-04", - release_date: "2025-04-27", - last_updated: "2025-04-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0 }, - limit: { context: 512, output: 1024 }, - }, - "intfloat/multilingual-e5-large": { - id: "intfloat/multilingual-e5-large", - name: "Multilingual-E5-large", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2025-09", - release_date: "2025-09-11", - last_updated: "2025-09-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0 }, - limit: { context: 512, output: 1024 }, - }, - "KBLab/kb-whisper-large": { - id: "KBLab/kb-whisper-large", - name: "KB-Whisper-Large", - family: "whisper", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2025-04", - release_date: "2025-04-27", - last_updated: "2025-04-27", - modalities: { input: ["audio"], output: ["text"] }, - open_weights: true, - cost: { input: 3, output: 3 }, - limit: { context: 480000, output: 4800 }, - }, - "meta-llama/Llama-3.3-70B-Instruct": { - id: "meta-llama/Llama-3.3-70B-Instruct", - name: "Llama 3.3 70B Instruct", - family: "llama", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-12", - release_date: "2025-04-27", - last_updated: "2025-04-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.9, output: 0.9 }, - limit: { context: 128000, output: 8192 }, - }, - "mistralai/Mistral-Small-3.2-24B-Instruct-2506": { - id: "mistralai/Mistral-Small-3.2-24B-Instruct-2506", - name: "Mistral Small 3.2 24B Instruct 2506", - family: "mistral-small", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-09", - release_date: "2025-10-01", - last_updated: "2025-10-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.3 }, - limit: { context: 32000, output: 8192 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "GPT-OSS-120B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-08", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.9 }, - limit: { context: 128000, output: 8192 }, - }, - }, - }, - lucidquery: { - id: "lucidquery", - env: ["LUCIDQUERY_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://lucidquery.com/api/v1", - name: "LucidQuery AI", - doc: "https://lucidquery.com/api/docs", - models: { - "lucidquery-nexus-coder": { - id: "lucidquery-nexus-coder", - name: "LucidQuery Nexus Coder", - family: "lucid", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2025-08-01", - release_date: "2025-09-01", - last_updated: "2025-09-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 5 }, - limit: { context: 250000, output: 60000 }, - }, - "lucidnova-rf1-100b": { - id: "lucidnova-rf1-100b", - name: "LucidNova RF1 100B", - family: "nova", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2025-09-16", - release_date: "2024-12-28", - last_updated: "2025-09-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 5 }, - limit: { context: 120000, output: 8000 }, - }, - }, - }, - "zhipuai-coding-plan": { - id: "zhipuai-coding-plan", - env: ["ZHIPU_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://open.bigmodel.cn/api/coding/paas/v4", - name: "Zhipu AI Coding Plan", - doc: "https://docs.bigmodel.cn/cn/coding-plan/overview", - models: { - "glm-4.6v-flash": { - id: "glm-4.6v-flash", - name: "GLM-4.6V-Flash", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-08", - last_updated: "2025-12-08", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 32768 }, - }, - "glm-4.6v": { - id: "glm-4.6v", - name: "GLM-4.6V", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-08", - last_updated: "2025-12-08", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 32768 }, - }, - "glm-4.5v": { - id: "glm-4.5v", - name: "GLM-4.5V", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-08-11", - last_updated: "2025-08-11", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 64000, output: 16384 }, - }, - "glm-5-turbo": { - id: "glm-5-turbo", - name: "GLM-5-Turbo", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-03-16", - last_updated: "2026-03-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 200000, output: 131072 }, - }, - "glm-4.7": { - id: "glm-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "glm-4.6": { - id: "glm-4.6", - name: "GLM-4.6", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "glm-4.7-flash": { - id: "glm-4.7-flash", - name: "GLM-4.7-Flash", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 200000, output: 131072 }, - }, - "glm-4.5-flash": { - id: "glm-4.5-flash", - name: "GLM-4.5-Flash", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 131072, output: 98304 }, - }, - "glm-4.5": { - id: "glm-4.5", - name: "GLM-4.5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 131072, output: 98304 }, - }, - "glm-4.5-air": { - id: "glm-4.5-air", - name: "GLM-4.5-Air", - family: "glm-air", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 131072, output: 98304 }, - }, - "glm-4.7-flashx": { - id: "glm-4.7-flashx", - name: "GLM-4.7-FlashX", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.4, cache_read: 0.01, cache_write: 0 }, - limit: { context: 200000, output: 131072 }, - }, - "glm-5": { - id: "glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - }, - }, - deepseek: { - id: "deepseek", - env: ["DEEPSEEK_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.deepseek.com", - name: "DeepSeek", - doc: "https://api-docs.deepseek.com/quick_start/pricing", - models: { - "deepseek-reasoner": { - id: "deepseek-reasoner", - name: "DeepSeek Reasoner", - family: "deepseek-thinking", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-09", - release_date: "2025-12-01", - last_updated: "2026-02-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.28, output: 0.42, cache_read: 0.028 }, - limit: { context: 128000, output: 64000 }, - }, - "deepseek-chat": { - id: "deepseek-chat", - name: "DeepSeek Chat", - family: "deepseek", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-09", - release_date: "2025-12-01", - last_updated: "2026-02-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.28, output: 0.42, cache_read: 0.028 }, - limit: { context: 128000, output: 8192 }, - }, - }, - }, - lmstudio: { - id: "lmstudio", - env: ["LMSTUDIO_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "http://127.0.0.1:1234/v1", - name: "LMStudio", - doc: "https://lmstudio.ai/models", - models: { - "qwen/qwen3-30b-a3b-2507": { - id: "qwen/qwen3-30b-a3b-2507", - name: "Qwen3 30B A3B 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-30", - last_updated: "2025-07-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 16384 }, - }, - "qwen/qwen3-coder-30b": { - id: "qwen/qwen3-coder-30b", - name: "Qwen3 Coder 30B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 65536 }, - }, - "openai/gpt-oss-20b": { - id: "openai/gpt-oss-20b", - name: "GPT OSS 20B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 32768 }, - }, - }, - }, - openrouter: { - id: "openrouter", - env: ["OPENROUTER_API_KEY"], - npm: "@openrouter/ai-sdk-provider", - api: "https://openrouter.ai/api/v1", - name: "OpenRouter", - doc: "https://openrouter.ai/models", - models: { - "prime-intellect/intellect-3": { - id: "prime-intellect/intellect-3", - name: "Intellect 3", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-01-15", - last_updated: "2025-01-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 1.1 }, - limit: { context: 131072, output: 8192 }, - }, - "nvidia/nemotron-3-super-120b-a12b": { - id: "nvidia/nemotron-3-super-120b-a12b", - name: "Nemotron 3 Super", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2026-03-11", - last_updated: "2026-03-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.5 }, - limit: { context: 262144, output: 262144 }, - }, - "nvidia/nemotron-nano-9b-v2:free": { - id: "nvidia/nemotron-nano-9b-v2:free", - name: "Nemotron Nano 9B V2 (free)", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-09", - release_date: "2025-09-05", - last_updated: "2025-08-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 128000 }, - }, - "nvidia/nemotron-nano-12b-v2-vl:free": { - id: "nvidia/nemotron-nano-12b-v2-vl:free", - name: "Nemotron Nano 12B 2 VL (free)", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-11", - release_date: "2025-10-28", - last_updated: "2026-01-31", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 128000 }, - }, - "nvidia/nemotron-3-nano-30b-a3b:free": { - id: "nvidia/nemotron-3-nano-30b-a3b:free", - name: "Nemotron 3 Nano 30B A3B (free)", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-11", - release_date: "2025-12-14", - last_updated: "2026-01-31", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 256000 }, - }, - "nvidia/nemotron-nano-9b-v2": { - id: "nvidia/nemotron-nano-9b-v2", - name: "nvidia-nemotron-nano-9b-v2", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-09", - release_date: "2025-08-18", - last_updated: "2025-08-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.04, output: 0.16 }, - limit: { context: 131072, output: 131072 }, - }, - "nvidia/nemotron-3-super-120b-a12b-free": { - id: "nvidia/nemotron-3-super-120b-a12b-free", - name: "Nemotron 3 Super (free)", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2026-03-11", - last_updated: "2026-03-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 262144 }, - }, - "arcee-ai/trinity-large-preview:free": { - id: "arcee-ai/trinity-large-preview:free", - name: "Trinity Large Preview", - family: "trinity", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-06", - release_date: "2026-01-28", - last_updated: "2026-01-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 131072 }, - }, - "arcee-ai/trinity-mini:free": { - id: "arcee-ai/trinity-mini:free", - name: "Trinity Mini", - family: "trinity-mini", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-06", - release_date: "2026-01-28", - last_updated: "2026-01-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 131072 }, - }, - "xiaomi/mimo-v2-omni": { - id: "xiaomi/mimo-v2-omni", - name: "MiMo-V2-Omni", - family: "mimo", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - structured_output: true, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 2 }, - limit: { context: 262144, output: 65536 }, - }, - "xiaomi/mimo-v2-flash": { - id: "xiaomi/mimo-v2-flash", - name: "MiMo-V2-Flash", - family: "mimo", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-12-14", - last_updated: "2025-12-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3, cache_read: 0.01 }, - limit: { context: 262144, output: 65536 }, - }, - "xiaomi/mimo-v2-pro": { - id: "xiaomi/mimo-v2-pro", - name: "MiMo-V2-Pro", - family: "mimo", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - structured_output: true, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3 }, - limit: { context: 1048576, output: 65536 }, - }, - "liquid/lfm-2.5-1.2b-thinking:free": { - id: "liquid/lfm-2.5-1.2b-thinking:free", - name: "LFM2.5-1.2B-Thinking (free)", - family: "liquid", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2025-06", - release_date: "2026-01-20", - last_updated: "2026-01-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 32768 }, - }, - "liquid/lfm-2.5-1.2b-instruct:free": { - id: "liquid/lfm-2.5-1.2b-instruct:free", - name: "LFM2.5-1.2B-Instruct (free)", - family: "liquid", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-06", - release_date: "2026-01-20", - last_updated: "2026-01-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 32768 }, - }, - "inception/mercury-2": { - id: "inception/mercury-2", - name: "Mercury 2", - family: "mercury", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-03-04", - last_updated: "2026-03-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 0.75, cache_read: 0.025 }, - limit: { context: 128000, output: 50000 }, - }, - "inception/mercury": { - id: "inception/mercury", - name: "Mercury", - family: "mercury", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-06-26", - last_updated: "2025-06-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 0.75, cache_read: 0.025 }, - limit: { context: 128000, output: 32000 }, - }, - "inception/mercury-coder": { - id: "inception/mercury-coder", - name: "Mercury Coder", - family: "mercury", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-30", - last_updated: "2025-04-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 0.75, cache_read: 0.025 }, - limit: { context: 128000, output: 32000 }, - }, - "sourceful/riverflow-v2-fast-preview": { - id: "sourceful/riverflow-v2-fast-preview", - name: "Riverflow V2 Fast Preview", - family: "sourceful", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-06", - release_date: "2025-12-08", - last_updated: "2026-01-28", - modalities: { input: ["text", "image"], output: ["image"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 8192, output: 8192 }, - }, - "sourceful/riverflow-v2-max-preview": { - id: "sourceful/riverflow-v2-max-preview", - name: "Riverflow V2 Max Preview", - family: "sourceful", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-06", - release_date: "2025-12-08", - last_updated: "2026-01-28", - modalities: { input: ["text", "image"], output: ["image"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 8192, output: 8192 }, - }, - "sourceful/riverflow-v2-standard-preview": { - id: "sourceful/riverflow-v2-standard-preview", - name: "Riverflow V2 Standard Preview", - family: "sourceful", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-06", - release_date: "2025-12-08", - last_updated: "2026-01-28", - modalities: { input: ["text", "image"], output: ["image"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 8192, output: 8192 }, - }, - "stepfun/step-3.5-flash:free": { - id: "stepfun/step-3.5-flash:free", - name: "Step 3.5 Flash (free)", - family: "step", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01-29", - last_updated: "2026-01-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 256000 }, - }, - "stepfun/step-3.5-flash": { - id: "stepfun/step-3.5-flash", - name: "Step 3.5 Flash", - family: "step", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01-29", - last_updated: "2026-01-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3, cache_read: 0.02 }, - limit: { context: 256000, output: 256000 }, - }, - "cognitivecomputations/dolphin-mistral-24b-venice-edition:free": { - id: "cognitivecomputations/dolphin-mistral-24b-venice-edition:free", - name: "Uncensored (free)", - family: "mistral", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-07-09", - last_updated: "2026-01-31", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 32768, output: 32768 }, - }, - "deepseek/deepseek-v3.1-terminus:exacto": { - id: "deepseek/deepseek-v3.1-terminus:exacto", - name: "DeepSeek V3.1 Terminus (exacto)", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-09-22", - last_updated: "2025-09-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 1 }, - limit: { context: 131072, output: 65536 }, - }, - "deepseek/deepseek-v3.2-speciale": { - id: "deepseek/deepseek-v3.2-speciale", - name: "DeepSeek V3.2 Speciale", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 0.41 }, - limit: { context: 163840, output: 65536 }, - }, - "deepseek/deepseek-chat-v3.1": { - id: "deepseek/deepseek-chat-v3.1", - name: "DeepSeek-V3.1", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-08-21", - last_updated: "2025-08-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 163840, output: 163840 }, - }, - "deepseek/deepseek-chat-v3-0324": { - id: "deepseek/deepseek-chat-v3-0324", - name: "DeepSeek V3 0324", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-03-24", - last_updated: "2025-03-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 16384, output: 8192 }, - }, - "deepseek/deepseek-r1-distill-llama-70b": { - id: "deepseek/deepseek-r1-distill-llama-70b", - name: "DeepSeek R1 Distill Llama 70B", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-01-23", - last_updated: "2025-01-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 8192, output: 8192 }, - }, - "deepseek/deepseek-v3.1-terminus": { - id: "deepseek/deepseek-v3.1-terminus", - name: "DeepSeek V3.1 Terminus", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-09-22", - last_updated: "2025-09-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 1 }, - limit: { context: 131072, output: 65536 }, - }, - "deepseek/deepseek-v3.2": { - id: "deepseek/deepseek-v3.2", - name: "DeepSeek V3.2", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.28, output: 0.4 }, - limit: { context: 163840, output: 65536 }, - }, - "openrouter/free": { - id: "openrouter/free", - name: "Free Models Router", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-01", - last_updated: "2026-02-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 200000, input: 200000, output: 8000 }, - }, - "moonshotai/kimi-k2": { - id: "moonshotai/kimi-k2", - name: "Kimi K2", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-07-11", - last_updated: "2025-07-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.2 }, - limit: { context: 131072, output: 32768 }, - }, - "moonshotai/kimi-k2-0905": { - id: "moonshotai/kimi-k2-0905", - name: "Kimi K2 Instruct 0905", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5 }, - limit: { context: 262144, output: 16384 }, - }, - "moonshotai/kimi-k2-0905:exacto": { - id: "moonshotai/kimi-k2-0905:exacto", - name: "Kimi K2 Instruct 0905 (exacto)", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5 }, - limit: { context: 262144, output: 16384 }, - }, - "moonshotai/kimi-k2.5": { - id: "moonshotai/kimi-k2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3, cache_read: 0.1 }, - limit: { context: 262144, output: 262144 }, - }, - "moonshotai/kimi-k2-thinking": { - id: "moonshotai/kimi-k2-thinking", - name: "Kimi K2 Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - structured_output: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-11-06", - last_updated: "2025-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, - limit: { context: 262144, output: 262144 }, - }, - "moonshotai/kimi-k2:free": { - id: "moonshotai/kimi-k2:free", - name: "Kimi K2 (free)", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-11", - last_updated: "2025-07-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 32800, output: 32800 }, - }, - "google/gemini-2.5-flash-lite-preview-09-2025": { - id: "google/gemini-2.5-flash-lite-preview-09-2025", - name: "Gemini 2.5 Flash Lite Preview 09-25", - family: "gemini-flash-lite", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-3.1-pro-preview-customtools": { - id: "google/gemini-3.1-pro-preview-customtools", - name: "Gemini 3.1 Pro Preview Custom Tools", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-02-19", - last_updated: "2026-02-19", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, reasoning: 12, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-2.5-pro-preview-06-05": { - id: "google/gemini-2.5-pro-preview-06-05", - name: "Gemini 2.5 Pro Preview 06-05", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-06-05", - last_updated: "2025-06-05", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.31 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemma-3n-e4b-it:free": { - id: "google/gemma-3n-e4b-it:free", - name: "Gemma 3n 4B (free)", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-06", - release_date: "2025-05-20", - last_updated: "2025-05-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 8192, output: 2000 }, - }, - "google/gemini-2.5-flash-preview-09-2025": { - id: "google/gemini-2.5-flash-preview-09-2025", - name: "Gemini 2.5 Flash Preview 09-25", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5, cache_read: 0.031 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-2.5-pro-preview-05-06": { - id: "google/gemini-2.5-pro-preview-05-06", - name: "Gemini 2.5 Pro Preview 05-06", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-05-06", - last_updated: "2025-05-06", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.31 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemma-3n-e2b-it:free": { - id: "google/gemma-3n-e2b-it:free", - name: "Gemma 3n 2B (free)", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-06", - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 8192, output: 2000 }, - }, - "google/gemini-2.5-flash": { - id: "google/gemini-2.5-flash", - name: "Gemini 2.5 Flash", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-07-17", - last_updated: "2025-07-17", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5, cache_read: 0.0375 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-2.0-flash-001": { - id: "google/gemini-2.0-flash-001", - name: "Gemini 2.0 Flash", - family: "gemini-flash", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-06", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, - limit: { context: 1048576, output: 8192 }, - }, - "google/gemini-3.1-flash-lite-preview": { - id: "google/gemini-3.1-flash-lite-preview", - name: "Gemini 3.1 Flash Lite Preview", - family: "gemini-flash-lite", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-03-03", - last_updated: "2026-03-03", - modalities: { input: ["text", "image", "video", "pdf", "audio"], output: ["text"] }, - open_weights: false, - cost: { - input: 0.25, - output: 1.5, - reasoning: 1.5, - cache_read: 0.025, - cache_write: 0.083, - input_audio: 0.5, - output_audio: 0.5, - }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-3-flash-preview": { - id: "google/gemini-3-flash-preview", - name: "Gemini 3 Flash Preview", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 3, cache_read: 0.05 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemma-3-12b-it:free": { - id: "google/gemma-3-12b-it:free", - name: "Gemma 3 12B (free)", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-10", - release_date: "2025-03-13", - last_updated: "2025-03-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 32768, output: 8192 }, - }, - "google/gemini-2.5-flash-lite": { - id: "google/gemini-2.5-flash-lite", - name: "Gemini 2.5 Flash Lite", - family: "gemini-flash-lite", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-3.1-pro-preview": { - id: "google/gemini-3.1-pro-preview", - name: "Gemini 3.1 Pro Preview", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-02-19", - last_updated: "2026-02-19", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, reasoning: 12, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemma-2-9b-it": { - id: "google/gemma-2-9b-it", - name: "Gemma 2 9B", - family: "gemma", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-06", - release_date: "2024-06-28", - last_updated: "2024-06-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.09 }, - limit: { context: 8192, output: 8192 }, - }, - "google/gemma-3-4b-it:free": { - id: "google/gemma-3-4b-it:free", - name: "Gemma 3 4B (free)", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-10", - release_date: "2025-03-13", - last_updated: "2025-03-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 32768, output: 8192 }, - }, - "google/gemma-3n-e4b-it": { - id: "google/gemma-3n-e4b-it", - name: "Gemma 3n 4B", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-06", - release_date: "2025-05-20", - last_updated: "2025-05-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0.04 }, - limit: { context: 32768, output: 32768 }, - }, - "google/gemini-3-pro-preview": { - id: "google/gemini-3-pro-preview", - name: "Gemini 3 Pro Preview", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-11-18", - last_updated: "2025-11", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12 }, - limit: { context: 1050000, output: 66000 }, - }, - "google/gemma-3-12b-it": { - id: "google/gemma-3-12b-it", - name: "Gemma 3 12B", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-03-13", - last_updated: "2025-03-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.1 }, - limit: { context: 131072, output: 131072 }, - }, - "google/gemma-3-4b-it": { - id: "google/gemma-3-4b-it", - name: "Gemma 3 4B", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-10", - release_date: "2025-03-13", - last_updated: "2025-03-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.01703, output: 0.06815 }, - limit: { context: 96000, output: 96000 }, - }, - "google/gemma-3-27b-it": { - id: "google/gemma-3-27b-it", - name: "Gemma 3 27B", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-03-12", - last_updated: "2025-03-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.04, output: 0.15 }, - limit: { context: 96000, output: 96000 }, - }, - "google/gemini-2.5-pro": { - id: "google/gemini-2.5-pro", - name: "Gemini 2.5 Pro", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-03-20", - last_updated: "2025-06-05", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.31 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemma-3-27b-it:free": { - id: "google/gemma-3-27b-it:free", - name: "Gemma 3 27B (free)", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-03-12", - last_updated: "2025-03-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 8192 }, - }, - "z-ai/glm-5": { - id: "z-ai/glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3.2, cache_read: 0.2 }, - limit: { context: 202752, output: 131000 }, - }, - "z-ai/glm-4.5-air": { - id: "z-ai/glm-4.5-air", - name: "GLM 4.5 Air", - family: "glm-air", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 1.1 }, - limit: { context: 128000, output: 96000 }, - }, - "z-ai/glm-4.5": { - id: "z-ai/glm-4.5", - name: "GLM 4.5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2 }, - limit: { context: 128000, output: 96000 }, - }, - "z-ai/glm-4.6:exacto": { - id: "z-ai/glm-4.6:exacto", - name: "GLM 4.6 (exacto)", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-09", - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 1.9, cache_read: 0.11 }, - limit: { context: 200000, output: 128000 }, - }, - "z-ai/glm-4.7-flash": { - id: "z-ai/glm-4.7-flash", - name: "GLM-4.7-Flash", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - structured_output: true, - temperature: true, - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.4 }, - limit: { context: 200000, output: 65535 }, - }, - "z-ai/glm-4.5-air:free": { - id: "z-ai/glm-4.5-air:free", - name: "GLM 4.5 Air (free)", - family: "glm-air", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 96000 }, - }, - "z-ai/glm-4.6": { - id: "z-ai/glm-4.6", - name: "GLM 4.6", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-09", - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2, cache_read: 0.11 }, - limit: { context: 200000, output: 128000 }, - }, - "z-ai/glm-4.7": { - id: "z-ai/glm-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2, cache_read: 0.11 }, - limit: { context: 204800, output: 131072 }, - }, - "z-ai/glm-4.5v": { - id: "z-ai/glm-4.5v", - name: "GLM 4.5V", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-08-11", - last_updated: "2025-08-11", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 1.8 }, - limit: { context: 64000, output: 16384 }, - }, - "qwen/qwen3-next-80b-a3b-thinking": { - id: "qwen/qwen3-next-80b-a3b-thinking", - name: "Qwen3 Next 80B A3B Thinking", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-11", - last_updated: "2025-09-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.14, output: 1.4 }, - limit: { context: 262144, output: 262144 }, - }, - "qwen/qwen3-coder:free": { - id: "qwen/qwen3-coder:free", - name: "Qwen3 Coder 480B A35B Instruct (free)", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 66536 }, - }, - "qwen/qwen3-coder-flash": { - id: "qwen/qwen3-coder-flash", - name: "Qwen3 Coder Flash", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.5 }, - limit: { context: 128000, output: 66536 }, - }, - "qwen/qwen3-coder": { - id: "qwen/qwen3-coder", - name: "Qwen3 Coder", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 262144, output: 66536 }, - }, - "qwen/qwen3.5-397b-a17b": { - id: "qwen/qwen3.5-397b-a17b", - name: "Qwen3.5 397B A17B", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02-16", - last_updated: "2026-02-16", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3.6 }, - limit: { context: 262144, output: 65536 }, - }, - "qwen/qwen3-coder:exacto": { - id: "qwen/qwen3-coder:exacto", - name: "Qwen3 Coder (exacto)", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.38, output: 1.53 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen/qwen-2.5-coder-32b-instruct": { - id: "qwen/qwen-2.5-coder-32b-instruct", - name: "Qwen2.5 Coder 32B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-11-11", - last_updated: "2024-11-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 32768, output: 8192 }, - }, - "qwen/qwen3.5-plus-02-15": { - id: "qwen/qwen3.5-plus-02-15", - name: "Qwen3.5 Plus 2026-02-15", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02-16", - last_updated: "2026-02-16", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2.4 }, - limit: { context: 1000000, output: 65536 }, - }, - "qwen/qwen3-30b-a3b-instruct-2507": { - id: "qwen/qwen3-30b-a3b-instruct-2507", - name: "Qwen3 30B A3B Instruct 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-29", - last_updated: "2025-07-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 262000, output: 262000 }, - }, - "qwen/qwen2.5-vl-72b-instruct": { - id: "qwen/qwen2.5-vl-72b-instruct", - name: "Qwen2.5 VL 72B Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-02-01", - last_updated: "2025-02-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 32768, output: 8192 }, - }, - "qwen/qwen3-coder-30b-a3b-instruct": { - id: "qwen/qwen3-coder-30b-a3b-instruct", - name: "Qwen3 Coder 30B A3B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-31", - last_updated: "2025-07-31", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.27 }, - limit: { context: 160000, output: 65536 }, - }, - "qwen/qwen3-235b-a22b-07-25": { - id: "qwen/qwen3-235b-a22b-07-25", - name: "Qwen3 235B A22B Instruct 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04-28", - last_updated: "2025-07-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.85 }, - limit: { context: 262144, output: 131072 }, - }, - "qwen/qwen3-next-80b-a3b-instruct:free": { - id: "qwen/qwen3-next-80b-a3b-instruct:free", - name: "Qwen3 Next 80B A3B Instruct (free)", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-11", - last_updated: "2025-09-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 262144 }, - }, - "qwen/qwen3-4b:free": { - id: "qwen/qwen3-4b:free", - name: "Qwen3 4B (free)", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04-30", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 40960, output: 40960 }, - }, - "qwen/qwen3-30b-a3b-thinking-2507": { - id: "qwen/qwen3-30b-a3b-thinking-2507", - name: "Qwen3 30B A3B Thinking 2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-29", - last_updated: "2025-07-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 262000, output: 262000 }, - }, - "qwen/qwen3-235b-a22b-thinking-2507": { - id: "qwen/qwen3-235b-a22b-thinking-2507", - name: "Qwen3 235B A22B Thinking 2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-25", - last_updated: "2025-07-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.078, output: 0.312 }, - limit: { context: 262144, output: 81920 }, - }, - "qwen/qwen3-next-80b-a3b-instruct": { - id: "qwen/qwen3-next-80b-a3b-instruct", - name: "Qwen3 Next 80B A3B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-11", - last_updated: "2025-09-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.14, output: 1.4 }, - limit: { context: 262144, output: 262144 }, - }, - "qwen/qwen3-max": { - id: "qwen/qwen3-max", - name: "Qwen3 Max", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.2, output: 6 }, - limit: { context: 262144, output: 32768 }, - }, - "x-ai/grok-3": { - id: "x-ai/grok-3", - name: "Grok 3", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.75, cache_write: 15 }, - limit: { context: 131072, output: 8192 }, - }, - "x-ai/grok-code-fast-1": { - id: "x-ai/grok-code-fast-1", - name: "Grok Code Fast 1", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-08", - release_date: "2025-08-26", - last_updated: "2025-08-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.5, cache_read: 0.02 }, - limit: { context: 256000, output: 10000 }, - }, - "x-ai/grok-4-fast": { - id: "x-ai/grok-4-fast", - name: "Grok 4 Fast", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-08-19", - last_updated: "2025-08-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05, cache_write: 0.05 }, - limit: { context: 2000000, output: 30000 }, - }, - "x-ai/grok-4": { - id: "x-ai/grok-4", - name: "Grok 4", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.75, cache_write: 15 }, - limit: { context: 256000, output: 64000 }, - }, - "x-ai/grok-4.1-fast": { - id: "x-ai/grok-4.1-fast", - name: "Grok 4.1 Fast", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-11-19", - last_updated: "2025-11-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05, cache_write: 0.05 }, - limit: { context: 2000000, output: 30000 }, - }, - "x-ai/grok-3-mini-beta": { - id: "x-ai/grok-3-mini-beta", - name: "Grok 3 Mini Beta", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.5, cache_read: 0.075, cache_write: 0.5 }, - limit: { context: 131072, output: 8192 }, - }, - "x-ai/grok-3-mini": { - id: "x-ai/grok-3-mini", - name: "Grok 3 Mini", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.5, cache_read: 0.075, cache_write: 0.5 }, - limit: { context: 131072, output: 8192 }, - }, - "x-ai/grok-4.20-multi-agent-beta": { - id: "x-ai/grok-4.20-multi-agent-beta", - name: "Grok 4.20 Multi - Agent Beta", - family: "grok", - attachment: true, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2026-03-12", - last_updated: "2026-03-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6, cache_read: 0.2, context_over_200k: { input: 4, output: 12 } }, - limit: { context: 2000000, output: 30000 }, - status: "beta", - }, - "x-ai/grok-4.20-beta": { - id: "x-ai/grok-4.20-beta", - name: "Grok 4.20 Beta", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-12", - last_updated: "2026-03-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6, cache_read: 0.2, context_over_200k: { input: 4, output: 12 } }, - limit: { context: 2000000, output: 30000 }, - status: "beta", - }, - "x-ai/grok-3-beta": { - id: "x-ai/grok-3-beta", - name: "Grok 3 Beta", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.75, cache_write: 15 }, - limit: { context: 131072, output: 8192 }, - }, - "meta-llama/llama-3.3-70b-instruct:free": { - id: "meta-llama/llama-3.3-70b-instruct:free", - name: "Llama 3.3 70B Instruct (free)", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-12", - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 131072 }, - }, - "meta-llama/llama-3.2-11b-vision-instruct": { - id: "meta-llama/llama-3.2-11b-vision-instruct", - name: "Llama 3.2 11B Vision Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-12", - release_date: "2024-09-25", - last_updated: "2024-09-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 8192 }, - }, - "meta-llama/llama-3.2-3b-instruct:free": { - id: "meta-llama/llama-3.2-3b-instruct:free", - name: "Llama 3.2 3B Instruct (free)", - family: "llama", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-12", - release_date: "2024-09-25", - last_updated: "2024-09-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 131072 }, - }, - "mistralai/devstral-medium-2507": { - id: "mistralai/devstral-medium-2507", - name: "Devstral Medium", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-05", - release_date: "2025-07-10", - last_updated: "2025-07-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 2 }, - limit: { context: 131072, output: 131072 }, - }, - "mistralai/mistral-medium-3": { - id: "mistralai/mistral-medium-3", - name: "Mistral Medium 3", - family: "mistral-medium", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-05", - release_date: "2025-05-07", - last_updated: "2025-05-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2 }, - limit: { context: 131072, output: 131072 }, - }, - "mistralai/codestral-2508": { - id: "mistralai/codestral-2508", - name: "Codestral 2508", - family: "codestral", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-05", - release_date: "2025-08-01", - last_updated: "2025-08-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.9 }, - limit: { context: 256000, output: 256000 }, - }, - "mistralai/mistral-small-3.1-24b-instruct": { - id: "mistralai/mistral-small-3.1-24b-instruct", - name: "Mistral Small 3.1 24B Instruct", - family: "mistral-small", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-03-17", - last_updated: "2025-03-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 8192 }, - }, - "mistralai/mistral-small-2603": { - id: "mistralai/mistral-small-2603", - name: "Mistral Small 4", - family: "mistral-small", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2026-03-16", - last_updated: "2026-03-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 262144, output: 262144 }, - }, - "mistralai/devstral-small-2505": { - id: "mistralai/devstral-small-2505", - name: "Devstral Small", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2025-05-07", - last_updated: "2025-05-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.06, output: 0.12 }, - limit: { context: 128000, output: 128000 }, - }, - "mistralai/devstral-2512": { - id: "mistralai/devstral-2512", - name: "Devstral 2 2512", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-12", - release_date: "2025-09-12", - last_updated: "2025-09-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 262144, output: 262144 }, - }, - "mistralai/mistral-small-3.2-24b-instruct": { - id: "mistralai/mistral-small-3.2-24b-instruct", - name: "Mistral Small 3.2 24B Instruct", - family: "mistral-small", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-06-20", - last_updated: "2025-06-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 96000, output: 8192 }, - }, - "mistralai/devstral-small-2507": { - id: "mistralai/devstral-small-2507", - name: "Devstral Small 1.1", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-05", - release_date: "2025-07-10", - last_updated: "2025-07-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 131072, output: 131072 }, - }, - "mistralai/mistral-medium-3.1": { - id: "mistralai/mistral-medium-3.1", - name: "Mistral Medium 3.1", - family: "mistral-medium", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-05", - release_date: "2025-08-12", - last_updated: "2025-08-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2 }, - limit: { context: 262144, output: 262144 }, - }, - "openai/gpt-5.3-codex": { - id: "openai/gpt-5.3-codex", - name: "GPT-5.3-Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-02-24", - last_updated: "2026-02-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5-codex": { - id: "openai/gpt-5-codex", - name: "GPT-5 Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-10-01", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5-pro": { - id: "openai/gpt-5-pro", - name: "GPT-5 Pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-10-06", - last_updated: "2025-10-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 120 }, - limit: { context: 400000, output: 272000 }, - }, - "openai/gpt-4o-mini": { - id: "openai/gpt-4o-mini", - name: "GPT-4o-mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6, cache_read: 0.08 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-5.1-codex-max": { - id: "openai/gpt-5.1-codex-max", - name: "GPT-5.1-Codex-Max", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 9, cache_read: 0.11 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.2-codex": { - id: "openai/gpt-5.2-codex", - name: "GPT-5.2-Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2026-01-14", - last_updated: "2026-01-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-oss-120b:exacto": { - id: "openai/gpt-oss-120b:exacto", - name: "GPT OSS 120B (exacto)", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.24 }, - limit: { context: 131072, output: 32768 }, - }, - "openai/gpt-5.1": { - id: "openai/gpt-5.1", - name: "GPT-5.1", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.2-chat": { - id: "openai/gpt-5.2-chat", - name: "GPT-5.2 Chat", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-5-chat": { - id: "openai/gpt-5-chat", - name: "GPT-5 Chat (latest)", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: true, - temperature: true, - knowledge: "2024-09-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.1-chat": { - id: "openai/gpt-5.1-chat", - name: "GPT-5.1 Chat", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-5-image": { - id: "openai/gpt-5-image", - name: "GPT-5 Image", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-10-01", - release_date: "2025-10-14", - last_updated: "2025-10-14", - modalities: { input: ["text", "image", "pdf"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 5, output: 10, cache_read: 1.25 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "GPT OSS 120B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.072, output: 0.28 }, - limit: { context: 131072, output: 32768 }, - }, - "openai/gpt-5.1-codex-mini": { - id: "openai/gpt-5.1-codex-mini", - name: "GPT-5.1-Codex-Mini", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.025 }, - limit: { context: 400000, output: 100000 }, - }, - "openai/gpt-5.2": { - id: "openai/gpt-5.2", - name: "GPT-5.2", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-oss-20b:free": { - id: "openai/gpt-oss-20b:free", - name: "gpt-oss-20b (free)", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2026-01-31", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 32768 }, - }, - "openai/gpt-4.1": { - id: "openai/gpt-4.1", - name: "GPT-4.1", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 1047576, output: 32768 }, - }, - "openai/gpt-5": { - id: "openai/gpt-5", - name: "GPT-5", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-10-01", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/o4-mini": { - id: "openai/o4-mini", - name: "o4 Mini", - family: "o-mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-06", - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.28 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-4.1-mini": { - id: "openai/gpt-4.1-mini", - name: "GPT-4.1 Mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.6, cache_read: 0.1 }, - limit: { context: 1047576, output: 32768 }, - }, - "openai/gpt-5.4": { - id: "openai/gpt-5.4", - name: "GPT-5.4", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 2.5, - output: 15, - cache_read: 0.25, - context_over_200k: { input: 5, output: 22.5, cache_read: 0.5 }, - }, - limit: { context: 1050000, input: 922000, output: 128000 }, - }, - "openai/gpt-5.4-pro": { - id: "openai/gpt-5.4-pro", - name: "GPT-5.4 Pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 30, output: 180, cache_read: 30 }, - limit: { context: 1050000, input: 922000, output: 128000 }, - }, - "openai/gpt-oss-safeguard-20b": { - id: "openai/gpt-oss-safeguard-20b", - name: "GPT OSS Safeguard 20B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-10-29", - last_updated: "2025-10-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.075, output: 0.3 }, - limit: { context: 131072, output: 65536 }, - }, - "openai/gpt-5.1-codex": { - id: "openai/gpt-5.1-codex", - name: "GPT-5.1-Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.2-pro": { - id: "openai/gpt-5.2-pro", - name: "GPT-5.2 Pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 21, output: 168 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5-mini": { - id: "openai/gpt-5-mini", - name: "GPT-5 Mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-10-01", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.4-nano": { - id: "openai/gpt-5.4-nano", - name: "GPT-5.4 Nano", - family: "gpt-nano", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2026-03-17", - last_updated: "2026-03-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2e-7, output: 0.00000125, cache_read: 2e-8 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-oss-20b": { - id: "openai/gpt-oss-20b", - name: "GPT OSS 20B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.2 }, - limit: { context: 131072, output: 32768 }, - }, - "openai/gpt-oss-120b:free": { - id: "openai/gpt-oss-120b:free", - name: "gpt-oss-120b (free)", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 32768 }, - }, - "openai/gpt-5-nano": { - id: "openai/gpt-5-nano", - name: "GPT-5 Nano", - family: "gpt-nano", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-10-01", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.4 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.4-mini": { - id: "openai/gpt-5.4-mini", - name: "GPT-5.4 Mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2026-03-17", - last_updated: "2026-03-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 7.5e-7, output: 0.0000045, cache_read: 7.5e-8 }, - limit: { context: 400000, output: 128000 }, - }, - "minimax/minimax-m1": { - id: "minimax/minimax-m1", - name: "MiniMax M1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 2.2 }, - limit: { context: 1000000, output: 40000 }, - }, - "minimax/minimax-01": { - id: "minimax/minimax-01", - name: "MiniMax-01", - family: "minimax", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-01-15", - last_updated: "2025-01-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 1.1 }, - limit: { context: 1000000, output: 1000000 }, - }, - "minimax/minimax-m2.1": { - id: "minimax/minimax-m2.1", - name: "MiniMax M2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - structured_output: true, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 204800, output: 131072 }, - }, - "minimax/minimax-m2.7": { - id: "minimax/minimax-m2.7", - name: "MiniMax M2.7", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.06, cache_write: 0.375 }, - limit: { context: 204800, output: 131072 }, - }, - "minimax/minimax-m2": { - id: "minimax/minimax-m2", - name: "MiniMax M2", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - structured_output: true, - temperature: true, - release_date: "2025-10-23", - last_updated: "2025-10-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.28, output: 1.15, cache_read: 0.28, cache_write: 1.15 }, - limit: { context: 196600, output: 118000 }, - }, - "minimax/minimax-m2.5": { - id: "minimax/minimax-m2.5", - name: "MiniMax M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - structured_output: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.03 }, - limit: { context: 204800, output: 131072 }, - }, - "bytedance-seed/seedream-4.5": { - id: "bytedance-seed/seedream-4.5", - name: "Seedream 4.5", - family: "seed", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-06", - release_date: "2025-12-23", - last_updated: "2026-01-31", - modalities: { input: ["image", "text"], output: ["image"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 4096, output: 4096 }, - }, - "anthropic/claude-3.7-sonnet": { - id: "anthropic/claude-3.7-sonnet", - name: "Claude Sonnet 3.7", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-01", - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 128000 }, - }, - "anthropic/claude-opus-4.1": { - id: "anthropic/claude-opus-4.1", - name: "Claude Opus 4.1", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "anthropic/claude-sonnet-4.6": { - id: "anthropic/claude-sonnet-4.6", - name: "Claude Sonnet 4.6", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-17", - last_updated: "2026-02-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { - input: 3, - output: 15, - cache_read: 0.3, - cache_write: 3.75, - context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, - }, - limit: { context: 1000000, output: 128000 }, - }, - "anthropic/claude-haiku-4.5": { - id: "anthropic/claude-haiku-4.5", - name: "Claude Haiku 4.5", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-02-28", - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-3.5-haiku": { - id: "anthropic/claude-3.5-haiku", - name: "Claude Haiku 3.5", - family: "claude-haiku", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07-31", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, - limit: { context: 200000, output: 8192 }, - }, - "anthropic/claude-opus-4.5": { - id: "anthropic/claude-opus-4.5", - name: "Claude Opus 4.5", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-05-30", - release_date: "2025-11-24", - last_updated: "2025-11-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 32000 }, - }, - "anthropic/claude-opus-4": { - id: "anthropic/claude-opus-4", - name: "Claude Opus 4", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "anthropic/claude-sonnet-4": { - id: "anthropic/claude-sonnet-4", - name: "Claude Sonnet 4", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 3, - output: 15, - cache_read: 0.3, - cache_write: 3.75, - context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, - }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-sonnet-4.5": { - id: "anthropic/claude-sonnet-4.5", - name: "Claude Sonnet 4.5", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 3, - output: 15, - cache_read: 0.3, - cache_write: 3.75, - context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, - }, - limit: { context: 1000000, output: 64000 }, - }, - "anthropic/claude-opus-4.6": { - id: "anthropic/claude-opus-4.6", - name: "Claude Opus 4.6", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-05-30", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 5, - output: 25, - cache_read: 0.5, - cache_write: 6.25, - context_over_200k: { input: 10, output: 37.5, cache_read: 1, cache_write: 12.5 }, - }, - limit: { context: 1000000, output: 128000 }, - }, - "black-forest-labs/flux.2-pro": { - id: "black-forest-labs/flux.2-pro", - name: "FLUX.2 Pro", - family: "flux", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-06", - release_date: "2025-11-25", - last_updated: "2026-01-31", - modalities: { input: ["image", "text"], output: ["image"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 46864, output: 46864 }, - }, - "black-forest-labs/flux.2-flex": { - id: "black-forest-labs/flux.2-flex", - name: "FLUX.2 Flex", - family: "flux", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-06", - release_date: "2025-11-25", - last_updated: "2026-01-31", - modalities: { input: ["image", "text"], output: ["image"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 67344, output: 67344 }, - }, - "black-forest-labs/flux.2-max": { - id: "black-forest-labs/flux.2-max", - name: "FLUX.2 Max", - family: "flux", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-06", - release_date: "2025-12-16", - last_updated: "2026-01-31", - modalities: { input: ["image", "text"], output: ["image"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 46864, output: 46864 }, - }, - "black-forest-labs/flux.2-klein-4b": { - id: "black-forest-labs/flux.2-klein-4b", - name: "FLUX.2 Klein 4B", - family: "flux", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-06", - release_date: "2026-01-14", - last_updated: "2026-01-31", - modalities: { input: ["image", "text"], output: ["image"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 40960, output: 40960 }, - }, - "nousresearch/hermes-4-405b": { - id: "nousresearch/hermes-4-405b", - name: "Hermes 4 405B", - family: "hermes", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2025-08-25", - last_updated: "2025-08-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3 }, - limit: { context: 131072, output: 131072 }, - }, - "nousresearch/hermes-4-70b": { - id: "nousresearch/hermes-4-70b", - name: "Hermes 4 70B", - family: "hermes", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-12", - release_date: "2025-08-25", - last_updated: "2025-08-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.13, output: 0.4 }, - limit: { context: 131072, output: 131072 }, - }, - "nousresearch/hermes-3-llama-3.1-405b:free": { - id: "nousresearch/hermes-3-llama-3.1-405b:free", - name: "Hermes 3 405B Instruct (free)", - family: "hermes", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2023-12", - release_date: "2024-08-16", - last_updated: "2024-08-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 131072, output: 131072 }, - }, - }, - }, - "github-models": { - id: "github-models", - env: ["GITHUB_TOKEN"], - npm: "@ai-sdk/openai-compatible", - api: "https://models.github.ai/inference", - name: "GitHub Models", - doc: "https://docs.github.com/en/github-models", - models: { - "ai21-labs/ai21-jamba-1.5-mini": { - id: "ai21-labs/ai21-jamba-1.5-mini", - name: "AI21 Jamba 1.5 Mini", - family: "jamba", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-03", - release_date: "2024-08-29", - last_updated: "2024-08-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 4096 }, - }, - "ai21-labs/ai21-jamba-1.5-large": { - id: "ai21-labs/ai21-jamba-1.5-large", - name: "AI21 Jamba 1.5 Large", - family: "jamba", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-03", - release_date: "2024-08-29", - last_updated: "2024-08-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 4096 }, - }, - "microsoft/phi-4-multimodal-instruct": { - id: "microsoft/phi-4-multimodal-instruct", - name: "Phi-4-multimodal-instruct", - family: "phi", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text", "image", "audio"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "microsoft/phi-3-small-128k-instruct": { - id: "microsoft/phi-3-small-128k-instruct", - name: "Phi-3-small instruct (128k)", - family: "phi", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-04-23", - last_updated: "2024-04-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "microsoft/phi-3-medium-128k-instruct": { - id: "microsoft/phi-3-medium-128k-instruct", - name: "Phi-3-medium instruct (128k)", - family: "phi", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-04-23", - last_updated: "2024-04-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "microsoft/mai-ds-r1": { - id: "microsoft/mai-ds-r1", - name: "MAI-DS-R1", - family: "mai", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-06", - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 65536, output: 8192 }, - }, - "microsoft/phi-3.5-moe-instruct": { - id: "microsoft/phi-3.5-moe-instruct", - name: "Phi-3.5-MoE instruct (128k)", - family: "phi", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-08-20", - last_updated: "2024-08-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "microsoft/phi-3.5-mini-instruct": { - id: "microsoft/phi-3.5-mini-instruct", - name: "Phi-3.5-mini instruct (128k)", - family: "phi", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-08-20", - last_updated: "2024-08-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "microsoft/phi-4-mini-instruct": { - id: "microsoft/phi-4-mini-instruct", - name: "Phi-4-mini-instruct", - family: "phi", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "microsoft/phi-4": { - id: "microsoft/phi-4", - name: "Phi-4", - family: "phi", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 16000, output: 4096 }, - }, - "microsoft/phi-3-mini-4k-instruct": { - id: "microsoft/phi-3-mini-4k-instruct", - name: "Phi-3-mini instruct (4k)", - family: "phi", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-04-23", - last_updated: "2024-04-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 4096, output: 1024 }, - }, - "microsoft/phi-4-mini-reasoning": { - id: "microsoft/phi-4-mini-reasoning", - name: "Phi-4-mini-reasoning", - family: "phi", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "microsoft/phi-3.5-vision-instruct": { - id: "microsoft/phi-3.5-vision-instruct", - name: "Phi-3.5-vision instruct (128k)", - family: "phi", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-08-20", - last_updated: "2024-08-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "microsoft/phi-3-medium-4k-instruct": { - id: "microsoft/phi-3-medium-4k-instruct", - name: "Phi-3-medium instruct (4k)", - family: "phi", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-04-23", - last_updated: "2024-04-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 4096, output: 1024 }, - }, - "microsoft/phi-3-mini-128k-instruct": { - id: "microsoft/phi-3-mini-128k-instruct", - name: "Phi-3-mini instruct (128k)", - family: "phi", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-04-23", - last_updated: "2024-04-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "microsoft/phi-4-reasoning": { - id: "microsoft/phi-4-reasoning", - name: "Phi-4-Reasoning", - family: "phi", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "microsoft/phi-3-small-8k-instruct": { - id: "microsoft/phi-3-small-8k-instruct", - name: "Phi-3-small instruct (8k)", - family: "phi", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-04-23", - last_updated: "2024-04-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 8192, output: 2048 }, - }, - "core42/jais-30b-chat": { - id: "core42/jais-30b-chat", - name: "JAIS 30b Chat", - family: "jais", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-03", - release_date: "2023-08-30", - last_updated: "2023-08-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 8192, output: 2048 }, - }, - "mistral-ai/ministral-3b": { - id: "mistral-ai/ministral-3b", - name: "Ministral 3B", - family: "ministral", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-03", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 8192 }, - }, - "mistral-ai/mistral-medium-2505": { - id: "mistral-ai/mistral-medium-2505", - name: "Mistral Medium 3 (25.05)", - family: "mistral-medium", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-09", - release_date: "2025-05-01", - last_updated: "2025-05-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 32768 }, - }, - "mistral-ai/mistral-nemo": { - id: "mistral-ai/mistral-nemo", - name: "Mistral Nemo", - family: "mistral-nemo", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-03", - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 8192 }, - }, - "mistral-ai/mistral-large-2411": { - id: "mistral-ai/mistral-large-2411", - name: "Mistral Large 24.11", - family: "mistral-large", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-09", - release_date: "2024-11-01", - last_updated: "2024-11-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 32768 }, - }, - "mistral-ai/mistral-small-2503": { - id: "mistral-ai/mistral-small-2503", - name: "Mistral Small 3.1", - family: "mistral-small", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-09", - release_date: "2025-03-01", - last_updated: "2025-03-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 32768 }, - }, - "mistral-ai/codestral-2501": { - id: "mistral-ai/codestral-2501", - name: "Codestral 25.01", - family: "codestral", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-03", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 32000, output: 8192 }, - }, - "deepseek/deepseek-r1-0528": { - id: "deepseek/deepseek-r1-0528", - name: "DeepSeek-R1-0528", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-06", - release_date: "2025-05-28", - last_updated: "2025-05-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 65536, output: 8192 }, - }, - "deepseek/deepseek-r1": { - id: "deepseek/deepseek-r1", - name: "DeepSeek-R1", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-06", - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 65536, output: 8192 }, - }, - "deepseek/deepseek-v3-0324": { - id: "deepseek/deepseek-v3-0324", - name: "DeepSeek-V3-0324", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-06", - release_date: "2025-03-24", - last_updated: "2025-03-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 8192 }, - }, - "meta/llama-3.2-90b-vision-instruct": { - id: "meta/llama-3.2-90b-vision-instruct", - name: "Llama-3.2-90B-Vision-Instruct", - family: "llama", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-09-25", - last_updated: "2024-09-25", - modalities: { input: ["text", "image", "audio"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 8192 }, - }, - "meta/llama-3.3-70b-instruct": { - id: "meta/llama-3.3-70b-instruct", - name: "Llama-3.3-70B-Instruct", - family: "llama", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 32768 }, - }, - "meta/llama-4-scout-17b-16e-instruct": { - id: "meta/llama-4-scout-17b-16e-instruct", - name: "Llama 4 Scout 17B 16E Instruct", - family: "llama", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-01-31", - last_updated: "2025-01-31", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 8192 }, - }, - "meta/meta-llama-3.1-405b-instruct": { - id: "meta/meta-llama-3.1-405b-instruct", - name: "Meta-Llama-3.1-405B-Instruct", - family: "llama", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 32768 }, - }, - "meta/meta-llama-3-8b-instruct": { - id: "meta/meta-llama-3-8b-instruct", - name: "Meta-Llama-3-8B-Instruct", - family: "llama", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-04-18", - last_updated: "2024-04-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 8192, output: 2048 }, - }, - "meta/llama-3.2-11b-vision-instruct": { - id: "meta/llama-3.2-11b-vision-instruct", - name: "Llama-3.2-11B-Vision-Instruct", - family: "llama", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-09-25", - last_updated: "2024-09-25", - modalities: { input: ["text", "image", "audio"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 8192 }, - }, - "meta/meta-llama-3-70b-instruct": { - id: "meta/meta-llama-3-70b-instruct", - name: "Meta-Llama-3-70B-Instruct", - family: "llama", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-04-18", - last_updated: "2024-04-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 8192, output: 2048 }, - }, - "meta/meta-llama-3.1-70b-instruct": { - id: "meta/meta-llama-3.1-70b-instruct", - name: "Meta-Llama-3.1-70B-Instruct", - family: "llama", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 32768 }, - }, - "meta/meta-llama-3.1-8b-instruct": { - id: "meta/meta-llama-3.1-8b-instruct", - name: "Meta-Llama-3.1-8B-Instruct", - family: "llama", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 32768 }, - }, - "meta/llama-4-maverick-17b-128e-instruct-fp8": { - id: "meta/llama-4-maverick-17b-128e-instruct-fp8", - name: "Llama 4 Maverick 17B 128E Instruct FP8", - family: "llama", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-01-31", - last_updated: "2025-01-31", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 8192 }, - }, - "openai/gpt-4o-mini": { - id: "openai/gpt-4o-mini", - name: "GPT-4o mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text", "image", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/o1": { - id: "openai/o1", - name: "OpenAI o1", - family: "o", - attachment: false, - reasoning: true, - tool_call: false, - temperature: false, - knowledge: "2023-10", - release_date: "2024-09-12", - last_updated: "2024-12-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/o3": { - id: "openai/o3", - name: "OpenAI o3", - family: "o", - attachment: false, - reasoning: true, - tool_call: false, - temperature: false, - knowledge: "2024-04", - release_date: "2025-01-31", - last_updated: "2025-01-31", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-4.1-nano": { - id: "openai/gpt-4.1-nano", - name: "GPT-4.1-nano", - family: "gpt-nano", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-4.1": { - id: "openai/gpt-4.1", - name: "GPT-4.1", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/o4-mini": { - id: "openai/o4-mini", - name: "OpenAI o4-mini", - family: "o-mini", - attachment: false, - reasoning: true, - tool_call: false, - temperature: false, - knowledge: "2024-04", - release_date: "2025-01-31", - last_updated: "2025-01-31", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-4.1-mini": { - id: "openai/gpt-4.1-mini", - name: "GPT-4.1-mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/o1-preview": { - id: "openai/o1-preview", - name: "OpenAI o1-preview", - family: "o", - attachment: false, - reasoning: true, - tool_call: false, - temperature: false, - knowledge: "2023-10", - release_date: "2024-09-12", - last_updated: "2024-09-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 32768 }, - }, - "openai/o3-mini": { - id: "openai/o3-mini", - name: "OpenAI o3-mini", - family: "o-mini", - attachment: false, - reasoning: true, - tool_call: false, - temperature: false, - knowledge: "2024-04", - release_date: "2025-01-31", - last_updated: "2025-01-31", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/o1-mini": { - id: "openai/o1-mini", - name: "OpenAI o1-mini", - family: "o-mini", - attachment: false, - reasoning: true, - tool_call: false, - temperature: false, - knowledge: "2023-10", - release_date: "2024-09-12", - last_updated: "2024-12-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 65536 }, - }, - "openai/gpt-4o": { - id: "openai/gpt-4o", - name: "GPT-4o", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-05-13", - last_updated: "2024-05-13", - modalities: { input: ["text", "image", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "cohere/cohere-command-a": { - id: "cohere/cohere-command-a", - name: "Cohere Command A", - family: "command-a", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-03", - release_date: "2024-11-01", - last_updated: "2024-11-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "cohere/cohere-command-r-plus-08-2024": { - id: "cohere/cohere-command-r-plus-08-2024", - name: "Cohere Command R+ 08-2024", - family: "command-r", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-03", - release_date: "2024-08-01", - last_updated: "2024-08-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "cohere/cohere-command-r": { - id: "cohere/cohere-command-r", - name: "Cohere Command R", - family: "command-r", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-03", - release_date: "2024-03-11", - last_updated: "2024-08-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "cohere/cohere-command-r-08-2024": { - id: "cohere/cohere-command-r-08-2024", - name: "Cohere Command R 08-2024", - family: "command-r", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-03", - release_date: "2024-08-01", - last_updated: "2024-08-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "cohere/cohere-command-r-plus": { - id: "cohere/cohere-command-r-plus", - name: "Cohere Command R+", - family: "command-r", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-03", - release_date: "2024-04-04", - last_updated: "2024-08-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "xai/grok-3": { - id: "xai/grok-3", - name: "Grok 3", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12-09", - last_updated: "2024-12-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 8192 }, - }, - "xai/grok-3-mini": { - id: "xai/grok-3-mini", - name: "Grok 3 Mini", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12-09", - last_updated: "2024-12-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 8192 }, - }, - }, - }, - "302ai": { - id: "302ai", - env: ["302AI_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.302.ai/v1", - name: "302.AI", - doc: "https://doc.302.ai", - models: { - "qwen3-235b-a22b-instruct-2507": { - id: "qwen3-235b-a22b-instruct-2507", - name: "qwen3-235b-a22b-instruct-2507", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-30", - last_updated: "2025-07-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.29, output: 1.143 }, - limit: { context: 128000, output: 65536 }, - }, - "gpt-5-pro": { - id: "gpt-5-pro", - name: "gpt-5-pro", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-10-08", - last_updated: "2025-10-08", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 120 }, - limit: { context: 400000, output: 272000 }, - }, - "claude-opus-4-5-20251101": { - id: "claude-opus-4-5-20251101", - name: "claude-opus-4-5-20251101", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-03", - release_date: "2025-11-25", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25 }, - limit: { context: 200000, output: 64000 }, - }, - "deepseek-reasoner": { - id: "deepseek-reasoner", - name: "Deepseek-Reasoner", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.29, output: 0.43 }, - limit: { context: 128000, output: 128000 }, - }, - "qwen-max-latest": { - id: "qwen-max-latest", - name: "Qwen-Max-Latest", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2024-04-03", - last_updated: "2025-01-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.343, output: 1.372 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen3-max-2025-09-23": { - id: "qwen3-max-2025-09-23", - name: "qwen3-max-2025-09-23", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-24", - last_updated: "2025-09-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.86, output: 3.43 }, - limit: { context: 258048, output: 65536 }, - }, - "grok-4-fast-reasoning": { - id: "grok-4-fast-reasoning", - name: "grok-4-fast-reasoning", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-09-23", - last_updated: "2025-09-23", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5 }, - limit: { context: 2000000, output: 30000 }, - }, - "gemini-2.5-flash-lite-preview-09-2025": { - id: "gemini-2.5-flash-lite-preview-09-2025", - name: "gemini-2.5-flash-lite-preview-09-2025", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-09-26", - last_updated: "2025-09-26", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 1000000, output: 65536 }, - }, - "gpt-5.2-chat-latest": { - id: "gpt-5.2-chat-latest", - name: "gpt-5.2-chat-latest", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-12-12", - last_updated: "2025-12-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14 }, - limit: { context: 128000, output: 16384 }, - }, - "claude-opus-4-1-20250805-thinking": { - id: "claude-opus-4-1-20250805-thinking", - name: "claude-opus-4-1-20250805-thinking", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03", - release_date: "2025-05-27", - last_updated: "2025-05-27", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75 }, - limit: { context: 200000, output: 32000 }, - }, - "qwen3-coder-480b-a35b-instruct": { - id: "qwen3-coder-480b-a35b-instruct", - name: "qwen3-coder-480b-a35b-instruct", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.86, output: 3.43 }, - limit: { context: 262144, output: 65536 }, - }, - "gemini-2.5-flash-preview-09-2025": { - id: "gemini-2.5-flash-preview-09-2025", - name: "gemini-2.5-flash-preview-09-2025", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-09-26", - last_updated: "2025-09-26", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5 }, - limit: { context: 1000000, output: 65536 }, - }, - "grok-4-1-fast-reasoning": { - id: "grok-4-1-fast-reasoning", - name: "grok-4-1-fast-reasoning", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-11-20", - last_updated: "2025-11-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5 }, - limit: { context: 2000000, output: 30000 }, - }, - "glm-4.5": { - id: "glm-4.5", - name: "GLM-4.5", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-07-29", - last_updated: "2025-07-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.286, output: 1.142 }, - limit: { context: 128000, output: 98304 }, - }, - "gemini-2.5-flash": { - id: "gemini-2.5-flash", - name: "gemini-2.5-flash", - family: "gemini-flash", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5 }, - limit: { context: 1000000, output: 65536 }, - }, - "kimi-k2-0905-preview": { - id: "kimi-k2-0905-preview", - name: "kimi-k2-0905-preview", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.632, output: 2.53 }, - limit: { context: 262144, output: 262144 }, - }, - "grok-4-1-fast-non-reasoning": { - id: "grok-4-1-fast-non-reasoning", - name: "grok-4-1-fast-non-reasoning", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-11-20", - last_updated: "2025-11-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5 }, - limit: { context: 2000000, output: 30000 }, - }, - "gpt-5.1": { - id: "gpt-5.1", - name: "gpt-5.1", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, output: 128000 }, - }, - "claude-sonnet-4-5-20250929-thinking": { - id: "claude-sonnet-4-5-20250929-thinking", - name: "claude-sonnet-4-5-20250929-thinking", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03", - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 200000, output: 64000 }, - }, - "mistral-large-2512": { - id: "mistral-large-2512", - name: "mistral-large-2512", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-12-16", - last_updated: "2025-12-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 3.3 }, - limit: { context: 128000, output: 262144 }, - }, - "glm-4.6": { - id: "glm-4.6", - name: "glm-4.6", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-03", - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.286, output: 1.142 }, - limit: { context: 200000, output: 131072 }, - }, - "gemini-3-flash-preview": { - id: "gemini-3-flash-preview", - name: "gemini-3-flash-preview", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-12-18", - last_updated: "2025-12-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 3 }, - limit: { context: 1000000, output: 65536 }, - }, - "gpt-4.1-nano": { - id: "gpt-4.1-nano", - name: "gpt-4.1-nano", - family: "gpt-nano", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 1000000, output: 32768 }, - }, - "doubao-seed-1-6-vision-250815": { - id: "doubao-seed-1-6-vision-250815", - name: "doubao-seed-1-6-vision-250815", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.114, output: 1.143 }, - limit: { context: 256000, output: 32000 }, - }, - "doubao-seed-1-6-thinking-250715": { - id: "doubao-seed-1-6-thinking-250715", - name: "doubao-seed-1-6-thinking-250715", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-07-15", - last_updated: "2025-07-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.121, output: 1.21 }, - limit: { context: 256000, output: 16000 }, - }, - "doubao-seed-1-8-251215": { - id: "doubao-seed-1-8-251215", - name: "doubao-seed-1-8-251215", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-12-18", - last_updated: "2025-12-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.114, output: 0.286 }, - limit: { context: 224000, output: 64000 }, - }, - "claude-sonnet-4-5-20250929": { - id: "claude-sonnet-4-5-20250929", - name: "claude-sonnet-4-5-20250929", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-03", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 200000, output: 64000 }, - }, - "ministral-14b-2512": { - id: "ministral-14b-2512", - name: "ministral-14b-2512", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-12-16", - last_updated: "2025-12-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.33, output: 0.33 }, - limit: { context: 128000, output: 128000 }, - }, - "MiniMax-M2": { - id: "MiniMax-M2", - name: "MiniMax-M2", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-10-26", - last_updated: "2025-10-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.33, output: 1.32 }, - limit: { context: 1000000, output: 128000 }, - }, - "gpt-5.2": { - id: "gpt-5.2", - name: "gpt-5.2", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-12-12", - last_updated: "2025-12-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14 }, - limit: { context: 400000, output: 128000 }, - }, - "gpt-4.1": { - id: "gpt-4.1", - name: "gpt-4.1", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8 }, - limit: { context: 1000000, output: 32768 }, - }, - "gemini-2.5-flash-nothink": { - id: "gemini-2.5-flash-nothink", - name: "gemini-2.5-flash-nothink", - family: "gemini-flash", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-06-24", - last_updated: "2025-06-24", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5 }, - limit: { context: 1000000, output: 65536 }, - }, - "qwen3-235b-a22b": { - id: "qwen3-235b-a22b", - name: "Qwen3-235B-A22B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04-29", - last_updated: "2025-04-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.29, output: 2.86 }, - limit: { context: 128000, output: 16384 }, - }, - "deepseek-v3.2": { - id: "deepseek-v3.2", - name: "deepseek-v3.2", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.29, output: 0.43 }, - limit: { context: 128000, output: 8192 }, - }, - "claude-opus-4-5-20251101-thinking": { - id: "claude-opus-4-5-20251101-thinking", - name: "claude-opus-4-5-20251101-thinking", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03", - release_date: "2025-11-25", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25 }, - limit: { context: 200000, output: 64000 }, - }, - "claude-haiku-4-5-20251001": { - id: "claude-haiku-4-5-20251001", - name: "claude-haiku-4-5-20251001", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-03", - release_date: "2025-10-16", - last_updated: "2025-10-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5 }, - limit: { context: 200000, output: 64000 }, - }, - "gpt-5": { - id: "gpt-5", - name: "gpt-5", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-08-08", - last_updated: "2025-08-08", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, output: 128000 }, - }, - "deepseek-chat": { - id: "deepseek-chat", - name: "Deepseek-Chat", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2024-11-29", - last_updated: "2024-11-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.29, output: 0.43 }, - limit: { context: 128000, output: 8192 }, - }, - "gpt-4.1-mini": { - id: "gpt-4.1-mini", - name: "gpt-4.1-mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.6 }, - limit: { context: 1000000, output: 32768 }, - }, - "gemini-2.5-flash-image": { - id: "gemini-2.5-flash-image", - name: "gemini-2.5-flash-image", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-01", - release_date: "2025-10-08", - last_updated: "2025-10-08", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 30 }, - limit: { context: 32768, output: 32768 }, - }, - "gemini-3-pro-image-preview": { - id: "gemini-3-pro-image-preview", - name: "gemini-3-pro-image-preview", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-06", - release_date: "2025-11-20", - last_updated: "2025-11-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 120 }, - limit: { context: 32768, output: 64000 }, - }, - "glm-4.7": { - id: "glm-4.7", - name: "glm-4.7", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.286, output: 1.142 }, - limit: { context: 200000, output: 131072 }, - }, - "MiniMax-M1": { - id: "MiniMax-M1", - name: "MiniMax-M1", - family: "minimax", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-06-16", - last_updated: "2025-06-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.132, output: 1.254 }, - limit: { context: 1000000, output: 128000 }, - }, - "kimi-k2-thinking": { - id: "kimi-k2-thinking", - name: "kimi-k2-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.575, output: 2.3 }, - limit: { context: 262144, output: 262144 }, - }, - "gpt-5-thinking": { - id: "gpt-5-thinking", - name: "gpt-5-thinking", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-08-08", - last_updated: "2025-08-08", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, output: 128000 }, - }, - "deepseek-v3.2-thinking": { - id: "deepseek-v3.2-thinking", - name: "DeepSeek-V3.2-Thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.29, output: 0.43 }, - limit: { context: 128000, output: 128000 }, - }, - "chatgpt-4o-latest": { - id: "chatgpt-4o-latest", - name: "chatgpt-4o-latest", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-09", - release_date: "2024-08-08", - last_updated: "2024-08-08", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 15 }, - limit: { context: 128000, output: 16384 }, - }, - "qwen-plus": { - id: "qwen-plus", - name: "Qwen-Plus", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.12, output: 1.2 }, - limit: { context: 1000000, output: 32768 }, - }, - "MiniMax-M2.1": { - id: "MiniMax-M2.1", - name: "MiniMax-M2.1", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-12-19", - last_updated: "2025-12-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 1000000, output: 131072 }, - }, - "kimi-k2-thinking-turbo": { - id: "kimi-k2-thinking-turbo", - name: "kimi-k2-thinking-turbo", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.265, output: 9.119 }, - limit: { context: 262144, output: 262144 }, - }, - "gemini-3-pro-preview": { - id: "gemini-3-pro-preview", - name: "gemini-3-pro-preview", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-11-19", - last_updated: "2025-11-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12 }, - limit: { context: 1000000, output: 64000 }, - }, - "gemini-2.0-flash-lite": { - id: "gemini-2.0-flash-lite", - name: "gemini-2.0-flash-lite", - family: "gemini-flash-lite", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-11", - release_date: "2025-06-16", - last_updated: "2025-06-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.075, output: 0.3 }, - limit: { context: 2000000, output: 8192 }, - }, - "doubao-seed-code-preview-251028": { - id: "doubao-seed-code-preview-251028", - name: "doubao-seed-code-preview-251028", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-11-11", - last_updated: "2025-11-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.17, output: 1.14 }, - limit: { context: 256000, output: 32000 }, - }, - "qwen3-30b-a3b": { - id: "qwen3-30b-a3b", - name: "Qwen3-30B-A3B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04-29", - last_updated: "2025-04-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.11, output: 1.08 }, - limit: { context: 128000, output: 8192 }, - }, - "grok-4-fast-non-reasoning": { - id: "grok-4-fast-non-reasoning", - name: "grok-4-fast-non-reasoning", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-09-23", - last_updated: "2025-09-23", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5 }, - limit: { context: 2000000, output: 30000 }, - }, - "gpt-5-mini": { - id: "gpt-5-mini", - name: "gpt-5-mini", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-08-08", - last_updated: "2025-08-08", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2 }, - limit: { context: 400000, output: 128000 }, - }, - "glm-4.5v": { - id: "glm-4.5v", - name: "GLM-4.5V", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-07-29", - last_updated: "2025-07-29", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.29, output: 0.86 }, - limit: { context: 64000, output: 16384 }, - }, - "qwen-flash": { - id: "qwen-flash", - name: "Qwen-Flash", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.022, output: 0.22 }, - limit: { context: 1000000, output: 32768 }, - }, - "glm-4.6v": { - id: "glm-4.6v", - name: "GLM-4.6V", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-03", - release_date: "2025-12-08", - last_updated: "2025-12-08", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.145, output: 0.43 }, - limit: { context: 128000, output: 32768 }, - }, - "gpt-5.1-chat-latest": { - id: "gpt-5.1-chat-latest", - name: "gpt-5.1-chat-latest", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 128000, output: 16384 }, - }, - "claude-opus-4-1-20250805": { - id: "claude-opus-4-1-20250805", - name: "claude-opus-4-1-20250805", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-03", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75 }, - limit: { context: 200000, output: 32000 }, - }, - "gemini-2.5-pro": { - id: "gemini-2.5-pro", - name: "gemini-2.5-pro", - family: "gemini-pro", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 1000000, output: 65536 }, - }, - "gpt-4o": { - id: "gpt-4o", - name: "gpt-4o", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-09", - release_date: "2024-05-13", - last_updated: "2024-05-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10 }, - limit: { context: 128000, output: 16384 }, - }, - "grok-4.1": { - id: "grok-4.1", - name: "grok-4.1", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 10 }, - limit: { context: 200000, output: 64000 }, - }, - }, - }, - "github-copilot": { - id: "github-copilot", - env: ["GITHUB_TOKEN"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.githubcopilot.com", - name: "GitHub Copilot", - doc: "https://docs.github.com/en/copilot", - models: { - "gpt-5.3-codex": { - id: "gpt-5.3-codex", - name: "GPT-5.3-Codex", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-02-24", - last_updated: "2026-02-24", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "gpt-5.1-codex-max": { - id: "gpt-5.1-codex-max", - name: "GPT-5.1-Codex-max", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-12-04", - last_updated: "2025-12-04", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 400000, input: 128000, output: 128000 }, - }, - "gpt-5.2-codex": { - id: "gpt-5.2-codex", - name: "GPT-5.2-Codex", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "grok-code-fast-1": { - id: "grok-code-fast-1", - name: "Grok Code Fast 1", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2025-08-27", - last_updated: "2025-08-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, input: 128000, output: 64000 }, - }, - "gpt-5.1": { - id: "gpt-5.1", - name: "GPT-5.1", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 264000, input: 128000, output: 64000 }, - }, - "claude-sonnet-4.6": { - id: "claude-sonnet-4.6", - name: "Claude Sonnet 4.6", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-17", - last_updated: "2026-02-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 200000, input: 128000, output: 32000 }, - }, - "gemini-3-flash-preview": { - id: "gemini-3-flash-preview", - name: "Gemini 3 Flash", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, input: 128000, output: 64000 }, - }, - "claude-haiku-4.5": { - id: "claude-haiku-4.5", - name: "Claude Haiku 4.5", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-02-28", - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 144000, input: 128000, output: 32000 }, - }, - "gpt-5.1-codex-mini": { - id: "gpt-5.1-codex-mini", - name: "GPT-5.1-Codex-mini", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 400000, input: 128000, output: 128000 }, - }, - "gpt-5.2": { - id: "gpt-5.2", - name: "GPT-5.2", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 264000, input: 128000, output: 64000 }, - }, - "gpt-4.1": { - id: "gpt-4.1", - name: "GPT-4.1", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, input: 64000, output: 16384 }, - }, - "claude-opus-4.5": { - id: "claude-opus-4.5", - name: "Claude Opus 4.5", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-24", - last_updated: "2025-08-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 160000, input: 128000, output: 32000 }, - }, - "gemini-3.1-pro-preview": { - id: "gemini-3.1-pro-preview", - name: "Gemini 3.1 Pro Preview", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-02-19", - last_updated: "2026-02-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, input: 128000, output: 64000 }, - }, - "gpt-5": { - id: "gpt-5", - name: "GPT-5", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 128000 }, - }, - "gpt-5.4": { - id: "gpt-5.4", - name: "GPT-5.4", - family: "gpt", - attachment: false, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "gpt-5.1-codex": { - id: "gpt-5.1-codex", - name: "GPT-5.1-Codex", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 400000, input: 128000, output: 128000 }, - }, - "claude-sonnet-4": { - id: "claude-sonnet-4", - name: "Claude Sonnet 4", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 216000, input: 128000, output: 16000 }, - }, - "gemini-3-pro-preview": { - id: "gemini-3-pro-preview", - name: "Gemini 3 Pro Preview", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, input: 128000, output: 64000 }, - }, - "claude-sonnet-4.5": { - id: "claude-sonnet-4.5", - name: "Claude Sonnet 4.5", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 144000, input: 128000, output: 32000 }, - }, - "gpt-5-mini": { - id: "gpt-5-mini", - name: "GPT-5-mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-06", - release_date: "2025-08-13", - last_updated: "2025-08-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 264000, input: 128000, output: 64000 }, - }, - "claude-opus-4.6": { - id: "claude-opus-4.6", - name: "Claude Opus 4.6", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 144000, input: 128000, output: 64000 }, - }, - "claude-opus-41": { - id: "claude-opus-41", - name: "Claude Opus 4.1", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 80000, output: 16000 }, - }, - "gemini-2.5-pro": { - id: "gemini-2.5-pro", - name: "Gemini 2.5 Pro", - family: "gemini-pro", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-03-20", - last_updated: "2025-06-05", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, input: 128000, output: 64000 }, - }, - "gpt-4o": { - id: "gpt-4o", - name: "GPT-4o", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-09", - release_date: "2024-05-13", - last_updated: "2024-05-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, input: 64000, output: 4096 }, - }, - "gpt-5.4-mini": { - id: "gpt-5.4-mini", - name: "GPT-5.4 mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-17", - last_updated: "2026-03-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - }, - }, - moonshotai: { - id: "moonshotai", - env: ["MOONSHOT_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.moonshot.ai/v1", - name: "Moonshot AI", - doc: "https://platform.moonshot.ai/docs/api/chat", - models: { - "kimi-k2-0905-preview": { - id: "kimi-k2-0905-preview", - name: "Kimi K2 0905", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, - limit: { context: 262144, output: 262144 }, - }, - "kimi-k2.5": { - id: "kimi-k2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: false, - knowledge: "2025-01", - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3, cache_read: 0.1 }, - limit: { context: 262144, output: 262144 }, - }, - "kimi-k2-thinking": { - id: "kimi-k2-thinking", - name: "Kimi K2 Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-08", - release_date: "2025-11-06", - last_updated: "2025-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, - limit: { context: 262144, output: 262144 }, - }, - "kimi-k2-turbo-preview": { - id: "kimi-k2-turbo-preview", - name: "Kimi K2 Turbo", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.4, output: 10, cache_read: 0.6 }, - limit: { context: 262144, output: 262144 }, - }, - "kimi-k2-thinking-turbo": { - id: "kimi-k2-thinking-turbo", - name: "Kimi K2 Thinking Turbo", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-08", - release_date: "2025-11-06", - last_updated: "2025-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.15, output: 8, cache_read: 0.15 }, - limit: { context: 262144, output: 262144 }, - }, - "kimi-k2-0711-preview": { - id: "kimi-k2-0711-preview", - name: "Kimi K2 0711", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-07-14", - last_updated: "2025-07-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, - limit: { context: 131072, output: 16384 }, - }, - }, - }, - "google-vertex": { - id: "google-vertex", - env: ["GOOGLE_VERTEX_PROJECT", "GOOGLE_VERTEX_LOCATION", "GOOGLE_APPLICATION_CREDENTIALS"], - npm: "@ai-sdk/google-vertex", - name: "Vertex", - doc: "https://cloud.google.com/vertex-ai/generative-ai/docs/models", - models: { - "gemini-embedding-001": { - id: "gemini-embedding-001", - name: "Gemini Embedding 001", - family: "gemini", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2025-05", - release_date: "2025-05-20", - last_updated: "2025-05-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0 }, - limit: { context: 2048, output: 3072 }, - }, - "gemini-2.5-flash-lite-preview-09-2025": { - id: "gemini-2.5-flash-lite-preview-09-2025", - name: "Gemini 2.5 Flash Lite Preview 09-25", - family: "gemini-flash-lite", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-3.1-pro-preview-customtools": { - id: "gemini-3.1-pro-preview-customtools", - name: "Gemini 3.1 Pro Preview Custom Tools", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-02-19", - last_updated: "2026-02-19", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.5-pro-preview-06-05": { - id: "gemini-2.5-pro-preview-06-05", - name: "Gemini 2.5 Pro Preview 06-05", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-06-05", - last_updated: "2025-06-05", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.31 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.5-flash-preview-04-17": { - id: "gemini-2.5-flash-preview-04-17", - name: "Gemini 2.5 Flash Preview 04-17", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-04-17", - last_updated: "2025-04-17", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6, cache_read: 0.0375 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.5-flash-preview-09-2025": { - id: "gemini-2.5-flash-preview-09-2025", - name: "Gemini 2.5 Flash Preview 09-25", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5, cache_read: 0.075, cache_write: 0.383 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.5-pro-preview-05-06": { - id: "gemini-2.5-pro-preview-05-06", - name: "Gemini 2.5 Pro Preview 05-06", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-05-06", - last_updated: "2025-05-06", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.31 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.5-flash-preview-05-20": { - id: "gemini-2.5-flash-preview-05-20", - name: "Gemini 2.5 Flash Preview 05-20", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-05-20", - last_updated: "2025-05-20", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6, cache_read: 0.0375 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.5-flash": { - id: "gemini-2.5-flash", - name: "Gemini 2.5 Flash", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5, cache_read: 0.075, cache_write: 0.383 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-3-flash-preview": { - id: "gemini-3-flash-preview", - name: "Gemini 3 Flash Preview", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 0.5, - output: 3, - cache_read: 0.05, - context_over_200k: { input: 0.5, output: 3, cache_read: 0.05 }, - }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.5-flash-lite": { - id: "gemini-2.5-flash-lite", - name: "Gemini 2.5 Flash Lite", - family: "gemini-flash-lite", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-3.1-pro-preview": { - id: "gemini-3.1-pro-preview", - name: "Gemini 3.1 Pro Preview", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-02-19", - last_updated: "2026-02-19", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-flash-latest": { - id: "gemini-flash-latest", - name: "Gemini Flash Latest", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5, cache_read: 0.075, cache_write: 0.383 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.5-flash-lite-preview-06-17": { - id: "gemini-2.5-flash-lite-preview-06-17", - name: "Gemini 2.5 Flash Lite Preview 06-17", - family: "gemini-flash-lite", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, - limit: { context: 65536, output: 65536 }, - }, - "gemini-3-pro-preview": { - id: "gemini-3-pro-preview", - name: "Gemini 3 Pro Preview", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.0-flash-lite": { - id: "gemini-2.0-flash-lite", - name: "Gemini 2.0 Flash Lite", - family: "gemini-flash-lite", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-06", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.075, output: 0.3 }, - limit: { context: 1048576, output: 8192 }, - }, - "gemini-flash-lite-latest": { - id: "gemini-flash-lite-latest", - name: "Gemini Flash-Lite Latest", - family: "gemini-flash-lite", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.5-pro": { - id: "gemini-2.5-pro", - name: "Gemini 2.5 Pro", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-03-20", - last_updated: "2025-06-05", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.31 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.0-flash": { - id: "gemini-2.0-flash", - name: "Gemini 2.0 Flash", - family: "gemini-flash", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-06", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6, cache_read: 0.025 }, - limit: { context: 1048576, output: 8192 }, - }, - "zai-org/glm-5-maas": { - id: "zai-org/glm-5-maas", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3.2, cache_read: 0.1 }, - limit: { context: 202752, output: 131072 }, - provider: { - npm: "@ai-sdk/openai-compatible", - api: "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi", - }, - }, - "zai-org/glm-4.7-maas": { - id: "zai-org/glm-4.7-maas", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-01-06", - last_updated: "2026-01-06", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2 }, - limit: { context: 200000, output: 128000 }, - provider: { - npm: "@ai-sdk/openai-compatible", - api: "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi", - }, - }, - "deepseek-ai/deepseek-v3.1-maas": { - id: "deepseek-ai/deepseek-v3.1-maas", - name: "DeepSeek V3.1", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-28", - last_updated: "2025-08-28", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 1.7 }, - limit: { context: 163840, output: 32768 }, - provider: { - npm: "@ai-sdk/openai-compatible", - api: "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi", - }, - }, - "qwen/qwen3-235b-a22b-instruct-2507-maas": { - id: "qwen/qwen3-235b-a22b-instruct-2507-maas", - name: "Qwen3 235B A22B Instruct", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-13", - last_updated: "2025-08-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.22, output: 0.88 }, - limit: { context: 262144, output: 16384 }, - provider: { - npm: "@ai-sdk/openai-compatible", - api: "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi", - }, - }, - "meta/llama-4-maverick-17b-128e-instruct-maas": { - id: "meta/llama-4-maverick-17b-128e-instruct-maas", - name: "Llama 4 Maverick 17B 128E Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-04-29", - last_updated: "2025-04-29", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.35, output: 1.15 }, - limit: { context: 524288, output: 8192 }, - provider: { - npm: "@ai-sdk/openai-compatible", - api: "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi", - }, - }, - "meta/llama-3.3-70b-instruct-maas": { - id: "meta/llama-3.3-70b-instruct-maas", - name: "Llama 3.3 70B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-12", - release_date: "2025-04-29", - last_updated: "2025-04-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.72, output: 0.72 }, - limit: { context: 128000, output: 8192 }, - provider: { - npm: "@ai-sdk/openai-compatible", - api: "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi", - }, - }, - "openai/gpt-oss-20b-maas": { - id: "openai/gpt-oss-20b-maas", - name: "GPT OSS 20B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.25 }, - limit: { context: 131072, output: 32768 }, - }, - "openai/gpt-oss-120b-maas": { - id: "openai/gpt-oss-120b-maas", - name: "GPT OSS 120B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.09, output: 0.36 }, - limit: { context: 131072, output: 32768 }, - }, - }, - }, - "privatemode-ai": { - id: "privatemode-ai", - env: ["PRIVATEMODE_API_KEY", "PRIVATEMODE_ENDPOINT"], - npm: "@ai-sdk/openai-compatible", - api: "http://localhost:8080/v1", - name: "Privatemode AI", - doc: "https://docs.privatemode.ai/api/overview", - models: { - "gemma-3-27b": { - id: "gemma-3-27b", - name: "Gemma 3 27B", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-03-12", - last_updated: "2025-03-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 8192 }, - }, - "gpt-oss-120b": { - id: "gpt-oss-120b", - name: "gpt-oss-120b", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-08", - release_date: "2025-08-04", - last_updated: "2025-08-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 128000 }, - }, - "whisper-large-v3": { - id: "whisper-large-v3", - name: "Whisper large-v3", - family: "whisper", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - knowledge: "2023-09", - release_date: "2023-09-01", - last_updated: "2023-09-01", - modalities: { input: ["audio"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 0, output: 4096 }, - }, - "qwen3-embedding-4b": { - id: "qwen3-embedding-4b", - name: "Qwen3-Embedding 4B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - knowledge: "2025-06", - release_date: "2025-06-06", - last_updated: "2025-06-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 32000, output: 2560 }, - }, - "qwen3-coder-30b-a3b": { - id: "qwen3-coder-30b-a3b", - name: "Qwen3-Coder 30B-A3B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 32768 }, - }, - }, - }, - google: { - id: "google", - env: ["GOOGLE_GENERATIVE_AI_API_KEY", "GEMINI_API_KEY"], - npm: "@ai-sdk/google", - name: "Google", - doc: "https://ai.google.dev/gemini-api/docs/pricing", - models: { - "gemini-embedding-001": { - id: "gemini-embedding-001", - name: "Gemini Embedding 001", - family: "gemini", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2025-05", - release_date: "2025-05-20", - last_updated: "2025-05-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0 }, - limit: { context: 2048, output: 3072 }, - }, - "gemini-2.5-flash-lite-preview-09-2025": { - id: "gemini-2.5-flash-lite-preview-09-2025", - name: "Gemini 2.5 Flash Lite Preview 09-25", - family: "gemini-flash-lite", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-3.1-pro-preview-customtools": { - id: "gemini-3.1-pro-preview-customtools", - name: "Gemini 3.1 Pro Preview Custom Tools", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-02-19", - last_updated: "2026-02-19", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.5-pro-preview-06-05": { - id: "gemini-2.5-pro-preview-06-05", - name: "Gemini 2.5 Pro Preview 06-05", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-06-05", - last_updated: "2025-06-05", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.31 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.5-flash-preview-04-17": { - id: "gemini-2.5-flash-preview-04-17", - name: "Gemini 2.5 Flash Preview 04-17", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-04-17", - last_updated: "2025-04-17", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6, cache_read: 0.0375 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.5-flash-preview-09-2025": { - id: "gemini-2.5-flash-preview-09-2025", - name: "Gemini 2.5 Flash Preview 09-25", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5, cache_read: 0.075, input_audio: 1 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.5-pro-preview-05-06": { - id: "gemini-2.5-pro-preview-05-06", - name: "Gemini 2.5 Pro Preview 05-06", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-05-06", - last_updated: "2025-05-06", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.31 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.5-flash-preview-05-20": { - id: "gemini-2.5-flash-preview-05-20", - name: "Gemini 2.5 Flash Preview 05-20", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-05-20", - last_updated: "2025-05-20", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6, cache_read: 0.0375 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.5-flash": { - id: "gemini-2.5-flash", - name: "Gemini 2.5 Flash", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-03-20", - last_updated: "2025-06-05", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5, cache_read: 0.075, input_audio: 1 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-3.1-flash-image-preview": { - id: "gemini-3.1-flash-image-preview", - name: "Gemini 3.1 Flash Image (Preview)", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2025-01", - release_date: "2026-02-26", - last_updated: "2026-02-26", - modalities: { input: ["text", "image", "pdf"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 0.25, output: 60 }, - limit: { context: 131072, output: 32768 }, - }, - "gemini-3.1-flash-lite-preview": { - id: "gemini-3.1-flash-lite-preview", - name: "Gemini 3.1 Flash Lite Preview", - family: "gemini-flash-lite", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-03-03", - last_updated: "2026-03-03", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1.5, cache_read: 0.025, cache_write: 1 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-live-2.5-flash": { - id: "gemini-live-2.5-flash", - name: "Gemini Live 2.5 Flash", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-09-01", - last_updated: "2025-09-01", - modalities: { input: ["text", "image", "audio", "video"], output: ["text", "audio"] }, - open_weights: false, - cost: { input: 0.5, output: 2, input_audio: 3, output_audio: 12 }, - limit: { context: 128000, output: 8000 }, - }, - "gemini-3-flash-preview": { - id: "gemini-3-flash-preview", - name: "Gemini 3 Flash Preview", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 0.5, - output: 3, - cache_read: 0.05, - context_over_200k: { input: 0.5, output: 3, cache_read: 0.05 }, - }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-live-2.5-flash-preview-native-audio": { - id: "gemini-live-2.5-flash-preview-native-audio", - name: "Gemini Live 2.5 Flash Preview Native Audio", - family: "gemini-flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2025-01", - release_date: "2025-06-17", - last_updated: "2025-09-18", - modalities: { input: ["text", "audio", "video"], output: ["text", "audio"] }, - open_weights: false, - cost: { input: 0.5, output: 2, input_audio: 3, output_audio: 12 }, - limit: { context: 131072, output: 65536 }, - }, - "gemini-2.5-flash-lite": { - id: "gemini-2.5-flash-lite", - name: "Gemini 2.5 Flash Lite", - family: "gemini-flash-lite", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.5-flash-preview-tts": { - id: "gemini-2.5-flash-preview-tts", - name: "Gemini 2.5 Flash Preview TTS", - family: "gemini-flash", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2025-01", - release_date: "2025-05-01", - last_updated: "2025-05-01", - modalities: { input: ["text"], output: ["audio"] }, - open_weights: false, - cost: { input: 0.5, output: 10 }, - limit: { context: 8000, output: 16000 }, - }, - "gemini-3.1-pro-preview": { - id: "gemini-3.1-pro-preview", - name: "Gemini 3.1 Pro Preview", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-02-19", - last_updated: "2026-02-19", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-flash-latest": { - id: "gemini-flash-latest", - name: "Gemini Flash Latest", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5, cache_read: 0.075, input_audio: 1 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.5-flash-lite-preview-06-17": { - id: "gemini-2.5-flash-lite-preview-06-17", - name: "Gemini 2.5 Flash Lite Preview 06-17", - family: "gemini-flash-lite", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.025, input_audio: 0.3 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.5-flash-image": { - id: "gemini-2.5-flash-image", - name: "Gemini 2.5 Flash Image", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2025-06", - release_date: "2025-08-26", - last_updated: "2025-08-26", - modalities: { input: ["text", "image"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 0.3, output: 30, cache_read: 0.075 }, - limit: { context: 32768, output: 32768 }, - }, - "gemini-2.5-pro-preview-tts": { - id: "gemini-2.5-pro-preview-tts", - name: "Gemini 2.5 Pro Preview TTS", - family: "gemini-flash", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2025-01", - release_date: "2025-05-01", - last_updated: "2025-05-01", - modalities: { input: ["text"], output: ["audio"] }, - open_weights: false, - cost: { input: 1, output: 20 }, - limit: { context: 8000, output: 16000 }, - }, - "gemini-2.5-flash-image-preview": { - id: "gemini-2.5-flash-image-preview", - name: "Gemini 2.5 Flash Image (Preview)", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2025-06", - release_date: "2025-08-26", - last_updated: "2025-08-26", - modalities: { input: ["text", "image"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 0.3, output: 30, cache_read: 0.075 }, - limit: { context: 32768, output: 32768 }, - }, - "gemini-1.5-flash-8b": { - id: "gemini-1.5-flash-8b", - name: "Gemini 1.5 Flash-8B", - family: "gemini-flash", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-10-03", - last_updated: "2024-10-03", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.0375, output: 0.15, cache_read: 0.01 }, - limit: { context: 1000000, output: 8192 }, - }, - "gemini-3-pro-preview": { - id: "gemini-3-pro-preview", - name: "Gemini 3 Pro Preview", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, - limit: { context: 1000000, output: 64000 }, - }, - "gemini-2.0-flash-lite": { - id: "gemini-2.0-flash-lite", - name: "Gemini 2.0 Flash Lite", - family: "gemini-flash-lite", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-06", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.075, output: 0.3 }, - limit: { context: 1048576, output: 8192 }, - }, - "gemini-1.5-flash": { - id: "gemini-1.5-flash", - name: "Gemini 1.5 Flash", - family: "gemini-flash", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-05-14", - last_updated: "2024-05-14", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.075, output: 0.3, cache_read: 0.01875 }, - limit: { context: 1000000, output: 8192 }, - }, - "gemini-flash-lite-latest": { - id: "gemini-flash-lite-latest", - name: "Gemini Flash-Lite Latest", - family: "gemini-flash-lite", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.5-pro": { - id: "gemini-2.5-pro", - name: "Gemini 2.5 Pro", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-03-20", - last_updated: "2025-06-05", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.31 }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-2.0-flash": { - id: "gemini-2.0-flash", - name: "Gemini 2.0 Flash", - family: "gemini-flash", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-06", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, - limit: { context: 1048576, output: 8192 }, - }, - "gemini-1.5-pro": { - id: "gemini-1.5-pro", - name: "Gemini 1.5 Pro", - family: "gemini-pro", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-02-15", - last_updated: "2024-02-15", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 5, cache_read: 0.3125 }, - limit: { context: 1000000, output: 8192 }, - }, - }, - }, - vivgrid: { - id: "vivgrid", - env: ["VIVGRID_API_KEY"], - npm: "@ai-sdk/openai", - api: "https://api.vivgrid.com/v1", - name: "Vivgrid", - doc: "https://docs.vivgrid.com/models", - models: { - "glm-5": { - id: "glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3.2, cache_read: 0.2 }, - limit: { context: 202752, output: 131000 }, - provider: { npm: "@ai-sdk/openai-compatible" }, - }, - "gpt-5.1-codex-max": { - id: "gpt-5.1-codex-max", - name: "GPT-5.1 Codex Max", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "gpt-5.2-codex": { - id: "gpt-5.2-codex", - name: "GPT-5.2 Codex", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-01-14", - last_updated: "2026-01-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, output: 128000 }, - }, - "gemini-3.1-flash-lite-preview": { - id: "gemini-3.1-flash-lite-preview", - name: "Gemini 3.1 Flash Lite Preview", - family: "gemini-flash-lite", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-03-03", - last_updated: "2026-03-03", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1.5, cache_read: 0.025, cache_write: 1 }, - limit: { context: 1048576, output: 65536 }, - provider: { npm: "@ai-sdk/openai-compatible" }, - }, - "gemini-3.1-pro-preview": { - id: "gemini-3.1-pro-preview", - name: "Gemini 3.1 Pro Preview", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-02-19", - last_updated: "2026-02-19", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, - limit: { context: 1048576, output: 65536 }, - provider: { npm: "@ai-sdk/openai-compatible" }, - }, - "deepseek-v3.2": { - id: "deepseek-v3.2", - name: "DeepSeek-V3.2", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.28, output: 0.42 }, - limit: { context: 128000, output: 128000 }, - provider: { npm: "@ai-sdk/openai-compatible" }, - }, - "gpt-5.4": { - id: "gpt-5.4", - name: "GPT-5.4", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 15, cache_read: 0.25 }, - limit: { context: 400000, input: 272000, output: 128000 }, - provider: { npm: "@ai-sdk/openai-compatible" }, - }, - "gpt-5.1-codex": { - id: "gpt-5.1-codex", - name: "GPT-5.1 Codex", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "gpt-5-mini": { - id: "gpt-5-mini", - name: "GPT-5 Mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.03 }, - limit: { context: 272000, output: 128000 }, - provider: { npm: "@ai-sdk/openai-compatible" }, - }, - }, - }, - "moonshotai-cn": { - id: "moonshotai-cn", - env: ["MOONSHOT_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.moonshot.cn/v1", - name: "Moonshot AI (China)", - doc: "https://platform.moonshot.cn/docs/api/chat", - models: { - "kimi-k2-0711-preview": { - id: "kimi-k2-0711-preview", - name: "Kimi K2 0711", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-07-14", - last_updated: "2025-07-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, - limit: { context: 131072, output: 16384 }, - }, - "kimi-k2-thinking-turbo": { - id: "kimi-k2-thinking-turbo", - name: "Kimi K2 Thinking Turbo", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-08", - release_date: "2025-11-06", - last_updated: "2025-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.15, output: 8, cache_read: 0.15 }, - limit: { context: 262144, output: 262144 }, - }, - "kimi-k2-turbo-preview": { - id: "kimi-k2-turbo-preview", - name: "Kimi K2 Turbo", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.4, output: 10, cache_read: 0.6 }, - limit: { context: 262144, output: 262144 }, - }, - "kimi-k2-thinking": { - id: "kimi-k2-thinking", - name: "Kimi K2 Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-08", - release_date: "2025-11-06", - last_updated: "2025-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, - limit: { context: 262144, output: 262144 }, - }, - "kimi-k2.5": { - id: "kimi-k2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: false, - knowledge: "2025-01", - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3, cache_read: 0.1 }, - limit: { context: 262144, output: 262144 }, - }, - "kimi-k2-0905-preview": { - id: "kimi-k2-0905-preview", - name: "Kimi K2 0905", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, - limit: { context: 262144, output: 262144 }, - }, - }, - }, - "sap-ai-core": { - id: "sap-ai-core", - env: ["AICORE_SERVICE_KEY"], - npm: "@jerome-benoit/sap-ai-provider-v2", - name: "SAP AI Core", - doc: "https://help.sap.com/docs/sap-ai-core", - models: { - "anthropic--claude-4.5-opus": { - id: "anthropic--claude-4.5-opus", - name: "anthropic--claude-4.5-opus", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2025-11-24", - last_updated: "2025-11-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic--claude-4-sonnet": { - id: "anthropic--claude-4-sonnet", - name: "anthropic--claude-4-sonnet", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic--claude-4.5-sonnet": { - id: "anthropic--claude-4.5-sonnet", - name: "anthropic--claude-4.5-sonnet", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "gemini-2.5-flash": { - id: "gemini-2.5-flash", - name: "gemini-2.5-flash", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-03-25", - last_updated: "2025-06-05", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5, cache_read: 0.03, input_audio: 1 }, - limit: { context: 1048576, output: 65536 }, - }, - "anthropic--claude-3-sonnet": { - id: "anthropic--claude-3-sonnet", - name: "anthropic--claude-3-sonnet", - family: "claude-sonnet", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-08-31", - release_date: "2024-03-04", - last_updated: "2024-03-04", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 4096 }, - }, - "anthropic--claude-3.7-sonnet": { - id: "anthropic--claude-3.7-sonnet", - name: "anthropic--claude-3.7-sonnet", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10-31", - release_date: "2025-02-24", - last_updated: "2025-02-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - sonar: { - id: "sonar", - name: "sonar", - family: "sonar", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-09-01", - release_date: "2024-01-01", - last_updated: "2025-09-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 1 }, - limit: { context: 128000, output: 4096 }, - }, - "anthropic--claude-3.5-sonnet": { - id: "anthropic--claude-3.5-sonnet", - name: "anthropic--claude-3.5-sonnet", - family: "claude-sonnet", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04-30", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 8192 }, - }, - "sonar-deep-research": { - id: "sonar-deep-research", - name: "sonar-deep-research", - family: "sonar-deep-research", - attachment: false, - reasoning: true, - tool_call: false, - temperature: false, - knowledge: "2025-01", - release_date: "2025-02-01", - last_updated: "2025-09-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, reasoning: 3 }, - limit: { context: 128000, output: 32768 }, - }, - "anthropic--claude-4.6-sonnet": { - id: "anthropic--claude-4.6-sonnet", - name: "anthropic--claude-4.6-sonnet", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2026-02-17", - last_updated: "2026-03-13", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 1000000, output: 64000 }, - }, - "gemini-2.5-flash-lite": { - id: "gemini-2.5-flash-lite", - name: "gemini-2.5-flash-lite", - family: "gemini-flash-lite", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, - limit: { context: 1048576, output: 65536 }, - }, - "gpt-4.1": { - id: "gpt-4.1", - name: "gpt-4.1", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 1047576, output: 32768 }, - }, - "anthropic--claude-4.5-haiku": { - id: "anthropic--claude-4.5-haiku", - name: "anthropic--claude-4.5-haiku", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-02-28", - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 200000, output: 64000 }, - }, - "gpt-5": { - id: "gpt-5", - name: "gpt-5", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "gpt-4.1-mini": { - id: "gpt-4.1-mini", - name: "gpt-4.1-mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.6, cache_read: 0.1 }, - limit: { context: 1047576, output: 32768 }, - }, - "anthropic--claude-3-opus": { - id: "anthropic--claude-3-opus", - name: "anthropic--claude-3-opus", - family: "claude-opus", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-08-31", - release_date: "2024-02-29", - last_updated: "2024-02-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 4096 }, - }, - "sonar-pro": { - id: "sonar-pro", - name: "sonar-pro", - family: "sonar-pro", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-09-01", - release_date: "2024-01-01", - last_updated: "2025-09-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 200000, output: 8192 }, - }, - "gpt-5-mini": { - id: "gpt-5-mini", - name: "gpt-5-mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.025 }, - limit: { context: 400000, output: 128000 }, - }, - "anthropic--claude-3-haiku": { - id: "anthropic--claude-3-haiku", - name: "anthropic--claude-3-haiku", - family: "claude-haiku", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-08-31", - release_date: "2024-03-13", - last_updated: "2024-03-13", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1.25, cache_read: 0.03, cache_write: 0.3 }, - limit: { context: 200000, output: 4096 }, - }, - "anthropic--claude-4.6-opus": { - id: "anthropic--claude-4.6-opus", - name: "anthropic--claude-4.6-opus", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2026-02-05", - last_updated: "2026-03-13", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 1000000, output: 128000 }, - }, - "gemini-2.5-pro": { - id: "gemini-2.5-pro", - name: "gemini-2.5-pro", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-03-25", - last_updated: "2025-06-05", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 1048576, output: 65536 }, - }, - "gpt-5-nano": { - id: "gpt-5-nano", - name: "gpt-5-nano", - family: "gpt-nano", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.4, cache_read: 0.005 }, - limit: { context: 400000, output: 128000 }, - }, - "anthropic--claude-4-opus": { - id: "anthropic--claude-4-opus", - name: "anthropic--claude-4-opus", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - }, - }, - zhipuai: { - id: "zhipuai", - env: ["ZHIPU_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://open.bigmodel.cn/api/paas/v4", - name: "Zhipu AI", - doc: "https://docs.z.ai/guides/overview/pricing", - models: { - "glm-5": { - id: "glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3.2, cache_read: 0.2, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "glm-4.6v": { - id: "glm-4.6v", - name: "GLM-4.6V", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-08", - last_updated: "2025-12-08", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.9 }, - limit: { context: 128000, output: 32768 }, - }, - "glm-4.5v": { - id: "glm-4.5v", - name: "GLM-4.5V", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-08-11", - last_updated: "2025-08-11", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 1.8 }, - limit: { context: 64000, output: 16384 }, - }, - "glm-4.7": { - id: "glm-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2, cache_read: 0.11, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "glm-4.6": { - id: "glm-4.6", - name: "GLM-4.6", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2, cache_read: 0.11, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "glm-4.7-flash": { - id: "glm-4.7-flash", - name: "GLM-4.7-Flash", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 200000, output: 131072 }, - }, - "glm-4.5-flash": { - id: "glm-4.5-flash", - name: "GLM-4.5-Flash", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 131072, output: 98304 }, - }, - "glm-4.5": { - id: "glm-4.5", - name: "GLM-4.5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2, cache_read: 0.11, cache_write: 0 }, - limit: { context: 131072, output: 98304 }, - }, - "glm-4.5-air": { - id: "glm-4.5-air", - name: "GLM-4.5-Air", - family: "glm-air", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 1.1, cache_read: 0.03, cache_write: 0 }, - limit: { context: 131072, output: 98304 }, - }, - "glm-4.7-flashx": { - id: "glm-4.7-flashx", - name: "GLM-4.7-FlashX", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.4, cache_read: 0.01, cache_write: 0 }, - limit: { context: 200000, output: 131072 }, - }, - }, - }, - venice: { - id: "venice", - env: ["VENICE_API_KEY"], - npm: "venice-ai-sdk-provider", - name: "Venice AI", - doc: "https://docs.venice.ai", - models: { - "qwen3-235b-a22b-instruct-2507": { - id: "qwen3-235b-a22b-instruct-2507", - name: "Qwen 3 235B A22B Instruct 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-04-29", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.75 }, - limit: { context: 128000, output: 16384 }, - }, - "google-gemma-3-27b-it": { - id: "google-gemma-3-27b-it", - name: "Google Gemma 3 27B Instruct", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-11-04", - last_updated: "2026-03-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.12, output: 0.2 }, - limit: { context: 198000, output: 16384 }, - }, - "openai-gpt-4o-2024-11-20": { - id: "openai-gpt-4o-2024-11-20", - name: "GPT-4o", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-28", - last_updated: "2026-03-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3.125, output: 12.5 }, - limit: { context: 128000, output: 16384 }, - }, - "claude-opus-45": { - id: "claude-opus-45", - name: "Claude Opus 4.5", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-03", - release_date: "2025-12-06", - last_updated: "2026-01-28", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 6, output: 30, cache_read: 0.6, cache_write: 7.5 }, - limit: { context: 198000, output: 49500 }, - }, - "qwen3-coder-480b-a35b-instruct": { - id: "qwen3-coder-480b-a35b-instruct", - name: "Qwen 3 Coder 480b", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-04-29", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.75, output: 3 }, - limit: { context: 256000, output: 65536 }, - }, - "claude-opus-4-6": { - id: "claude-opus-4-6", - name: "Claude Opus 4.6", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-05", - last_updated: "2026-03-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 6, output: 30, cache_read: 0.6, cache_write: 7.5 }, - limit: { context: 1000000, output: 128000 }, - }, - "grok-code-fast-1": { - id: "grok-code-fast-1", - name: "Grok Code Fast 1", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-01", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1.87, cache_read: 0.03 }, - limit: { context: 256000, output: 10000 }, - }, - "zai-org-glm-5": { - id: "zai-org-glm-5", - name: "GLM 5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3.2, cache_read: 0.2 }, - limit: { context: 198000, output: 32000 }, - }, - "zai-org-glm-4.7": { - id: "zai-org-glm-4.7", - name: "GLM 4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-24", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.65, cache_read: 0.11 }, - limit: { context: 198000, output: 16384 }, - }, - "claude-sonnet-4-6": { - id: "claude-sonnet-4-6", - name: "Claude Sonnet 4.6", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-17", - last_updated: "2026-03-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3.6, output: 18, cache_read: 0.36, cache_write: 4.5 }, - limit: { context: 1000000, output: 64000 }, - }, - "zai-org-glm-4.6": { - id: "zai-org-glm-4.6", - name: "GLM 4.6", - family: "glm", - attachment: false, - reasoning: false, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2024-04-01", - last_updated: "2026-03-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.85, output: 2.75, cache_read: 0.3 }, - limit: { context: 198000, output: 16384 }, - }, - "openai-gpt-53-codex": { - id: "openai-gpt-53-codex", - name: "GPT-5.3 Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-24", - last_updated: "2026-03-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.19, output: 17.5, cache_read: 0.219 }, - limit: { context: 400000, output: 128000 }, - }, - "kimi-k2-5": { - id: "kimi-k2-5", - name: "Kimi K2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2024-04", - release_date: "2026-01-27", - last_updated: "2026-03-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.56, output: 3.5, cache_read: 0.11 }, - limit: { context: 256000, output: 65536 }, - }, - "mistral-small-3-2-24b-instruct": { - id: "mistral-small-3-2-24b-instruct", - name: "Mistral Small 3.2 24B Instruct", - family: "mistral-small", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01-15", - last_updated: "2026-03-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.09375, output: 0.25 }, - limit: { context: 256000, output: 16384 }, - }, - "mistral-31-24b": { - id: "mistral-31-24b", - name: "Venice Medium", - family: "mistral", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-10", - release_date: "2025-03-18", - last_updated: "2026-03-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 2 }, - limit: { context: 128000, output: 4096 }, - }, - "grok-4-20-multi-agent-beta": { - id: "grok-4-20-multi-agent-beta", - name: "Grok 4.20 Multi-Agent Beta", - family: "grok-beta", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2026-03-12", - last_updated: "2026-03-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { - input: 2.5, - output: 7.5, - cache_read: 0.25, - context_over_200k: { input: 5, output: 15, cache_read: 0.25 }, - }, - limit: { context: 2000000, output: 128000 }, - }, - "openai-gpt-54-pro": { - id: "openai-gpt-54-pro", - name: "GPT-5.4 Pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-03-05", - last_updated: "2026-03-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 37.5, output: 225, context_over_200k: { input: 75, output: 337.5 } }, - limit: { context: 1000000, output: 128000 }, - }, - "qwen3-4b": { - id: "qwen3-4b", - name: "Venice Small", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-04-29", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.15 }, - limit: { context: 32000, output: 4096 }, - }, - "gemini-3-flash-preview": { - id: "gemini-3-flash-preview", - name: "Gemini 3 Flash Preview", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-12-19", - last_updated: "2026-03-12", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.7, output: 3.75, cache_read: 0.07 }, - limit: { context: 256000, output: 65536 }, - }, - "grok-4-20-beta": { - id: "grok-4-20-beta", - name: "Grok 4.20 Beta", - family: "grok-beta", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-03-12", - last_updated: "2026-03-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { - input: 2.5, - output: 7.5, - cache_read: 0.25, - context_over_200k: { input: 5, output: 15, cache_read: 0.25 }, - }, - limit: { context: 2000000, output: 128000 }, - }, - "olafangensan-glm-4.7-flash-heretic": { - id: "olafangensan-glm-4.7-flash-heretic", - name: "GLM 4.7 Flash Heretic", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-04", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.14, output: 0.8 }, - limit: { context: 200000, output: 24000 }, - }, - "minimax-m25": { - id: "minimax-m25", - name: "MiniMax M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-03-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.34, output: 1.19, cache_read: 0.04 }, - limit: { context: 198000, output: 32768 }, - }, - "zai-org-glm-4.7-flash": { - id: "zai-org-glm-4.7-flash", - name: "GLM 4.7 Flash", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01-29", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.125, output: 0.5 }, - limit: { context: 128000, output: 16384 }, - }, - "qwen3-coder-480b-a35b-instruct-turbo": { - id: "qwen3-coder-480b-a35b-instruct-turbo", - name: "Qwen 3 Coder 480B Turbo", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01-27", - last_updated: "2026-02-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.35, output: 1.5, cache_read: 0.04 }, - limit: { context: 256000, output: 65536 }, - }, - "openai-gpt-oss-120b": { - id: "openai-gpt-oss-120b", - name: "OpenAI GPT OSS 120B", - family: "gpt-oss", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-11-06", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.3 }, - limit: { context: 128000, output: 16384 }, - }, - "grok-41-fast": { - id: "grok-41-fast", - name: "Grok 4.1 Fast", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-12-01", - last_updated: "2026-03-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 0.625, cache_read: 0.0625 }, - limit: { context: 1000000, output: 30000 }, - }, - "openai-gpt-52": { - id: "openai-gpt-52", - name: "GPT-5.2", - family: "gpt", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2025-12-13", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.19, output: 17.5, cache_read: 0.219 }, - limit: { context: 256000, output: 65536 }, - }, - "openai-gpt-54": { - id: "openai-gpt-54", - name: "GPT-5.4", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-03-05", - last_updated: "2026-03-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3.13, output: 18.8, cache_read: 0.313 }, - limit: { context: 1000000, output: 131072 }, - }, - "deepseek-v3.2": { - id: "deepseek-v3.2", - name: "DeepSeek V3.2", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2025-10", - release_date: "2025-12-04", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.33, output: 0.48, cache_read: 0.16 }, - limit: { context: 160000, output: 32768 }, - }, - "gemini-3-1-pro-preview": { - id: "gemini-3-1-pro-preview", - name: "Gemini 3.1 Pro Preview", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-19", - last_updated: "2026-03-12", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - cost: { - input: 2.5, - output: 15, - cache_read: 0.5, - cache_write: 0.5, - context_over_200k: { input: 5, output: 22.5, cache_read: 0.5 }, - }, - limit: { context: 1000000, output: 32768 }, - }, - "openai-gpt-4o-mini-2024-07-18": { - id: "openai-gpt-4o-mini-2024-07-18", - name: "GPT-4o Mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-28", - last_updated: "2026-03-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1875, output: 0.75, cache_read: 0.09375 }, - limit: { context: 128000, output: 16384 }, - }, - "llama-3.3-70b": { - id: "llama-3.3-70b", - name: "Llama 3.3 70B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2025-04-06", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.7, output: 2.8 }, - limit: { context: 128000, output: 4096 }, - }, - "qwen3-next-80b": { - id: "qwen3-next-80b", - name: "Qwen 3 Next 80b", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-04-29", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.35, output: 1.9 }, - limit: { context: 256000, output: 16384 }, - }, - "hermes-3-llama-3.1-405b": { - id: "hermes-3-llama-3.1-405b", - name: "Hermes 3 Llama 3.1 405b", - family: "hermes", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-04", - release_date: "2025-09-25", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.1, output: 3 }, - limit: { context: 128000, output: 16384 }, - }, - "kimi-k2-thinking": { - id: "kimi-k2-thinking", - name: "Kimi K2 Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-12-10", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.75, output: 3.2, cache_read: 0.375 }, - limit: { context: 256000, output: 65536 }, - }, - "qwen3-5-9b": { - id: "qwen3-5-9b", - name: "Qwen 3.5 9B", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-03-05", - last_updated: "2026-03-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.15 }, - limit: { context: 256000, output: 65536 }, - }, - "minimax-m21": { - id: "minimax-m21", - name: "MiniMax M2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-01", - last_updated: "2026-03-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.35, output: 1.5, cache_read: 0.04 }, - limit: { context: 198000, output: 32768 }, - }, - "qwen3-5-35b-a3b": { - id: "qwen3-5-35b-a3b", - name: "Qwen 3.5 35B A3B", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-25", - last_updated: "2026-03-09", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3125, output: 1.25, cache_read: 0.15625 }, - limit: { context: 256000, output: 65536 }, - }, - "qwen3-235b-a22b-thinking-2507": { - id: "qwen3-235b-a22b-thinking-2507", - name: "Qwen 3 235B A22B Thinking 2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-04-29", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.45, output: 3.5 }, - limit: { context: 128000, output: 16384 }, - }, - "gemini-3-pro-preview": { - id: "gemini-3-pro-preview", - name: "Gemini 3 Pro Preview", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-12-02", - last_updated: "2026-03-12", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 15, cache_read: 0.625 }, - limit: { context: 198000, output: 32768 }, - }, - "llama-3.2-3b": { - id: "llama-3.2-3b", - name: "Llama 3.2 3B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-10-03", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 128000, output: 4096 }, - }, - "venice-uncensored": { - id: "venice-uncensored", - name: "Venice Uncensored 1.1", - family: "venice", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - knowledge: "2023-10", - release_date: "2025-03-18", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.9 }, - limit: { context: 32000, output: 8192 }, - }, - "nvidia-nemotron-3-nano-30b-a3b": { - id: "nvidia-nemotron-3-nano-30b-a3b", - name: "NVIDIA Nemotron 3 Nano 30B", - family: "nemotron", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01-27", - last_updated: "2026-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.075, output: 0.3 }, - limit: { context: 128000, output: 16384 }, - }, - "openai-gpt-52-codex": { - id: "openai-gpt-52-codex", - name: "GPT-5.2 Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-08", - release_date: "2025-01-15", - last_updated: "2026-03-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.19, output: 17.5, cache_read: 0.219 }, - limit: { context: 256000, output: 65536 }, - }, - "minimax-m27": { - id: "minimax-m27", - name: "MiniMax M2.7", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.375, output: 1.5, cache_read: 0.075 }, - limit: { context: 198000, output: 32768 }, - }, - "venice-uncensored-role-play": { - id: "venice-uncensored-role-play", - name: "Venice Role Play Uncensored", - family: "venice", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-20", - last_updated: "2026-03-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 2 }, - limit: { context: 128000, output: 4096 }, - }, - "qwen3-vl-235b-a22b": { - id: "qwen3-vl-235b-a22b", - name: "Qwen3 VL 235B", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01-16", - last_updated: "2026-03-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.25, output: 1.5 }, - limit: { context: 256000, output: 16384 }, - }, - "claude-sonnet-45": { - id: "claude-sonnet-45", - name: "Claude Sonnet 4.5", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - knowledge: "2025-09", - release_date: "2025-01-15", - last_updated: "2026-01-28", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3.75, output: 18.75, cache_read: 0.375, cache_write: 4.69 }, - limit: { context: 198000, output: 49500 }, - }, - }, - }, - nova: { - id: "nova", - env: ["NOVA_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.nova.amazon.com/v1", - name: "Nova", - doc: "https://nova.amazon.com/dev/documentation", - models: { - "nova-2-lite-v1": { - id: "nova-2-lite-v1", - name: "Nova 2 Lite", - family: "nova-lite", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text", "image", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, reasoning: 0 }, - limit: { context: 1000000, output: 64000 }, - }, - "nova-2-pro-v1": { - id: "nova-2-pro-v1", - name: "Nova 2 Pro", - family: "nova-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-12-03", - last_updated: "2026-01-03", - modalities: { input: ["text", "image", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, reasoning: 0 }, - limit: { context: 1000000, output: 64000 }, - }, - }, - }, - "zai-coding-plan": { - id: "zai-coding-plan", - env: ["ZHIPU_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.z.ai/api/coding/paas/v4", - name: "Z.AI Coding Plan", - doc: "https://docs.z.ai/devpack/overview", - models: { - "glm-5": { - id: "glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "glm-4.7-flashx": { - id: "glm-4.7-flashx", - name: "GLM-4.7-FlashX", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.4, cache_read: 0.01, cache_write: 0 }, - limit: { context: 200000, output: 131072 }, - }, - "glm-4.5-air": { - id: "glm-4.5-air", - name: "GLM-4.5-Air", - family: "glm-air", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 131072, output: 98304 }, - }, - "glm-4.5": { - id: "glm-4.5", - name: "GLM-4.5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 131072, output: 98304 }, - }, - "glm-4.5-flash": { - id: "glm-4.5-flash", - name: "GLM-4.5-Flash", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 131072, output: 98304 }, - }, - "glm-4.7-flash": { - id: "glm-4.7-flash", - name: "GLM-4.7-Flash", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 200000, output: 131072 }, - }, - "glm-4.6": { - id: "glm-4.6", - name: "GLM-4.6", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "glm-4.7": { - id: "glm-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "glm-5-turbo": { - id: "glm-5-turbo", - name: "GLM-5-Turbo", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-03-16", - last_updated: "2026-03-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 200000, output: 131072 }, - }, - "glm-4.5v": { - id: "glm-4.5v", - name: "GLM-4.5V", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-08-11", - last_updated: "2025-08-11", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 64000, output: 16384 }, - }, - "glm-4.6v": { - id: "glm-4.6v", - name: "GLM-4.6V", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-08", - last_updated: "2025-12-08", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 32768 }, - }, - }, - }, - "opencode-go": { - id: "opencode-go", - env: ["OPENCODE_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://opencode.ai/zen/go/v1", - name: "OpenCode Go", - doc: "https://opencode.ai/docs/zen", - models: { - "glm-5": { - id: "glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3.2, cache_read: 0.2 }, - limit: { context: 204800, output: 131072 }, - }, - "minimax-m2.7": { - id: "minimax-m2.7", - name: "MiniMax M2.7", - family: "minimax-m2.7", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.06 }, - limit: { context: 204800, output: 131072 }, - provider: { npm: "@ai-sdk/anthropic" }, - }, - "kimi-k2.5": { - id: "kimi-k2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-10", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3, cache_read: 0.1 }, - limit: { context: 262144, output: 65536 }, - }, - "minimax-m2.5": { - id: "minimax-m2.5", - name: "MiniMax M2.5", - family: "minimax-m2.5", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.03 }, - limit: { context: 204800, output: 131072 }, - provider: { npm: "@ai-sdk/anthropic" }, - }, - }, - }, - drun: { - id: "drun", - env: ["DRUN_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://chat.d.run/v1", - name: "D.Run (China)", - doc: "https://www.d.run", - models: { - "public/deepseek-v3": { - id: "public/deepseek-v3", - name: "DeepSeek V3", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2024-12-26", - last_updated: "2024-12-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.28, output: 1.1 }, - limit: { context: 131072, output: 8192 }, - }, - "public/deepseek-r1": { - id: "public/deepseek-r1", - name: "DeepSeek R1", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-12", - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.2 }, - limit: { context: 131072, output: 32000 }, - }, - "public/minimax-m25": { - id: "public/minimax-m25", - name: "MiniMax M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_details" }, - temperature: true, - release_date: "2025-03-01", - last_updated: "2025-03-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.29, output: 1.16 }, - limit: { context: 204800, output: 131072 }, - }, - }, - }, - firmware: { - id: "firmware", - env: ["FIRMWARE_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://app.frogbot.ai/api/v1", - name: "Firmware", - doc: "https://docs.frogbot.ai", - models: { - "gpt-5-4": { - id: "gpt-5-4", - name: "GPT-5.4", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 15, cache_read: 0.25 }, - limit: { context: 272000, output: 128000 }, - }, - "glm-5": { - id: "glm-5", - name: "GLM-5", - family: "glm", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-01-20", - last_updated: "2025-02-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 3.2, cache_read: 0.2 }, - limit: { context: 198000, output: 8192 }, - }, - "claude-opus-4-6": { - id: "claude-opus-4-6", - name: "Claude Opus 4.6", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-05-31", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 128000 }, - }, - "grok-code-fast-1": { - id: "grok-code-fast-1", - name: "Grok 4.1 Fast (Reasoning)", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2025-08-28", - last_updated: "2025-08-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.5, cache_read: 0.02 }, - limit: { context: 256000, output: 128000 }, - }, - "grok-4-1-fast-reasoning": { - id: "grok-4-1-fast-reasoning", - name: "Grok 4.1 Fast (Reasoning)", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-11", - release_date: "2025-11-25", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 128000 }, - }, - "claude-sonnet-4-6": { - id: "claude-sonnet-4-6", - name: "Claude Sonnet 4.6", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2026-02-17", - release_date: "2026-02-17", - last_updated: "2026-02-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "gemini-2.5-flash": { - id: "gemini-2.5-flash", - name: "Gemini 2.5 Flash", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-07-17", - last_updated: "2025-07-17", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5, cache_read: 0.075 }, - limit: { context: 1048576, output: 65536 }, - }, - "grok-4-1-fast-non-reasoning": { - id: "grok-4-1-fast-non-reasoning", - name: "Grok 4.1 Fast (Non-Reasoning)", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-11", - release_date: "2025-11-25", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 128000 }, - }, - "deepseek-v3-2": { - id: "deepseek-v3-2", - name: "DeepSeek v3.2", - family: "deepseek", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2024-12-26", - last_updated: "2025-09-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.58, output: 1.68, cache_read: 0.28 }, - limit: { context: 128000, output: 8192 }, - }, - "gemini-3-flash-preview": { - id: "gemini-3-flash-preview", - name: "Gemini 3 Flash Preview", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 3, cache_read: 0.05 }, - limit: { context: 1048576, output: 65536 }, - }, - "gpt-oss-120b": { - id: "gpt-oss-120b", - name: "GPT OSS 120B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "1970-01-01", - last_updated: "1970-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 131072, output: 32768 }, - }, - "kimi-k2.5": { - id: "kimi-k2.5", - name: "Kimi-K2.5", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "1970-01-01", - last_updated: "1970-01-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 3, cache_read: 0.1 }, - limit: { context: 256000, output: 128000 }, - }, - "gemini-3-1-pro-preview": { - id: "gemini-3-1-pro-preview", - name: "Gemini 3.1 Pro Preview", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2026-01", - release_date: "2026-02-18", - last_updated: "2026-02-18", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2 }, - limit: { context: 1000000, output: 64000 }, - }, - "minimax-m2-5": { - id: "minimax-m2-5", - name: "MiniMax-M2.5", - family: "minimax", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-09", - release_date: "2025-01-15", - last_updated: "2025-02-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2, cache_read: 0.03 }, - limit: { context: 192000, output: 8192 }, - }, - "claude-haiku-4-5": { - id: "claude-haiku-4-5", - name: "Claude Haiku 4.5", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-02-28", - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 200000, output: 64000 }, - }, - "claude-opus-4-5": { - id: "claude-opus-4-5", - name: "Claude Opus 4.5", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-24", - last_updated: "2025-11-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 64000 }, - }, - "gemini-3-pro-preview": { - id: "gemini-3-pro-preview", - name: "Gemini 3 Pro Preview", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2 }, - limit: { context: 1000000, output: 64000 }, - }, - "gpt-5-3-codex": { - id: "gpt-5-3-codex", - name: "GPT-5.3 Codex", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2026-01-31", - release_date: "2026-02-15", - last_updated: "2026-02-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, output: 128000 }, - }, - "claude-sonnet-4-5": { - id: "claude-sonnet-4-5", - name: "Claude Sonnet 4.5", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "gpt-5-mini": { - id: "gpt-5-mini", - name: "GPT-5 Mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.03 }, - limit: { context: 400000, output: 128000 }, - }, - "gpt-oss-20b": { - id: "gpt-oss-20b", - name: "GPT OSS 20B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "1970-01-01", - last_updated: "1970-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.2 }, - limit: { context: 131072, output: 32768 }, - }, - "gemini-2.5-pro": { - id: "gemini-2.5-pro", - name: "Gemini 2.5 Pro", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-03-20", - last_updated: "2025-06-05", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.31 }, - limit: { context: 1048576, output: 65536 }, - }, - "gpt-5-nano": { - id: "gpt-5-nano", - name: "GPT-5 Nano", - family: "gpt-nano", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.4, cache_read: 0.01 }, - limit: { context: 400000, output: 128000 }, - }, - "gpt-4o": { - id: "gpt-4o", - name: "GPT-4o", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-09", - release_date: "2024-05-13", - last_updated: "2024-08-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10, cache_read: 1.25 }, - limit: { context: 128000, output: 16384 }, - }, - }, - }, - ovhcloud: { - id: "ovhcloud", - env: ["OVHCLOUD_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://oai.endpoints.kepler.ai.cloud.ovh.net/v1", - name: "OVHcloud AI Endpoints", - doc: "https://www.ovhcloud.com/en/public-cloud/ai-endpoints/catalog//", - models: { - "meta-llama-3_3-70b-instruct": { - id: "meta-llama-3_3-70b-instruct", - name: "Meta-Llama-3_3-70B-Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-01", - last_updated: "2025-04-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.74, output: 0.74 }, - limit: { context: 131072, output: 131072 }, - }, - "mistral-7b-instruct-v0.3": { - id: "mistral-7b-instruct-v0.3", - name: "Mistral-7B-Instruct-v0.3", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-01", - last_updated: "2025-04-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.11, output: 0.11 }, - limit: { context: 65536, output: 65536 }, - }, - "mistral-small-3.2-24b-instruct-2506": { - id: "mistral-small-3.2-24b-instruct-2506", - name: "Mistral-Small-3.2-24B-Instruct-2506", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-16", - last_updated: "2025-07-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.31 }, - limit: { context: 131072, output: 131072 }, - }, - "qwen3-32b": { - id: "qwen3-32b", - name: "Qwen3-32B", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-16", - last_updated: "2025-07-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.09, output: 0.25 }, - limit: { context: 32768, output: 32768 }, - }, - "qwen2.5-coder-32b-instruct": { - id: "qwen2.5-coder-32b-instruct", - name: "Qwen2.5-Coder-32B-Instruct", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-03-24", - last_updated: "2025-03-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.96, output: 0.96 }, - limit: { context: 32768, output: 32768 }, - }, - "gpt-oss-120b": { - id: "gpt-oss-120b", - name: "gpt-oss-120b", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-08-28", - last_updated: "2025-08-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.09, output: 0.47 }, - limit: { context: 131072, output: 131072 }, - }, - "deepseek-r1-distill-llama-70b": { - id: "deepseek-r1-distill-llama-70b", - name: "DeepSeek-R1-Distill-Llama-70B", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-01-30", - last_updated: "2025-01-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.74, output: 0.74 }, - limit: { context: 131072, output: 131072 }, - }, - "qwen2.5-vl-72b-instruct": { - id: "qwen2.5-vl-72b-instruct", - name: "Qwen2.5-VL-72B-Instruct", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-03-31", - last_updated: "2025-03-31", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 1.01, output: 1.01 }, - limit: { context: 32768, output: 32768 }, - }, - "qwen3-coder-30b-a3b-instruct": { - id: "qwen3-coder-30b-a3b-instruct", - name: "Qwen3-Coder-30B-A3B-Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-28", - last_updated: "2025-10-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.26 }, - limit: { context: 262144, output: 262144 }, - }, - "llama-3.1-8b-instruct": { - id: "llama-3.1-8b-instruct", - name: "Llama-3.1-8B-Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-06-11", - last_updated: "2025-06-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.11, output: 0.11 }, - limit: { context: 131072, output: 131072 }, - }, - "mistral-nemo-instruct-2407": { - id: "mistral-nemo-instruct-2407", - name: "Mistral-Nemo-Instruct-2407", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-11-20", - last_updated: "2024-11-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.14, output: 0.14 }, - limit: { context: 65536, output: 65536 }, - }, - "gpt-oss-20b": { - id: "gpt-oss-20b", - name: "gpt-oss-20b", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-08-28", - last_updated: "2025-08-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.18 }, - limit: { context: 131072, output: 131072 }, - }, - "mixtral-8x7b-instruct-v0.1": { - id: "mixtral-8x7b-instruct-v0.1", - name: "Mixtral-8x7B-Instruct-v0.1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-04-01", - last_updated: "2025-04-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.7, output: 0.7 }, - limit: { context: 32768, output: 32768 }, - }, - }, - }, - stackit: { - id: "stackit", - env: ["STACKIT_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.openai-compat.model-serving.eu01.onstackit.cloud/v1", - name: "STACKIT", - doc: "https://docs.stackit.cloud/products/data-and-ai/ai-model-serving/basics/available-shared-models", - models: { - "intfloat/e5-mistral-7b-instruct": { - id: "intfloat/e5-mistral-7b-instruct", - name: "E5 Mistral 7B", - family: "mistral", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: false, - release_date: "2023-12-11", - last_updated: "2023-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0.02 }, - limit: { context: 4096, output: 4096 }, - }, - "neuralmagic/Meta-Llama-3.1-8B-Instruct-FP8": { - id: "neuralmagic/Meta-Llama-3.1-8B-Instruct-FP8", - name: "Llama 3.1 8B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.16, output: 0.27 }, - limit: { context: 128000, output: 8192 }, - }, - "neuralmagic/Mistral-Nemo-Instruct-2407-FP8": { - id: "neuralmagic/Mistral-Nemo-Instruct-2407-FP8", - name: "Mistral Nemo", - family: "mistral", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2024-07-01", - last_updated: "2024-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.49, output: 0.71 }, - limit: { context: 128000, output: 8192 }, - }, - "google/gemma-3-27b-it": { - id: "google/gemma-3-27b-it", - name: "Gemma 3 27B", - family: "gemma", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-05-17", - last_updated: "2025-05-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.49, output: 0.71 }, - limit: { context: 37000, output: 8192 }, - }, - "Qwen/Qwen3-VL-Embedding-8B": { - id: "Qwen/Qwen3-VL-Embedding-8B", - name: "Qwen3-VL Embedding 8B", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: false, - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.09, output: 0.09 }, - limit: { context: 32000, output: 4096 }, - }, - "Qwen/Qwen3-VL-235B-A22B-Instruct-FP8": { - id: "Qwen/Qwen3-VL-235B-A22B-Instruct-FP8", - name: "Qwen3-VL 235B", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2024-11-01", - last_updated: "2024-11-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 1.64, output: 1.91 }, - limit: { context: 218000, output: 8192 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "GPT-OSS 120B", - family: "gpt", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.49, output: 0.71 }, - limit: { context: 131000, output: 8192 }, - }, - "cortecs/Llama-3.3-70B-Instruct-FP8-Dynamic": { - id: "cortecs/Llama-3.3-70B-Instruct-FP8-Dynamic", - name: "Llama 3.3 70B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2024-12-05", - last_updated: "2024-12-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.49, output: 0.71 }, - limit: { context: 128000, output: 8192 }, - }, - }, - }, - "cloudferro-sherlock": { - id: "cloudferro-sherlock", - env: ["CLOUDFERRO_SHERLOCK_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api-sherlock.cloudferro.com/openai/v1/", - name: "CloudFerro Sherlock", - doc: "https://docs.sherlock.cloudferro.com/", - models: { - "MiniMaxAI/MiniMax-M2.5": { - id: "MiniMaxAI/MiniMax-M2.5", - name: "MiniMax-M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2026-01", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 196000, output: 196000 }, - }, - "speakleash/Bielik-11B-v2.6-Instruct": { - id: "speakleash/Bielik-11B-v2.6-Instruct", - name: "Bielik 11B v2.6 Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-03", - release_date: "2025-03-13", - last_updated: "2025-03-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.67, output: 0.67 }, - limit: { context: 32000, output: 32000 }, - }, - "speakleash/Bielik-11B-v3.0-Instruct": { - id: "speakleash/Bielik-11B-v3.0-Instruct", - name: "Bielik 11B v3.0 Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-03", - release_date: "2025-03-13", - last_updated: "2025-03-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.67, output: 0.67 }, - limit: { context: 32000, output: 32000 }, - }, - "meta-llama/Llama-3.3-70B-Instruct": { - id: "meta-llama/Llama-3.3-70B-Instruct", - name: "Llama 3.3 70B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10-09", - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.92, output: 2.92 }, - limit: { context: 70000, output: 70000 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "OpenAI GPT OSS 120B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-28", - last_updated: "2025-08-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.92, output: 2.92 }, - limit: { context: 131000, output: 131000 }, - }, - }, - }, - requesty: { - id: "requesty", - env: ["REQUESTY_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://router.requesty.ai/v1", - name: "Requesty", - doc: "https://requesty.ai/solution/llm-routing/models", - models: { - "google/gemini-2.5-flash": { - id: "google/gemini-2.5-flash", - name: "Gemini 2.5 Flash", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5, cache_read: 0.075, cache_write: 0.55 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-3-flash-preview": { - id: "google/gemini-3-flash-preview", - name: "Gemini 3 Flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 3, cache_read: 0.05, cache_write: 1 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-3-pro-preview": { - id: "google/gemini-3-pro-preview", - name: "Gemini 3 Pro", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2, cache_write: 4.5 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-2.5-pro": { - id: "google/gemini-2.5-pro", - name: "Gemini 2.5 Pro", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.31, cache_write: 2.375 }, - limit: { context: 1048576, output: 65536 }, - }, - "openai/gpt-5.3-codex": { - id: "openai/gpt-5.3-codex", - name: "GPT-5.3-Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-02-24", - last_updated: "2026-02-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5-codex": { - id: "openai/gpt-5-codex", - name: "GPT-5 Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-10-01", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5-pro": { - id: "openai/gpt-5-pro", - name: "GPT-5 Pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-10-06", - last_updated: "2025-10-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 120 }, - limit: { context: 400000, output: 272000 }, - }, - "openai/gpt-4o-mini": { - id: "openai/gpt-4o-mini", - name: "GPT-4o Mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6, cache_read: 0.08 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-5.1-codex-max": { - id: "openai/gpt-5.1-codex-max", - name: "GPT-5.1-Codex-Max", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 9, cache_read: 0.11 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.2-codex": { - id: "openai/gpt-5.2-codex", - name: "GPT-5.2-Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2026-01-14", - last_updated: "2026-01-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.1": { - id: "openai/gpt-5.1", - name: "GPT-5.1", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.2-chat": { - id: "openai/gpt-5.2-chat", - name: "GPT-5.2 Chat", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-5-chat": { - id: "openai/gpt-5-chat", - name: "GPT-5 Chat (latest)", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: true, - temperature: true, - knowledge: "2024-09-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.1-chat": { - id: "openai/gpt-5.1-chat", - name: "GPT-5.1 Chat", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-5-image": { - id: "openai/gpt-5-image", - name: "GPT-5 Image", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-10-01", - release_date: "2025-10-14", - last_updated: "2025-10-14", - modalities: { input: ["text", "image", "pdf"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 5, output: 10, cache_read: 1.25 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.1-codex-mini": { - id: "openai/gpt-5.1-codex-mini", - name: "GPT-5.1-Codex-Mini", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.025 }, - limit: { context: 400000, output: 100000 }, - }, - "openai/gpt-5.2": { - id: "openai/gpt-5.2", - name: "GPT-5.2", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-4.1": { - id: "openai/gpt-4.1", - name: "GPT-4.1", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 1047576, output: 32768 }, - }, - "openai/gpt-5": { - id: "openai/gpt-5", - name: "GPT-5", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "audio", "image", "video"], output: ["text", "audio", "image"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.13 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/o4-mini": { - id: "openai/o4-mini", - name: "o4 Mini", - family: "o-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-06", - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.28 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-4.1-mini": { - id: "openai/gpt-4.1-mini", - name: "GPT-4.1 Mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.6, cache_read: 0.1 }, - limit: { context: 1047576, output: 32768 }, - }, - "openai/gpt-5.4": { - id: "openai/gpt-5.4", - name: "GPT-5.4", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 2.5, - output: 15, - cache_read: 0.25, - context_over_200k: { input: 5, output: 22.5, cache_read: 0.5 }, - }, - limit: { context: 1050000, input: 922000, output: 128000 }, - }, - "openai/gpt-5.4-pro": { - id: "openai/gpt-5.4-pro", - name: "GPT-5.4 Pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 30, output: 180, cache_read: 30 }, - limit: { context: 1050000, input: 922000, output: 128000 }, - }, - "openai/gpt-5.1-codex": { - id: "openai/gpt-5.1-codex", - name: "GPT-5.1-Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.2-pro": { - id: "openai/gpt-5.2-pro", - name: "GPT-5.2 Pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 21, output: 168 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5-mini": { - id: "openai/gpt-5-mini", - name: "GPT-5 Mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.03 }, - limit: { context: 128000, output: 32000 }, - }, - "openai/gpt-5-nano": { - id: "openai/gpt-5-nano", - name: "GPT-5 Nano", - family: "gpt-nano", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.4, cache_read: 0.01 }, - limit: { context: 16000, output: 4000 }, - }, - "anthropic/claude-3-7-sonnet": { - id: "anthropic/claude-3-7-sonnet", - name: "Claude Sonnet 3.7", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-01", - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-opus-4-1": { - id: "anthropic/claude-opus-4-1", - name: "Claude Opus 4.1", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "anthropic/claude-opus-4-6": { - id: "anthropic/claude-opus-4-6", - name: "Claude Opus 4.6", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-05-30", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 5, - output: 25, - cache_read: 0.5, - cache_write: 6.25, - context_over_200k: { input: 10, output: 37.5, cache_read: 1, cache_write: 12.5 }, - }, - limit: { context: 1000000, output: 128000 }, - }, - "anthropic/claude-sonnet-4-6": { - id: "anthropic/claude-sonnet-4-6", - name: "Claude Sonnet 4.6", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-17", - last_updated: "2026-02-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { - input: 3, - output: 15, - cache_read: 0.3, - cache_write: 3.75, - context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, - }, - limit: { context: 1000000, output: 128000 }, - }, - "anthropic/claude-opus-4": { - id: "anthropic/claude-opus-4", - name: "Claude Opus 4", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "anthropic/claude-haiku-4-5": { - id: "anthropic/claude-haiku-4-5", - name: "Claude Haiku 4.5", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-02-01", - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 200000, output: 62000 }, - }, - "anthropic/claude-opus-4-5": { - id: "anthropic/claude-opus-4-5", - name: "Claude Opus 4.5", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-24", - last_updated: "2025-11-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-sonnet-4": { - id: "anthropic/claude-sonnet-4", - name: "Claude Sonnet 4", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-sonnet-4-5": { - id: "anthropic/claude-sonnet-4-5", - name: "Claude Sonnet 4.5", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 1000000, output: 64000 }, - }, - "xai/grok-4-fast": { - id: "xai/grok-4-fast", - name: "Grok 4 Fast", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-09-19", - last_updated: "2025-09-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05, cache_write: 0.2 }, - limit: { context: 2000000, output: 64000 }, - }, - "xai/grok-4": { - id: "xai/grok-4", - name: "Grok 4", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-09-09", - last_updated: "2025-09-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.75, cache_write: 3 }, - limit: { context: 256000, output: 64000 }, - }, - }, - }, - "qihang-ai": { - id: "qihang-ai", - env: ["QIHANG_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.qhaigc.net/v1", - name: "QiHang", - doc: "https://www.qhaigc.net/docs", - models: { - "claude-opus-4-5-20251101": { - id: "claude-opus-4-5-20251101", - name: "Claude Opus 4.5", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03", - release_date: "2025-11-01", - last_updated: "2025-11-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.71, output: 3.57 }, - limit: { context: 200000, output: 32000 }, - }, - "gpt-5.2-codex": { - id: "gpt-5.2-codex", - name: "GPT-5.2 Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 1.14 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "gemini-2.5-flash": { - id: "gemini-2.5-flash", - name: "Gemini 2.5 Flash", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.09, output: 0.71, context_over_200k: { input: 0.09, output: 0.71 } }, - limit: { context: 1048576, output: 65536 }, - }, - "gemini-3-flash-preview": { - id: "gemini-3-flash-preview", - name: "Gemini 3 Flash Preview", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.07, output: 0.43, context_over_200k: { input: 0.07, output: 0.43 } }, - limit: { context: 1048576, output: 65536 }, - }, - "claude-sonnet-4-5-20250929": { - id: "claude-sonnet-4-5-20250929", - name: "Claude Sonnet 4.5", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.43, output: 2.14 }, - limit: { context: 200000, output: 64000 }, - }, - "gpt-5.2": { - id: "gpt-5.2", - name: "GPT-5.2", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "claude-haiku-4-5-20251001": { - id: "claude-haiku-4-5-20251001", - name: "Claude Haiku 4.5", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-10-01", - last_updated: "2025-10-01", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.71 }, - limit: { context: 200000, output: 64000 }, - }, - "gemini-3-pro-preview": { - id: "gemini-3-pro-preview", - name: "Gemini 3 Pro Preview", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-11", - release_date: "2025-11-19", - last_updated: "2025-11-19", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.57, output: 3.43 }, - limit: { context: 1000000, output: 65000 }, - }, - "gpt-5-mini": { - id: "gpt-5-mini", - name: "GPT-5-Mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-09-30", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.04, output: 0.29 }, - limit: { context: 200000, output: 64000 }, - }, - }, - }, - "siliconflow-cn": { - id: "siliconflow-cn", - env: ["SILICONFLOW_CN_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.siliconflow.cn/v1", - name: "SiliconFlow (China)", - doc: "https://cloud.siliconflow.com/models", - models: { - "zai-org/GLM-4.6V": { - id: "zai-org/GLM-4.6V", - name: "zai-org/GLM-4.6V", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-12-07", - last_updated: "2025-12-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.9 }, - limit: { context: 131000, output: 131000 }, - }, - "zai-org/GLM-4.5V": { - id: "zai-org/GLM-4.5V", - name: "zai-org/GLM-4.5V", - family: "glm", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-13", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.86 }, - limit: { context: 66000, output: 66000 }, - }, - "zai-org/GLM-4.6": { - id: "zai-org/GLM-4.6", - name: "zai-org/GLM-4.6", - family: "glm", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-04", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 1.9 }, - limit: { context: 205000, output: 205000 }, - }, - "zai-org/GLM-4.5-Air": { - id: "zai-org/GLM-4.5-Air", - name: "zai-org/GLM-4.5-Air", - family: "glm-air", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-28", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.86 }, - limit: { context: 131000, output: 131000 }, - }, - "Pro/zai-org/GLM-4.7": { - id: "Pro/zai-org/GLM-4.7", - name: "Pro/zai-org/GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 2.2 }, - limit: { context: 205000, output: 205000 }, - }, - "Pro/zai-org/GLM-5": { - id: "Pro/zai-org/GLM-5", - name: "Pro/zai-org/GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3.2 }, - limit: { context: 205000, output: 205000 }, - }, - "Pro/MiniMaxAI/MiniMax-M2.5": { - id: "Pro/MiniMaxAI/MiniMax-M2.5", - name: "Pro/MiniMaxAI/MiniMax-M2.5", - family: "minimax", - attachment: false, - reasoning: false, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-02-13", - last_updated: "2026-02-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.22 }, - limit: { context: 192000, output: 131000 }, - }, - "Pro/MiniMaxAI/MiniMax-M2.1": { - id: "Pro/MiniMaxAI/MiniMax-M2.1", - name: "Pro/MiniMaxAI/MiniMax-M2.1", - family: "minimax", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 197000, output: 131000 }, - }, - "Pro/deepseek-ai/DeepSeek-R1": { - id: "Pro/deepseek-ai/DeepSeek-R1", - name: "Pro/deepseek-ai/DeepSeek-R1", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-05-28", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 2.18 }, - limit: { context: 164000, output: 164000 }, - }, - "Pro/deepseek-ai/DeepSeek-V3.2": { - id: "Pro/deepseek-ai/DeepSeek-V3.2", - name: "Pro/deepseek-ai/DeepSeek-V3.2", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-03", - last_updated: "2025-12-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 0.42 }, - limit: { context: 164000, output: 164000 }, - }, - "Pro/deepseek-ai/DeepSeek-V3": { - id: "Pro/deepseek-ai/DeepSeek-V3", - name: "Pro/deepseek-ai/DeepSeek-V3", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-12-26", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1 }, - limit: { context: 164000, output: 164000 }, - }, - "Pro/deepseek-ai/DeepSeek-V3.1-Terminus": { - id: "Pro/deepseek-ai/DeepSeek-V3.1-Terminus", - name: "Pro/deepseek-ai/DeepSeek-V3.1-Terminus", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-29", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 1 }, - limit: { context: 164000, output: 164000 }, - }, - "Pro/moonshotai/Kimi-K2-Instruct-0905": { - id: "Pro/moonshotai/Kimi-K2-Instruct-0905", - name: "Pro/moonshotai/Kimi-K2-Instruct-0905", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-08", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2 }, - limit: { context: 262000, output: 262000 }, - }, - "Pro/moonshotai/Kimi-K2.5": { - id: "Pro/moonshotai/Kimi-K2.5", - name: "Pro/moonshotai/Kimi-K2.5", - family: "kimi", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.55, output: 3 }, - limit: { context: 262000, output: 262000 }, - }, - "Pro/moonshotai/Kimi-K2-Thinking": { - id: "Pro/moonshotai/Kimi-K2-Thinking", - name: "Pro/moonshotai/Kimi-K2-Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-11-07", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.55, output: 2.5 }, - limit: { context: 262000, output: 262000 }, - }, - "PaddlePaddle/PaddleOCR-VL-1.5": { - id: "PaddlePaddle/PaddleOCR-VL-1.5", - name: "PaddlePaddle/PaddleOCR-VL-1.5", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2026-01-29", - last_updated: "2026-01-29", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 16384, output: 16384 }, - }, - "PaddlePaddle/PaddleOCR-VL": { - id: "PaddlePaddle/PaddleOCR-VL", - name: "PaddlePaddle/PaddleOCR-VL", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-10-16", - last_updated: "2025-10-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 16384, output: 16384 }, - }, - "Kwaipilot/KAT-Dev": { - id: "Kwaipilot/KAT-Dev", - name: "Kwaipilot/KAT-Dev", - family: "kat-coder", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-27", - last_updated: "2026-01-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.6 }, - limit: { context: 128000, output: 128000 }, - }, - "deepseek-ai/DeepSeek-OCR": { - id: "deepseek-ai/DeepSeek-OCR", - name: "deepseek-ai/DeepSeek-OCR", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-10-20", - last_updated: "2025-10-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 8192, output: 8192 }, - }, - "deepseek-ai/DeepSeek-V3.1-Terminus": { - id: "deepseek-ai/DeepSeek-V3.1-Terminus", - name: "deepseek-ai/DeepSeek-V3.1-Terminus", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-29", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 1 }, - limit: { context: 164000, output: 164000 }, - }, - "deepseek-ai/DeepSeek-V3": { - id: "deepseek-ai/DeepSeek-V3", - name: "deepseek-ai/DeepSeek-V3", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-12-26", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1 }, - limit: { context: 164000, output: 164000 }, - }, - "deepseek-ai/DeepSeek-V3.2": { - id: "deepseek-ai/DeepSeek-V3.2", - name: "deepseek-ai/DeepSeek-V3.2", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-03", - last_updated: "2025-12-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 0.42 }, - limit: { context: 164000, output: 164000 }, - }, - "deepseek-ai/deepseek-vl2": { - id: "deepseek-ai/deepseek-vl2", - name: "deepseek-ai/deepseek-vl2", - family: "deepseek", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-12-13", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.15 }, - limit: { context: 4000, output: 4000 }, - }, - "deepseek-ai/DeepSeek-R1": { - id: "deepseek-ai/DeepSeek-R1", - name: "deepseek-ai/DeepSeek-R1", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-05-28", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 2.18 }, - limit: { context: 164000, output: 164000 }, - }, - "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B": { - id: "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B", - name: "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-01-20", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.1 }, - limit: { context: 131000, output: 131000 }, - }, - "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B": { - id: "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", - name: "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-01-20", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.18, output: 0.18 }, - limit: { context: 131000, output: 131000 }, - }, - "ByteDance-Seed/Seed-OSS-36B-Instruct": { - id: "ByteDance-Seed/Seed-OSS-36B-Instruct", - name: "ByteDance-Seed/Seed-OSS-36B-Instruct", - family: "seed", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-04", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.21, output: 0.57 }, - limit: { context: 262000, output: 262000 }, - }, - "tencent/Hunyuan-MT-7B": { - id: "tencent/Hunyuan-MT-7B", - name: "tencent/Hunyuan-MT-7B", - family: "hunyuan", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 33000, output: 33000 }, - }, - "tencent/Hunyuan-A13B-Instruct": { - id: "tencent/Hunyuan-A13B-Instruct", - name: "tencent/Hunyuan-A13B-Instruct", - family: "hunyuan", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-06-30", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.57 }, - limit: { context: 131000, output: 131000 }, - }, - "ascend-tribe/pangu-pro-moe": { - id: "ascend-tribe/pangu-pro-moe", - name: "ascend-tribe/pangu-pro-moe", - family: "pangu", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-07-02", - last_updated: "2026-01-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.6 }, - limit: { context: 128000, output: 128000 }, - }, - "moonshotai/Kimi-K2-Thinking": { - id: "moonshotai/Kimi-K2-Thinking", - name: "moonshotai/Kimi-K2-Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-11-07", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.55, output: 2.5 }, - limit: { context: 262000, output: 262000 }, - }, - "moonshotai/Kimi-K2-Instruct-0905": { - id: "moonshotai/Kimi-K2-Instruct-0905", - name: "moonshotai/Kimi-K2-Instruct-0905", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-08", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2 }, - limit: { context: 262000, output: 262000 }, - }, - "inclusionAI/Ling-mini-2.0": { - id: "inclusionAI/Ling-mini-2.0", - name: "inclusionAI/Ling-mini-2.0", - family: "ling", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-10", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.07, output: 0.28 }, - limit: { context: 131000, output: 131000 }, - }, - "inclusionAI/Ring-flash-2.0": { - id: "inclusionAI/Ring-flash-2.0", - name: "inclusionAI/Ring-flash-2.0", - family: "ring", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-29", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.57 }, - limit: { context: 131000, output: 131000 }, - }, - "inclusionAI/Ling-flash-2.0": { - id: "inclusionAI/Ling-flash-2.0", - name: "inclusionAI/Ling-flash-2.0", - family: "ling", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.57 }, - limit: { context: 131000, output: 131000 }, - }, - "baidu/ERNIE-4.5-300B-A47B": { - id: "baidu/ERNIE-4.5-300B-A47B", - name: "baidu/ERNIE-4.5-300B-A47B", - family: "ernie", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-02", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.28, output: 1.1 }, - limit: { context: 131000, output: 131000 }, - }, - "stepfun-ai/Step-3.5-Flash": { - id: "stepfun-ai/Step-3.5-Flash", - name: "stepfun-ai/Step-3.5-Flash", - family: "step", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3.5-9B": { - id: "Qwen/Qwen3.5-9B", - name: "Qwen/Qwen3.5-9B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-03-03", - last_updated: "2026-03-03", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.22, output: 1.74 }, - limit: { context: 262144, output: 65536 }, - }, - "Qwen/Qwen3.5-122B-A10B": { - id: "Qwen/Qwen3.5-122B-A10B", - name: "Qwen/Qwen3.5-122B-A10B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02-26", - last_updated: "2026-02-26", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.29, output: 2.32 }, - limit: { context: 262144, output: 65536 }, - }, - "Qwen/Qwen3.5-397B-A17B": { - id: "Qwen/Qwen3.5-397B-A17B", - name: "Qwen/Qwen3.5-397B-A17B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02-16", - last_updated: "2026-02-16", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.29, output: 1.74 }, - limit: { context: 262144, output: 65536 }, - }, - "Qwen/Qwen3.5-35B-A3B": { - id: "Qwen/Qwen3.5-35B-A3B", - name: "Qwen/Qwen3.5-35B-A3B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02-25", - last_updated: "2026-02-25", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.23, output: 1.86 }, - limit: { context: 262144, output: 65536 }, - }, - "Qwen/Qwen3.5-4B": { - id: "Qwen/Qwen3.5-4B", - name: "Qwen/Qwen3.5-4B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-03-03", - last_updated: "2026-03-03", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 65536 }, - }, - "Qwen/Qwen3.5-27B": { - id: "Qwen/Qwen3.5-27B", - name: "Qwen/Qwen3.5-27B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02-25", - last_updated: "2026-02-25", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.26, output: 2.09 }, - limit: { context: 262144, output: 65536 }, - }, - "Qwen/Qwen2.5-VL-32B-Instruct": { - id: "Qwen/Qwen2.5-VL-32B-Instruct", - name: "Qwen/Qwen2.5-VL-32B-Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-03-24", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 0.27 }, - limit: { context: 131000, output: 131000 }, - }, - "Qwen/Qwen3-14B": { - id: "Qwen/Qwen3-14B", - name: "Qwen/Qwen3-14B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-30", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.07, output: 0.28 }, - limit: { context: 131000, output: 131000 }, - }, - "Qwen/Qwen3-235B-A22B-Instruct-2507": { - id: "Qwen/Qwen3-235B-A22B-Instruct-2507", - name: "Qwen/Qwen3-235B-A22B-Instruct-2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-23", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.09, output: 0.6 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-VL-32B-Thinking": { - id: "Qwen/Qwen3-VL-32B-Thinking", - name: "Qwen/Qwen3-VL-32B-Thinking", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-21", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.5 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-Coder-30B-A3B-Instruct": { - id: "Qwen/Qwen3-Coder-30B-A3B-Instruct", - name: "Qwen/Qwen3-Coder-30B-A3B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-01", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.07, output: 0.28 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-VL-8B-Thinking": { - id: "Qwen/Qwen3-VL-8B-Thinking", - name: "Qwen/Qwen3-VL-8B-Thinking", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-15", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.18, output: 2 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-VL-30B-A3B-Instruct": { - id: "Qwen/Qwen3-VL-30B-A3B-Instruct", - name: "Qwen/Qwen3-VL-30B-A3B-Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-05", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.29, output: 1 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-Omni-30B-A3B-Captioner": { - id: "Qwen/Qwen3-Omni-30B-A3B-Captioner", - name: "Qwen/Qwen3-Omni-30B-A3B-Captioner", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-04", - last_updated: "2025-11-25", - modalities: { input: ["audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 66000, output: 66000 }, - }, - "Qwen/Qwen3-Next-80B-A3B-Thinking": { - id: "Qwen/Qwen3-Next-80B-A3B-Thinking", - name: "Qwen/Qwen3-Next-80B-A3B-Thinking", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-25", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.57 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-VL-8B-Instruct": { - id: "Qwen/Qwen3-VL-8B-Instruct", - name: "Qwen/Qwen3-VL-8B-Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-15", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.18, output: 0.68 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen2.5-72B-Instruct-128K": { - id: "Qwen/Qwen2.5-72B-Instruct-128K", - name: "Qwen/Qwen2.5-72B-Instruct-128K", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-09-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.59, output: 0.59 }, - limit: { context: 131000, output: 4000 }, - }, - "Qwen/Qwen2.5-72B-Instruct": { - id: "Qwen/Qwen2.5-72B-Instruct", - name: "Qwen/Qwen2.5-72B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-09-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.59, output: 0.59 }, - limit: { context: 33000, output: 4000 }, - }, - "Qwen/Qwen2.5-VL-72B-Instruct": { - id: "Qwen/Qwen2.5-VL-72B-Instruct", - name: "Qwen/Qwen2.5-VL-72B-Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-01-28", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.59, output: 0.59 }, - limit: { context: 131000, output: 4000 }, - }, - "Qwen/Qwen2.5-14B-Instruct": { - id: "Qwen/Qwen2.5-14B-Instruct", - name: "Qwen/Qwen2.5-14B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-09-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.1 }, - limit: { context: 33000, output: 4000 }, - }, - "Qwen/Qwen2.5-7B-Instruct": { - id: "Qwen/Qwen2.5-7B-Instruct", - name: "Qwen/Qwen2.5-7B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-09-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.05 }, - limit: { context: 33000, output: 4000 }, - }, - "Qwen/Qwen3-Omni-30B-A3B-Thinking": { - id: "Qwen/Qwen3-Omni-30B-A3B-Thinking", - name: "Qwen/Qwen3-Omni-30B-A3B-Thinking", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-04", - last_updated: "2025-11-25", - modalities: { input: ["text", "image", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 66000, output: 66000 }, - }, - "Qwen/Qwen3-Coder-480B-A35B-Instruct": { - id: "Qwen/Qwen3-Coder-480B-A35B-Instruct", - name: "Qwen/Qwen3-Coder-480B-A35B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-31", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-8B": { - id: "Qwen/Qwen3-8B", - name: "Qwen/Qwen3-8B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-30", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.06, output: 0.06 }, - limit: { context: 131000, output: 131000 }, - }, - "Qwen/Qwen2.5-Coder-32B-Instruct": { - id: "Qwen/Qwen2.5-Coder-32B-Instruct", - name: "Qwen/Qwen2.5-Coder-32B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-11-11", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.18, output: 0.18 }, - limit: { context: 33000, output: 4000 }, - }, - "Qwen/Qwen2.5-32B-Instruct": { - id: "Qwen/Qwen2.5-32B-Instruct", - name: "Qwen/Qwen2.5-32B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-09-19", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.18, output: 0.18 }, - limit: { context: 33000, output: 4000 }, - }, - "Qwen/Qwen3-30B-A3B-Thinking-2507": { - id: "Qwen/Qwen3-30B-A3B-Thinking-2507", - name: "Qwen/Qwen3-30B-A3B-Thinking-2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-31", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.09, output: 0.3 }, - limit: { context: 262000, output: 131000 }, - }, - "Qwen/Qwen3-Omni-30B-A3B-Instruct": { - id: "Qwen/Qwen3-Omni-30B-A3B-Instruct", - name: "Qwen/Qwen3-Omni-30B-A3B-Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-04", - last_updated: "2025-11-25", - modalities: { input: ["text", "image", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 66000, output: 66000 }, - }, - "Qwen/Qwen3-235B-A22B-Thinking-2507": { - id: "Qwen/Qwen3-235B-A22B-Thinking-2507", - name: "Qwen/Qwen3-235B-A22B-Thinking-2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-28", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.13, output: 0.6 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-Next-80B-A3B-Instruct": { - id: "Qwen/Qwen3-Next-80B-A3B-Instruct", - name: "Qwen/Qwen3-Next-80B-A3B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 1.4 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-VL-235B-A22B-Thinking": { - id: "Qwen/Qwen3-VL-235B-A22B-Thinking", - name: "Qwen/Qwen3-VL-235B-A22B-Thinking", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-04", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.45, output: 3.5 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-32B": { - id: "Qwen/Qwen3-32B", - name: "Qwen/Qwen3-32B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-30", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.57 }, - limit: { context: 131000, output: 131000 }, - }, - "Qwen/QwQ-32B": { - id: "Qwen/QwQ-32B", - name: "Qwen/QwQ-32B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-03-06", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.58 }, - limit: { context: 131000, output: 131000 }, - }, - "Qwen/Qwen3-VL-32B-Instruct": { - id: "Qwen/Qwen3-VL-32B-Instruct", - name: "Qwen/Qwen3-VL-32B-Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-21", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.6 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-VL-235B-A22B-Instruct": { - id: "Qwen/Qwen3-VL-235B-A22B-Instruct", - name: "Qwen/Qwen3-VL-235B-A22B-Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-04", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.5 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-30B-A3B-Instruct-2507": { - id: "Qwen/Qwen3-30B-A3B-Instruct-2507", - name: "Qwen/Qwen3-30B-A3B-Instruct-2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-30", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.09, output: 0.3 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen3-VL-30B-A3B-Thinking": { - id: "Qwen/Qwen3-VL-30B-A3B-Thinking", - name: "Qwen/Qwen3-VL-30B-A3B-Thinking", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-11", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.29, output: 1 }, - limit: { context: 262000, output: 262000 }, - }, - "THUDM/GLM-Z1-9B-0414": { - id: "THUDM/GLM-Z1-9B-0414", - name: "THUDM/GLM-Z1-9B-0414", - family: "glm-z", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.086, output: 0.086 }, - limit: { context: 131000, output: 131000 }, - }, - "THUDM/GLM-Z1-32B-0414": { - id: "THUDM/GLM-Z1-32B-0414", - name: "THUDM/GLM-Z1-32B-0414", - family: "glm-z", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.57 }, - limit: { context: 131000, output: 131000 }, - }, - "THUDM/GLM-4-9B-0414": { - id: "THUDM/GLM-4-9B-0414", - name: "THUDM/GLM-4-9B-0414", - family: "glm", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.086, output: 0.086 }, - limit: { context: 33000, output: 33000 }, - }, - "THUDM/GLM-4-32B-0414": { - id: "THUDM/GLM-4-32B-0414", - name: "THUDM/GLM-4-32B-0414", - family: "glm", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-04-18", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 0.27 }, - limit: { context: 33000, output: 33000 }, - }, - }, - }, - helicone: { - id: "helicone", - env: ["HELICONE_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://ai-gateway.helicone.ai/v1", - name: "Helicone", - doc: "https://helicone.ai/models", - models: { - "claude-4.5-haiku": { - id: "claude-4.5-haiku", - name: "Anthropic: Claude 4.5 Haiku", - family: "claude-haiku", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-10", - release_date: "2025-10-01", - last_updated: "2025-10-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.09999999999999999, cache_write: 1.25 }, - limit: { context: 200000, output: 8192 }, - }, - "gpt-5-codex": { - id: "gpt-5-codex", - name: "OpenAI: GPT-5 Codex", - family: "gpt-codex", - attachment: false, - reasoning: false, - tool_call: true, - temperature: false, - knowledge: "2025-01", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.12500000000000003 }, - limit: { context: 400000, output: 128000 }, - }, - "gpt-5-pro": { - id: "gpt-5-pro", - name: "OpenAI: GPT-5 Pro", - family: "gpt-pro", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2025-01", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 120 }, - limit: { context: 128000, output: 32768 }, - }, - "deepseek-reasoner": { - id: "deepseek-reasoner", - name: "DeepSeek Reasoner", - family: "deepseek-thinking", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-01", - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.56, output: 1.68, cache_read: 0.07 }, - limit: { context: 128000, output: 64000 }, - }, - "claude-3.7-sonnet": { - id: "claude-3.7-sonnet", - name: "Anthropic: Claude 3.7 Sonnet", - family: "claude-sonnet", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-02", - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.30000000000000004, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "gpt-4o-mini": { - id: "gpt-4o-mini", - name: "OpenAI GPT-4o-mini", - family: "gpt-mini", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6, cache_read: 0.075 }, - limit: { context: 128000, output: 16384 }, - }, - "grok-4-fast-reasoning": { - id: "grok-4-fast-reasoning", - name: "xAI: Grok 4 Fast Reasoning", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-09", - release_date: "2025-09-01", - last_updated: "2025-09-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.19999999999999998, output: 0.5, cache_read: 0.049999999999999996 }, - limit: { context: 2000000, output: 2000000 }, - }, - "gpt-5-chat-latest": { - id: "gpt-5-chat-latest", - name: "OpenAI GPT-5 Chat Latest", - family: "gpt-codex", - attachment: false, - reasoning: false, - tool_call: true, - temperature: false, - knowledge: "2024-09", - release_date: "2024-09-30", - last_updated: "2024-09-30", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.12500000000000003 }, - limit: { context: 128000, output: 16384 }, - }, - "llama-4-scout": { - id: "llama-4-scout", - name: "Meta Llama 4 Scout 17B 16E", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.08, output: 0.3 }, - limit: { context: 131072, output: 8192 }, - }, - "codex-mini-latest": { - id: "codex-mini-latest", - name: "OpenAI Codex Mini Latest", - family: "gpt-codex-mini", - attachment: false, - reasoning: false, - tool_call: true, - temperature: false, - knowledge: "2025-01", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.5, output: 6, cache_read: 0.375 }, - limit: { context: 200000, output: 100000 }, - }, - "qwen2.5-coder-7b-fast": { - id: "qwen2.5-coder-7b-fast", - name: "Qwen2.5 Coder 7B fast", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-09", - release_date: "2024-09-15", - last_updated: "2024-09-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.03, output: 0.09 }, - limit: { context: 32000, output: 8192 }, - }, - "claude-opus-4-1": { - id: "claude-opus-4-1", - name: "Anthropic: Claude Opus 4.1", - family: "claude-opus", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "sonar-reasoning-pro": { - id: "sonar-reasoning-pro", - name: "Perplexity Sonar Reasoning Pro", - family: "sonar-reasoning", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2025-01", - release_date: "2025-01-27", - last_updated: "2025-01-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8 }, - limit: { context: 127000, output: 4096 }, - }, - "deepseek-v3": { - id: "deepseek-v3", - name: "DeepSeek V3", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2024-12-26", - last_updated: "2024-12-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.56, output: 1.68, cache_read: 0.07 }, - limit: { context: 128000, output: 8192 }, - }, - "llama-3.1-8b-instruct-turbo": { - id: "llama-3.1-8b-instruct-turbo", - name: "Meta Llama 3.1 8B Instruct Turbo", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.02, output: 0.03 }, - limit: { context: 128000, output: 128000 }, - }, - "grok-3": { - id: "grok-3", - name: "xAI Grok 3", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-06", - release_date: "2024-06-01", - last_updated: "2024-06-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.75 }, - limit: { context: 131072, output: 131072 }, - }, - "ernie-4.5-21b-a3b-thinking": { - id: "ernie-4.5-21b-a3b-thinking", - name: "Baidu Ernie 4.5 21B A3B Thinking", - family: "ernie", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2025-03", - release_date: "2025-03-16", - last_updated: "2025-03-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.07, output: 0.28 }, - limit: { context: 128000, output: 8000 }, - }, - "grok-code-fast-1": { - id: "grok-code-fast-1", - name: "xAI Grok Code Fast 1", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2024-08-25", - last_updated: "2024-08-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.19999999999999998, output: 1.5, cache_read: 0.02 }, - limit: { context: 256000, output: 10000 }, - }, - "llama-prompt-guard-2-22m": { - id: "llama-prompt-guard-2-22m", - name: "Meta Llama Prompt Guard 2 22M", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-10", - release_date: "2024-10-01", - last_updated: "2024-10-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.01, output: 0.01 }, - limit: { context: 512, output: 2 }, - }, - "llama-3.3-70b-instruct": { - id: "llama-3.3-70b-instruct", - name: "Meta Llama 3.3 70B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.13, output: 0.39 }, - limit: { context: 128000, output: 16400 }, - }, - "grok-4-1-fast-reasoning": { - id: "grok-4-1-fast-reasoning", - name: "xAI Grok 4.1 Fast Reasoning", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-11", - release_date: "2025-11-17", - last_updated: "2025-11-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.19999999999999998, output: 0.5, cache_read: 0.049999999999999996 }, - limit: { context: 2000000, output: 2000000 }, - }, - "claude-4.5-sonnet": { - id: "claude-4.5-sonnet", - name: "Anthropic: Claude Sonnet 4.5", - family: "claude-sonnet", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-09", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.30000000000000004, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "gpt-4.1-mini-2025-04-14": { - id: "gpt-4.1-mini-2025-04-14", - name: "OpenAI GPT-4.1 Mini", - family: "gpt-mini", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.39999999999999997, output: 1.5999999999999999, cache_read: 0.09999999999999999 }, - limit: { context: 1047576, output: 32768 }, - }, - "gemini-2.5-flash": { - id: "gemini-2.5-flash", - name: "Google Gemini 2.5 Flash", - family: "gemini-flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5, cache_read: 0.075, cache_write: 0.3 }, - limit: { context: 1048576, output: 65535 }, - }, - "llama-guard-4": { - id: "llama-guard-4", - name: "Meta Llama Guard 4 12B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-01", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.21, output: 0.21 }, - limit: { context: 131072, output: 1024 }, - }, - "grok-4-1-fast-non-reasoning": { - id: "grok-4-1-fast-non-reasoning", - name: "xAI Grok 4.1 Fast Non-Reasoning", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-11", - release_date: "2025-11-17", - last_updated: "2025-11-17", - modalities: { input: ["text", "image"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 0.19999999999999998, output: 0.5, cache_read: 0.049999999999999996 }, - limit: { context: 2000000, output: 30000 }, - }, - o1: { - id: "o1", - name: "OpenAI: o1", - family: "o", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2025-01", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 60, cache_read: 7.5 }, - limit: { context: 200000, output: 100000 }, - }, - "gpt-5.1": { - id: "gpt-5.1", - name: "OpenAI GPT-5.1", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: true, - temperature: false, - knowledge: "2025-01", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "image"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.12500000000000003 }, - limit: { context: 400000, output: 128000 }, - }, - "kimi-k2-0905": { - id: "kimi-k2-0905", - name: "Kimi K2 (09/05)", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-09", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 2, cache_read: 0.39999999999999997 }, - limit: { context: 262144, output: 16384 }, - }, - "grok-4": { - id: "grok-4", - name: "xAI Grok 4", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2024-07-09", - last_updated: "2024-07-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.75 }, - limit: { context: 256000, output: 256000 }, - }, - "llama-3.1-8b-instant": { - id: "llama-3.1-8b-instant", - name: "Meta Llama 3.1 8B Instant", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2024-07-01", - last_updated: "2024-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.049999999999999996, output: 0.08 }, - limit: { context: 131072, output: 32678 }, - }, - sonar: { - id: "sonar", - name: "Perplexity Sonar", - family: "sonar", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-01", - release_date: "2025-01-27", - last_updated: "2025-01-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 1 }, - limit: { context: 127000, output: 4096 }, - }, - o3: { - id: "o3", - name: "OpenAI o3", - family: "o", - attachment: false, - reasoning: false, - tool_call: true, - temperature: false, - knowledge: "2024-06", - release_date: "2024-06-01", - last_updated: "2024-06-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 200000, output: 100000 }, - }, - "qwen3-coder": { - id: "qwen3-coder", - name: "Qwen3 Coder 480B A35B Instruct Turbo", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.22, output: 0.95 }, - limit: { context: 262144, output: 16384 }, - }, - "glm-4.6": { - id: "glm-4.6", - name: "Zai GLM-4.6", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.44999999999999996, output: 1.5 }, - limit: { context: 204800, output: 131072 }, - }, - "sonar-reasoning": { - id: "sonar-reasoning", - name: "Perplexity Sonar Reasoning", - family: "sonar-reasoning", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2025-01", - release_date: "2025-01-27", - last_updated: "2025-01-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5 }, - limit: { context: 127000, output: 4096 }, - }, - "qwen3-32b": { - id: "qwen3-32b", - name: "Qwen3 32B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04-28", - last_updated: "2025-04-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.29, output: 0.59 }, - limit: { context: 131072, output: 40960 }, - }, - "sonar-deep-research": { - id: "sonar-deep-research", - name: "Perplexity Sonar Deep Research", - family: "sonar-deep-research", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2025-01", - release_date: "2025-01-27", - last_updated: "2025-01-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8 }, - limit: { context: 127000, output: 4096 }, - }, - "gpt-4.1-nano": { - id: "gpt-4.1-nano", - name: "OpenAI GPT-4.1 Nano", - family: "gpt-nano", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.09999999999999999, output: 0.39999999999999997, cache_read: 0.024999999999999998 }, - limit: { context: 1047576, output: 32768 }, - }, - "claude-sonnet-4-5-20250929": { - id: "claude-sonnet-4-5-20250929", - name: "Anthropic: Claude Sonnet 4.5 (20250929)", - family: "claude-sonnet", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-09", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.30000000000000004, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "gemini-2.5-flash-lite": { - id: "gemini-2.5-flash-lite", - name: "Google Gemini 2.5 Flash Lite", - family: "gemini-flash-lite", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-07-22", - last_updated: "2025-07-22", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { - input: 0.09999999999999999, - output: 0.39999999999999997, - cache_read: 0.024999999999999998, - cache_write: 0.09999999999999999, - }, - limit: { context: 1048576, output: 65535 }, - }, - "claude-3.5-haiku": { - id: "claude-3.5-haiku", - name: "Anthropic: Claude 3.5 Haiku", - family: "claude-haiku", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.7999999999999999, output: 4, cache_read: 0.08, cache_write: 1 }, - limit: { context: 200000, output: 8192 }, - }, - "gpt-oss-120b": { - id: "gpt-oss-120b", - name: "OpenAI GPT-OSS 120b", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-06", - release_date: "2024-06-01", - last_updated: "2024-06-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.04, output: 0.16 }, - limit: { context: 131072, output: 131072 }, - }, - "gpt-5.1-codex-mini": { - id: "gpt-5.1-codex-mini", - name: "OpenAI: GPT-5.1 Codex Mini", - family: "gpt-codex", - attachment: false, - reasoning: false, - tool_call: true, - temperature: false, - knowledge: "2025-01", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "image"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.024999999999999998 }, - limit: { context: 400000, output: 128000 }, - }, - "deepseek-r1-distill-llama-70b": { - id: "deepseek-r1-distill-llama-70b", - name: "DeepSeek R1 Distill Llama 70B", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.03, output: 0.13 }, - limit: { context: 128000, output: 4096 }, - }, - "deepseek-v3.1-terminus": { - id: "deepseek-v3.1-terminus", - name: "DeepSeek V3.1 Terminus", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-09", - release_date: "2025-09-22", - last_updated: "2025-09-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 1, cache_read: 0.21600000000000003 }, - limit: { context: 128000, output: 16384 }, - }, - "gpt-4.1": { - id: "gpt-4.1", - name: "OpenAI GPT-4.1", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 1047576, output: 32768 }, - }, - "claude-3.5-sonnet-v2": { - id: "claude-3.5-sonnet-v2", - name: "Anthropic: Claude 3.5 Sonnet v2", - family: "claude-sonnet", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.30000000000000004, cache_write: 3.75 }, - limit: { context: 200000, output: 8192 }, - }, - "mistral-small": { - id: "mistral-small", - name: "Mistral Small", - family: "mistral-small", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-02", - release_date: "2024-02-26", - last_updated: "2024-02-26", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 75, output: 200 }, - limit: { context: 128000, output: 128000 }, - }, - "o3-pro": { - id: "o3-pro", - name: "OpenAI o3 Pro", - family: "o-pro", - attachment: false, - reasoning: false, - tool_call: true, - temperature: false, - knowledge: "2024-06", - release_date: "2024-06-01", - last_updated: "2024-06-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 20, output: 80 }, - limit: { context: 200000, output: 100000 }, - }, - "mistral-nemo": { - id: "mistral-nemo", - name: "Mistral Nemo", - family: "mistral-nemo", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-07", - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 20, output: 40 }, - limit: { context: 128000, output: 16400 }, - }, - "qwen3-coder-30b-a3b-instruct": { - id: "qwen3-coder-30b-a3b-instruct", - name: "Qwen3 Coder 30B A3B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-07-31", - last_updated: "2025-07-31", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.09999999999999999, output: 0.3 }, - limit: { context: 262144, output: 262144 }, - }, - "qwen3-vl-235b-a22b-instruct": { - id: "qwen3-vl-235b-a22b-instruct", - name: "Qwen3 VL 235B A22B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-09", - release_date: "2025-09-23", - last_updated: "2025-09-23", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.5 }, - limit: { context: 256000, output: 16384 }, - }, - "qwen3-235b-a22b-thinking": { - id: "qwen3-235b-a22b-thinking", - name: "Qwen3 235B A22B Thinking", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2025-07", - release_date: "2025-07-25", - last_updated: "2025-07-25", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.9000000000000004 }, - limit: { context: 262144, output: 81920 }, - }, - "deepseek-v3.2": { - id: "deepseek-v3.2", - name: "DeepSeek V3.2", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-09", - release_date: "2025-09-22", - last_updated: "2025-09-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 0.41 }, - limit: { context: 163840, output: 65536 }, - }, - "grok-3-mini": { - id: "grok-3-mini", - name: "xAI Grok 3 Mini", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-06", - release_date: "2024-06-01", - last_updated: "2024-06-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.5, cache_read: 0.075 }, - limit: { context: 131072, output: 131072 }, - }, - "claude-3-haiku-20240307": { - id: "claude-3-haiku-20240307", - name: "Anthropic: Claude 3 Haiku", - family: "claude-haiku", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-03", - release_date: "2024-03-07", - last_updated: "2024-03-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1.25, cache_read: 0.03, cache_write: 0.3 }, - limit: { context: 200000, output: 4096 }, - }, - "claude-haiku-4-5-20251001": { - id: "claude-haiku-4-5-20251001", - name: "Anthropic: Claude 4.5 Haiku (20251001)", - family: "claude-haiku", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-10", - release_date: "2025-10-01", - last_updated: "2025-10-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.09999999999999999, cache_write: 1.25 }, - limit: { context: 200000, output: 8192 }, - }, - "kimi-k2-0711": { - id: "kimi-k2-0711", - name: "Kimi K2 (07/11)", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5700000000000001, output: 2.3 }, - limit: { context: 131072, output: 16384 }, - }, - "gpt-5": { - id: "gpt-5", - name: "OpenAI GPT-5", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: true, - temperature: false, - knowledge: "2025-01", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.12500000000000003 }, - limit: { context: 400000, output: 128000 }, - }, - "o4-mini": { - id: "o4-mini", - name: "OpenAI o4 Mini", - family: "o-mini", - attachment: false, - reasoning: false, - tool_call: true, - temperature: false, - knowledge: "2024-06", - release_date: "2024-06-01", - last_updated: "2024-06-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.275 }, - limit: { context: 200000, output: 100000 }, - }, - "gpt-4.1-mini": { - id: "gpt-4.1-mini", - name: "OpenAI GPT-4.1 Mini", - family: "gpt-mini", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.39999999999999997, output: 1.5999999999999999, cache_read: 0.09999999999999999 }, - limit: { context: 1047576, output: 32768 }, - }, - "llama-3.3-70b-versatile": { - id: "llama-3.3-70b-versatile", - name: "Meta Llama 3.3 70B Versatile", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.59, output: 0.7899999999999999 }, - limit: { context: 131072, output: 32678 }, - }, - "llama-4-maverick": { - id: "llama-4-maverick", - name: "Meta Llama 4 Maverick 17B 128E", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 131072, output: 8192 }, - }, - "kimi-k2-thinking": { - id: "kimi-k2-thinking", - name: "Kimi K2 Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-11", - release_date: "2025-11-06", - last_updated: "2025-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.48, output: 2 }, - limit: { context: 256000, output: 262144 }, - }, - "gemma2-9b-it": { - id: "gemma2-9b-it", - name: "Google Gemma 2", - family: "gemma", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-06", - release_date: "2024-06-25", - last_updated: "2024-06-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.01, output: 0.03 }, - limit: { context: 8192, output: 8192 }, - }, - "deepseek-tng-r1t2-chimera": { - id: "deepseek-tng-r1t2-chimera", - name: "DeepSeek TNG R1T2 Chimera", - family: "deepseek-thinking", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-07-02", - last_updated: "2025-07-02", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 130000, output: 163840 }, - }, - "sonar-pro": { - id: "sonar-pro", - name: "Perplexity Sonar Pro", - family: "sonar-pro", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-01", - release_date: "2025-01-27", - last_updated: "2025-01-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 200000, output: 4096 }, - }, - "claude-opus-4": { - id: "claude-opus-4", - name: "Anthropic: Claude Opus 4", - family: "claude-opus", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2025-05-14", - last_updated: "2025-05-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "gpt-5.1-codex": { - id: "gpt-5.1-codex", - name: "OpenAI: GPT-5.1 Codex", - family: "gpt-codex", - attachment: false, - reasoning: false, - tool_call: true, - temperature: false, - knowledge: "2025-01", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "image"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.12500000000000003 }, - limit: { context: 400000, output: 128000 }, - }, - "mistral-large-2411": { - id: "mistral-large-2411", - name: "Mistral-Large", - family: "mistral-large", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2024-07-24", - last_updated: "2024-07-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6 }, - limit: { context: 128000, output: 32768 }, - }, - "claude-4.5-opus": { - id: "claude-4.5-opus", - name: "Anthropic: Claude Opus 4.5", - family: "claude-opus", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-11", - release_date: "2025-11-24", - last_updated: "2025-11-24", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 64000 }, - }, - "chatgpt-4o-latest": { - id: "chatgpt-4o-latest", - name: "OpenAI ChatGPT-4o", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2024-08-14", - last_updated: "2024-08-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 20, cache_read: 2.5 }, - limit: { context: 128000, output: 16384 }, - }, - "llama-3.1-8b-instruct": { - id: "llama-3.1-8b-instruct", - name: "Meta Llama 3.1 8B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.02, output: 0.049999999999999996 }, - limit: { context: 16384, output: 16384 }, - }, - "claude-sonnet-4": { - id: "claude-sonnet-4", - name: "Anthropic: Claude Sonnet 4", - family: "claude-sonnet", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2025-05-14", - last_updated: "2025-05-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.30000000000000004, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "gemini-3-pro-preview": { - id: "gemini-3-pro-preview", - name: "Google Gemini 3 Pro Preview", - family: "gemini-pro", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-11", - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.19999999999999998 }, - limit: { context: 1048576, output: 65536 }, - }, - "qwen3-next-80b-a3b-instruct": { - id: "qwen3-next-80b-a3b-instruct", - name: "Qwen3 Next 80B A3B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 1.4 }, - limit: { context: 262000, output: 16384 }, - }, - "llama-prompt-guard-2-86m": { - id: "llama-prompt-guard-2-86m", - name: "Meta Llama Prompt Guard 2 86M", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-10", - release_date: "2024-10-01", - last_updated: "2024-10-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.01, output: 0.01 }, - limit: { context: 512, output: 2 }, - }, - "o3-mini": { - id: "o3-mini", - name: "OpenAI o3 Mini", - family: "o-mini", - attachment: false, - reasoning: false, - tool_call: true, - temperature: false, - knowledge: "2023-10", - release_date: "2023-10-01", - last_updated: "2023-10-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, - limit: { context: 200000, output: 100000 }, - }, - "gemma-3-12b-it": { - id: "gemma-3-12b-it", - name: "Google Gemma 3 12B", - family: "gemma", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-12", - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.049999999999999996, output: 0.09999999999999999 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen3-30b-a3b": { - id: "qwen3-30b-a3b", - name: "Qwen3 30B A3B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-06-01", - last_updated: "2025-06-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.08, output: 0.29 }, - limit: { context: 41000, output: 41000 }, - }, - "grok-4-fast-non-reasoning": { - id: "grok-4-fast-non-reasoning", - name: "xAI Grok 4 Fast Non-Reasoning", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-09", - release_date: "2025-09-19", - last_updated: "2025-09-19", - modalities: { input: ["text", "image", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.19999999999999998, output: 0.5, cache_read: 0.049999999999999996 }, - limit: { context: 2000000, output: 2000000 }, - }, - "gpt-5-mini": { - id: "gpt-5-mini", - name: "OpenAI GPT-5 Mini", - family: "gpt-mini", - attachment: false, - reasoning: false, - tool_call: true, - temperature: false, - knowledge: "2025-01", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.024999999999999998 }, - limit: { context: 400000, output: 128000 }, - }, - "gpt-oss-20b": { - id: "gpt-oss-20b", - name: "OpenAI GPT-OSS 20b", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-06", - release_date: "2024-06-01", - last_updated: "2024-06-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.049999999999999996, output: 0.19999999999999998 }, - limit: { context: 131072, output: 131072 }, - }, - "hermes-2-pro-llama-3-8b": { - id: "hermes-2-pro-llama-3-8b", - name: "Hermes 2 Pro Llama 3 8B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-05", - release_date: "2024-05-27", - last_updated: "2024-05-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.14 }, - limit: { context: 131072, output: 131072 }, - }, - "gpt-5.1-chat-latest": { - id: "gpt-5.1-chat-latest", - name: "OpenAI GPT-5.1 Chat", - family: "gpt-codex", - attachment: false, - reasoning: false, - tool_call: true, - temperature: false, - knowledge: "2025-01", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "image"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.12500000000000003 }, - limit: { context: 128000, output: 16384 }, - }, - "claude-opus-4-1-20250805": { - id: "claude-opus-4-1-20250805", - name: "Anthropic: Claude Opus 4.1 (20250805)", - family: "claude-opus", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "gemini-2.5-pro": { - id: "gemini-2.5-pro", - name: "Google Gemini 2.5 Pro", - family: "gemini-pro", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.3125, cache_write: 1.25 }, - limit: { context: 1048576, output: 65536 }, - }, - "gpt-5-nano": { - id: "gpt-5-nano", - name: "OpenAI GPT-5 Nano", - family: "gpt-nano", - attachment: false, - reasoning: false, - tool_call: true, - temperature: false, - knowledge: "2025-01", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.049999999999999996, output: 0.39999999999999997, cache_read: 0.005 }, - limit: { context: 400000, output: 128000 }, - }, - "o1-mini": { - id: "o1-mini", - name: "OpenAI: o1-mini", - family: "o-mini", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2025-01", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, - limit: { context: 128000, output: 65536 }, - }, - "gpt-4o": { - id: "gpt-4o", - name: "OpenAI GPT-4o", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-05", - release_date: "2024-05-13", - last_updated: "2024-05-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10, cache_read: 1.25 }, - limit: { context: 128000, output: 16384 }, - }, - }, - }, - vercel: { - id: "vercel", - env: ["AI_GATEWAY_API_KEY"], - npm: "@ai-sdk/gateway", - name: "Vercel AI Gateway", - doc: "https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway", - models: { - "prime-intellect/intellect-3": { - id: "prime-intellect/intellect-3", - name: "INTELLECT 3", - family: "intellect", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-11-26", - last_updated: "2025-11-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.1 }, - limit: { context: 131072, output: 131072 }, - }, - "zai/glm-5": { - id: "zai/glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3.2, cache_read: 0.2 }, - limit: { context: 202800, output: 131072 }, - }, - "zai/glm-4.7-flashx": { - id: "zai/glm-4.7-flashx", - name: "GLM 4.7 FlashX", - family: "glm-flash", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-01", - last_updated: "2025-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.06, output: 0.4, cache_read: 0.01 }, - limit: { context: 200000, output: 128000 }, - }, - "zai/glm-4.5-air": { - id: "zai/glm-4.5-air", - name: "GLM 4.5 Air", - family: "glm-air", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 1.1 }, - limit: { context: 128000, output: 96000 }, - }, - "zai/glm-4.5": { - id: "zai/glm-4.5", - name: "GLM 4.5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2 }, - limit: { context: 131072, output: 131072 }, - }, - "zai/glm-4.7-flash": { - id: "zai/glm-4.7-flash", - name: "GLM 4.7 Flash", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-13", - last_updated: "2026-03-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.07, output: 0.39999999999999997 }, - limit: { context: 200000, output: 131000 }, - }, - "zai/glm-4.6": { - id: "zai/glm-4.6", - name: "GLM 4.6", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.45, output: 1.8 }, - limit: { context: 200000, output: 96000 }, - }, - "zai/glm-4.7": { - id: "zai/glm-4.7", - name: "GLM 4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.43, output: 1.75, cache_read: 0.08 }, - limit: { context: 202752, output: 120000 }, - }, - "zai/glm-4.6v-flash": { - id: "zai/glm-4.6v-flash", - name: "GLM-4.6V-Flash", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 24000 }, - }, - "zai/glm-5-turbo": { - id: "zai/glm-5-turbo", - name: "GLM 5 Turbo", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-15", - last_updated: "2026-03-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.2, output: 4, cache_read: 0.24 }, - limit: { context: 202800, output: 131100 }, - }, - "zai/glm-4.5v": { - id: "zai/glm-4.5v", - name: "GLM 4.5V", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2025-08-11", - last_updated: "2025-08-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 1.8 }, - limit: { context: 66000, output: 66000 }, - }, - "zai/glm-4.6v": { - id: "zai/glm-4.6v", - name: "GLM-4.6V", - family: "glm", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.9, cache_read: 0.05 }, - limit: { context: 128000, output: 24000 }, - }, - "nvidia/nemotron-nano-12b-v2-vl": { - id: "nvidia/nemotron-nano-12b-v2-vl", - name: "Nvidia Nemotron Nano 12B V2 VL", - family: "nemotron", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12", - last_updated: "2024-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.6 }, - limit: { context: 131072, output: 131072 }, - }, - "nvidia/nemotron-nano-9b-v2": { - id: "nvidia/nemotron-nano-9b-v2", - name: "Nvidia Nemotron Nano 9B V2", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-08-18", - last_updated: "2025-08-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.04, output: 0.16 }, - limit: { context: 131072, output: 131072 }, - }, - "nvidia/nemotron-3-nano-30b-a3b": { - id: "nvidia/nemotron-3-nano-30b-a3b", - name: "Nemotron 3 Nano 30B A3B", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12", - last_updated: "2024-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.06, output: 0.24 }, - limit: { context: 262144, output: 262144 }, - }, - "arcee-ai/trinity-large-preview": { - id: "arcee-ai/trinity-large-preview", - name: "Trinity Large Preview", - family: "trinity", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-01", - last_updated: "2025-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1 }, - limit: { context: 131000, output: 131000 }, - }, - "arcee-ai/trinity-mini": { - id: "arcee-ai/trinity-mini", - name: "Trinity Mini", - family: "trinity", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-10", - release_date: "2025-12", - last_updated: "2025-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.15 }, - limit: { context: 131072, output: 131072 }, - }, - "xiaomi/mimo-v2-flash": { - id: "xiaomi/mimo-v2-flash", - name: "MiMo V2 Flash", - family: "mimo", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.29 }, - limit: { context: 262144, output: 32000 }, - }, - "xiaomi/mimo-v2-pro": { - id: "xiaomi/mimo-v2-pro", - name: "MiMo V2 Pro", - family: "mimo", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 3, cache_read: 0.19999999999999998 }, - limit: { context: 1000000, output: 128000 }, - }, - "inception/mercury-2": { - id: "inception/mercury-2", - name: "Mercury 2", - family: "mercury", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-24", - last_updated: "2026-03-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 0.75, cache_read: 0.024999999999999998 }, - limit: { context: 128000, output: 128000 }, - }, - "inception/mercury-coder-small": { - id: "inception/mercury-coder-small", - name: "Mercury Coder Small Beta", - family: "mercury", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-02-26", - last_updated: "2025-02-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1 }, - limit: { context: 32000, output: 16384 }, - }, - "voyage/voyage-3-large": { - id: "voyage/voyage-3-large", - name: "voyage-3-large", - family: "voyage", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-09", - last_updated: "2024-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.18, output: 0 }, - limit: { context: 8192, output: 1536 }, - }, - "voyage/voyage-code-3": { - id: "voyage/voyage-code-3", - name: "voyage-code-3", - family: "voyage", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-09", - last_updated: "2024-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.18, output: 0 }, - limit: { context: 8192, output: 1536 }, - }, - "voyage/voyage-law-2": { - id: "voyage/voyage-law-2", - name: "voyage-law-2", - family: "voyage", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-03", - last_updated: "2024-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.12, output: 0 }, - limit: { context: 8192, output: 1536 }, - }, - "voyage/voyage-finance-2": { - id: "voyage/voyage-finance-2", - name: "voyage-finance-2", - family: "voyage", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-03", - last_updated: "2024-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.12, output: 0 }, - limit: { context: 8192, output: 1536 }, - }, - "voyage/voyage-code-2": { - id: "voyage/voyage-code-2", - name: "voyage-code-2", - family: "voyage", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-01", - last_updated: "2024-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.12, output: 0 }, - limit: { context: 8192, output: 1536 }, - }, - "voyage/voyage-4-lite": { - id: "voyage/voyage-4-lite", - name: "voyage-4-lite", - family: "voyage", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2026-03-06", - last_updated: "2026-03-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 32000, output: 0 }, - }, - "voyage/voyage-3.5-lite": { - id: "voyage/voyage-3.5-lite", - name: "voyage-3.5-lite", - family: "voyage", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-05-20", - last_updated: "2025-05-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.02, output: 0 }, - limit: { context: 8192, output: 1536 }, - }, - "voyage/voyage-4-large": { - id: "voyage/voyage-4-large", - name: "voyage-4-large", - family: "voyage", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2026-03-06", - last_updated: "2026-03-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 32000, output: 0 }, - }, - "voyage/voyage-3.5": { - id: "voyage/voyage-3.5", - name: "voyage-3.5", - family: "voyage", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-05-20", - last_updated: "2025-05-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.06, output: 0 }, - limit: { context: 8192, output: 1536 }, - }, - "voyage/voyage-4": { - id: "voyage/voyage-4", - name: "voyage-4", - family: "voyage", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2026-03-06", - last_updated: "2026-03-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 32000, output: 0 }, - }, - "amazon/nova-2-lite": { - id: "amazon/nova-2-lite", - name: "Nova 2 Lite", - family: "nova", - attachment: true, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5 }, - limit: { context: 1000000, output: 1000000 }, - }, - "amazon/titan-embed-text-v2": { - id: "amazon/titan-embed-text-v2", - name: "Titan Text Embeddings V2", - family: "titan-embed", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-04", - last_updated: "2024-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.02, output: 0 }, - limit: { context: 8192, output: 1536 }, - }, - "amazon/nova-lite": { - id: "amazon/nova-lite", - name: "Nova Lite", - family: "nova-lite", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12-03", - last_updated: "2024-12-03", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.06, output: 0.24, cache_read: 0.015 }, - limit: { context: 300000, output: 8192 }, - }, - "amazon/nova-pro": { - id: "amazon/nova-pro", - name: "Nova Pro", - family: "nova-pro", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12-03", - last_updated: "2024-12-03", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 3.2, cache_read: 0.2 }, - limit: { context: 300000, output: 8192 }, - }, - "amazon/nova-micro": { - id: "amazon/nova-micro", - name: "Nova Micro", - family: "nova-micro", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12-03", - last_updated: "2024-12-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.035, output: 0.14, cache_read: 0.00875 }, - limit: { context: 128000, output: 8192 }, - }, - "alibaba/qwen-3-235b": { - id: "alibaba/qwen-3-235b", - name: "Qwen3 235B A22B Instruct 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.13, output: 0.6 }, - limit: { context: 40960, output: 16384 }, - }, - "alibaba/qwen3-max-preview": { - id: "alibaba/qwen3-max-preview", - name: "Qwen3 Max Preview", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-23", - last_updated: "2025-09-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.2, output: 6, cache_read: 0.24 }, - limit: { context: 262144, output: 32768 }, - }, - "alibaba/qwen3-next-80b-a3b-thinking": { - id: "alibaba/qwen3-next-80b-a3b-thinking", - name: "Qwen3 Next 80B A3B Thinking", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-09", - release_date: "2025-09-12", - last_updated: "2025-09-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 1.5 }, - limit: { context: 131072, output: 65536 }, - }, - "alibaba/qwen3-max-thinking": { - id: "alibaba/qwen3-max-thinking", - name: "Qwen 3 Max Thinking", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-01", - last_updated: "2025-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.2, output: 6, cache_read: 0.24 }, - limit: { context: 256000, output: 65536 }, - }, - "alibaba/qwen3-vl-instruct": { - id: "alibaba/qwen3-vl-instruct", - name: "Qwen3 VL Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-24", - last_updated: "2025-09-24", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.7, output: 2.8 }, - limit: { context: 131072, output: 129024 }, - }, - "alibaba/qwen3-embedding-8b": { - id: "alibaba/qwen3-embedding-8b", - name: "Qwen3 Embedding 8B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-06-05", - last_updated: "2025-06-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0 }, - limit: { context: 32768, output: 32768 }, - }, - "alibaba/qwen3-coder-next": { - id: "alibaba/qwen3-coder-next", - name: "Qwen3 Coder Next", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-07-22", - last_updated: "2026-02-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 1.2 }, - limit: { context: 256000, output: 256000 }, - }, - "alibaba/qwen3-coder": { - id: "alibaba/qwen3-coder", - name: "Qwen3 Coder 480B A35B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.38, output: 1.53 }, - limit: { context: 262144, output: 66536 }, - }, - "alibaba/qwen-3-30b": { - id: "alibaba/qwen-3-30b", - name: "Qwen3-30B-A3B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.08, output: 0.29 }, - limit: { context: 40960, output: 16384 }, - }, - "alibaba/qwen3-embedding-0.6b": { - id: "alibaba/qwen3-embedding-0.6b", - name: "Qwen3 Embedding 0.6B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.01, output: 0 }, - limit: { context: 32768, output: 32768 }, - }, - "alibaba/qwen-3-14b": { - id: "alibaba/qwen-3-14b", - name: "Qwen3-14B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.06, output: 0.24 }, - limit: { context: 40960, output: 16384 }, - }, - "alibaba/qwen3-235b-a22b-thinking": { - id: "alibaba/qwen3-235b-a22b-thinking", - name: "Qwen3 235B A22B Thinking 2507", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.9 }, - limit: { context: 262114, output: 262114 }, - }, - "alibaba/qwen3-vl-thinking": { - id: "alibaba/qwen3-vl-thinking", - name: "Qwen3 VL Thinking", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-09", - release_date: "2025-09-24", - last_updated: "2025-09-24", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.7, output: 8.4 }, - limit: { context: 131072, output: 129024 }, - }, - "alibaba/qwen3.5-flash": { - id: "alibaba/qwen3.5-flash", - name: "Qwen 3.5 Flash", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-24", - last_updated: "2026-02-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.001, cache_write: 0.125 }, - limit: { context: 1000000, output: 64000 }, - }, - "alibaba/qwen3-next-80b-a3b-instruct": { - id: "alibaba/qwen3-next-80b-a3b-instruct", - name: "Qwen3 Next 80B A3B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-12", - last_updated: "2025-09-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.09, output: 1.1 }, - limit: { context: 262144, output: 32768 }, - }, - "alibaba/qwen3.5-plus": { - id: "alibaba/qwen3.5-plus", - name: "Qwen 3.5 Plus", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-16", - last_updated: "2026-02-19", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2.4, cache_read: 0.04, cache_write: 0.5 }, - limit: { context: 1000000, output: 64000 }, - }, - "alibaba/qwen3-max": { - id: "alibaba/qwen3-max", - name: "Qwen3 Max", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-23", - last_updated: "2025-09-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.2, output: 6 }, - limit: { context: 262144, output: 32768 }, - }, - "alibaba/qwen-3-32b": { - id: "alibaba/qwen-3-32b", - name: "Qwen 3.32B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 40960, output: 16384 }, - }, - "alibaba/qwen3-coder-plus": { - id: "alibaba/qwen3-coder-plus", - name: "Qwen3 Coder Plus", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 5 }, - limit: { context: 1000000, output: 1000000 }, - }, - "alibaba/qwen3-embedding-4b": { - id: "alibaba/qwen3-embedding-4b", - name: "Qwen3 Embedding 4B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-06-05", - last_updated: "2025-06-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.02, output: 0 }, - limit: { context: 32768, output: 32768 }, - }, - "alibaba/qwen3-coder-30b-a3b": { - id: "alibaba/qwen3-coder-30b-a3b", - name: "Qwen 3 Coder 30B A3B Instruct", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.07, output: 0.27 }, - limit: { context: 160000, output: 32768 }, - }, - "bfl/flux-pro-1.0-fill": { - id: "bfl/flux-pro-1.0-fill", - name: "FLUX.1 Fill [pro]", - family: "flux", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-10", - last_updated: "2024-10", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 512, output: 0 }, - }, - "bfl/flux-pro-1.1": { - id: "bfl/flux-pro-1.1", - name: "FLUX1.1 [pro]", - family: "flux", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-10", - last_updated: "2024-10", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 512, output: 0 }, - }, - "bfl/flux-kontext-max": { - id: "bfl/flux-kontext-max", - name: "FLUX.1 Kontext Max", - family: "flux", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-06", - last_updated: "2025-06", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 512, output: 0 }, - }, - "bfl/flux-kontext-pro": { - id: "bfl/flux-kontext-pro", - name: "FLUX.1 Kontext Pro", - family: "flux", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-06", - last_updated: "2025-06", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 512, output: 0 }, - }, - "bfl/flux-pro-1.1-ultra": { - id: "bfl/flux-pro-1.1-ultra", - name: "FLUX1.1 [pro] Ultra", - family: "flux", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-11", - last_updated: "2024-11", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 512, output: 0 }, - }, - "mistral/codestral-embed": { - id: "mistral/codestral-embed", - name: "Codestral Embed", - family: "codestral-embed", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-05-28", - last_updated: "2025-05-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0 }, - limit: { context: 8192, output: 1536 }, - }, - "mistral/devstral-small-2": { - id: "mistral/devstral-small-2", - name: "Devstral Small 2", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-05-07", - last_updated: "2025-05-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 256000 }, - }, - "mistral/devstral-2": { - id: "mistral/devstral-2", - name: "Devstral 2", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-12-09", - last_updated: "2025-12-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 256000 }, - }, - "mistral/mistral-large-3": { - id: "mistral/mistral-large-3", - name: "Mistral Large 3", - family: "mistral-large", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-10", - release_date: "2025-12-02", - last_updated: "2025-12-02", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 1.5 }, - limit: { context: 256000, output: 256000 }, - }, - "mistral/mistral-embed": { - id: "mistral/mistral-embed", - name: "Mistral Embed", - family: "mistral-embed", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2023-12-11", - last_updated: "2023-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0 }, - limit: { context: 8192, output: 1536 }, - }, - "mistral/ministral-14b": { - id: "mistral/ministral-14b", - name: "Ministral 14B", - family: "ministral", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-10", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 256000, output: 256000 }, - }, - "mistral/mistral-nemo": { - id: "mistral/mistral-nemo", - name: "Mistral Nemo", - family: "mistral-nemo", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-07-01", - last_updated: "2024-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.04, output: 0.17 }, - limit: { context: 60288, output: 16000 }, - }, - "mistral/mistral-medium": { - id: "mistral/mistral-medium", - name: "Mistral Medium 3.1", - family: "mistral-medium", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-05-07", - last_updated: "2025-05-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2 }, - limit: { context: 128000, output: 64000 }, - }, - "mistral/devstral-small": { - id: "mistral/devstral-small", - name: "Devstral Small 1.1", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-05-07", - last_updated: "2025-05-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 128000, output: 64000 }, - }, - "mistral/codestral": { - id: "mistral/codestral", - name: "Codestral (latest)", - family: "codestral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-05-29", - last_updated: "2025-01-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.9 }, - limit: { context: 256000, output: 4096 }, - }, - "mistral/mixtral-8x22b-instruct": { - id: "mistral/mixtral-8x22b-instruct", - name: "Mixtral 8x22B", - family: "mixtral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-04-17", - last_updated: "2024-04-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2, output: 6 }, - limit: { context: 64000, output: 64000 }, - }, - "mistral/mistral-small": { - id: "mistral/mistral-small", - name: "Mistral Small (latest)", - family: "mistral-small", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-03", - release_date: "2024-09-01", - last_updated: "2024-09-04", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 128000, output: 16384 }, - }, - "mistral/ministral-8b": { - id: "mistral/ministral-8b", - name: "Ministral 8B (latest)", - family: "ministral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-10-01", - last_updated: "2024-10-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.1 }, - limit: { context: 128000, output: 128000 }, - }, - "mistral/pixtral-large": { - id: "mistral/pixtral-large", - name: "Pixtral Large (latest)", - family: "pixtral", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2024-11-01", - last_updated: "2024-11-04", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 2, output: 6 }, - limit: { context: 128000, output: 128000 }, - }, - "mistral/pixtral-12b": { - id: "mistral/pixtral-12b", - name: "Pixtral 12B", - family: "pixtral", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-09", - release_date: "2024-09-01", - last_updated: "2024-09-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.15 }, - limit: { context: 128000, output: 128000 }, - }, - "mistral/magistral-small": { - id: "mistral/magistral-small", - name: "Magistral Small", - family: "magistral-small", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-03-17", - last_updated: "2025-03-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 1.5 }, - limit: { context: 128000, output: 128000 }, - }, - "mistral/magistral-medium": { - id: "mistral/magistral-medium", - name: "Magistral Medium (latest)", - family: "magistral-medium", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-06", - release_date: "2025-03-17", - last_updated: "2025-03-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2, output: 5 }, - limit: { context: 128000, output: 16384 }, - }, - "mistral/ministral-3b": { - id: "mistral/ministral-3b", - name: "Ministral 3B (latest)", - family: "ministral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-10-01", - last_updated: "2024-10-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.04, output: 0.04 }, - limit: { context: 128000, output: 128000 }, - }, - "kwaipilot/kat-coder-pro-v1": { - id: "kwaipilot/kat-coder-pro-v1", - name: "KAT-Coder-Pro V1", - family: "kat-coder", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2024-10", - release_date: "2025-10-24", - last_updated: "2025-10-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 256000, output: 32000 }, - }, - "deepseek/deepseek-v3": { - id: "deepseek/deepseek-v3", - name: "DeepSeek V3 0324", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2024-12-26", - last_updated: "2024-12-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.77, output: 0.77 }, - limit: { context: 163840, output: 16384 }, - }, - "deepseek/deepseek-v3.1": { - id: "deepseek/deepseek-v3.1", - name: "DeepSeek-V3.1", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-08-21", - last_updated: "2025-08-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1 }, - limit: { context: 163840, output: 128000 }, - }, - "deepseek/deepseek-v3.1-terminus": { - id: "deepseek/deepseek-v3.1-terminus", - name: "DeepSeek V3.1 Terminus", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-09-22", - last_updated: "2025-09-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 1 }, - limit: { context: 131072, output: 65536 }, - }, - "deepseek/deepseek-v3.2": { - id: "deepseek/deepseek-v3.2", - name: "DeepSeek V3.2", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-07", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 0.4, cache_read: 0.22 }, - limit: { context: 163842, output: 8000 }, - }, - "deepseek/deepseek-v3.2-thinking": { - id: "deepseek/deepseek-v3.2-thinking", - name: "DeepSeek V3.2 Thinking", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.28, output: 0.42, cache_read: 0.03 }, - limit: { context: 128000, output: 64000 }, - }, - "deepseek/deepseek-v3.2-exp": { - id: "deepseek/deepseek-v3.2-exp", - name: "DeepSeek V3.2 Exp", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-09", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 0.4 }, - limit: { context: 163840, output: 163840 }, - }, - "deepseek/deepseek-r1": { - id: "deepseek/deepseek-r1", - name: "DeepSeek-R1", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-01-20", - last_updated: "2025-05-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.35, output: 5.4 }, - limit: { context: 128000, output: 32768 }, - }, - "moonshotai/kimi-k2-turbo": { - id: "moonshotai/kimi-k2-turbo", - name: "Kimi K2 Turbo", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.4, output: 10 }, - limit: { context: 256000, output: 16384 }, - }, - "moonshotai/kimi-k2-0905": { - id: "moonshotai/kimi-k2-0905", - name: "Kimi K2 0905", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 2.5 }, - limit: { context: 131072, output: 16384 }, - }, - "moonshotai/kimi-k2.5": { - id: "moonshotai/kimi-k2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01-26", - last_updated: "2026-01-26", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 1.2 }, - limit: { context: 262144, output: 262144 }, - }, - "moonshotai/kimi-k2-thinking": { - id: "moonshotai/kimi-k2-thinking", - name: "Kimi K2 Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-11-06", - last_updated: "2025-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.47, output: 2, cache_read: 0.14 }, - limit: { context: 216144, output: 216144 }, - }, - "moonshotai/kimi-k2-thinking-turbo": { - id: "moonshotai/kimi-k2-thinking-turbo", - name: "Kimi K2 Thinking Turbo", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-11-06", - last_updated: "2025-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.15, output: 8, cache_read: 0.15 }, - limit: { context: 262114, output: 262114 }, - }, - "moonshotai/kimi-k2": { - id: "moonshotai/kimi-k2", - name: "Kimi K2 Instruct", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-07-14", - last_updated: "2025-07-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3 }, - limit: { context: 131072, output: 16384 }, - status: "deprecated", - }, - "google/gemini-embedding-001": { - id: "google/gemini-embedding-001", - name: "Gemini Embedding 001", - family: "gemini-embedding", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-05-20", - last_updated: "2025-05-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0 }, - limit: { context: 8192, output: 1536 }, - }, - "google/gemini-2.5-flash-lite-preview-09-2025": { - id: "google/gemini-2.5-flash-lite-preview-09-2025", - name: "Gemini 2.5 Flash Lite Preview 09-25", - family: "gemini-flash-lite", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.01 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/imagen-4.0-fast-generate-001": { - id: "google/imagen-4.0-fast-generate-001", - name: "Imagen 4 Fast", - family: "imagen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-06", - last_updated: "2025-06", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 480, output: 0 }, - }, - "google/text-embedding-005": { - id: "google/text-embedding-005", - name: "Text Embedding 005", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-08", - last_updated: "2024-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.03, output: 0 }, - limit: { context: 8192, output: 1536 }, - }, - "google/gemini-2.5-flash-preview-09-2025": { - id: "google/gemini-2.5-flash-preview-09-2025", - name: "Gemini 2.5 Flash Preview 09-25", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5, cache_read: 0.03, cache_write: 0.383 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-3-flash": { - id: "google/gemini-3-flash", - name: "Gemini 3 Flash", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03", - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 3, cache_read: 0.05 }, - limit: { context: 1000000, output: 64000 }, - }, - "google/imagen-4.0-ultra-generate-001": { - id: "google/imagen-4.0-ultra-generate-001", - name: "Imagen 4 Ultra", - family: "imagen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-05-24", - last_updated: "2025-05-24", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 480, output: 0 }, - }, - "google/gemini-3.1-flash-image-preview": { - id: "google/gemini-3.1-flash-image-preview", - name: "Gemini 3.1 Flash Image Preview (Nano Banana 2)", - family: "gemini", - attachment: true, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2026-02-26", - last_updated: "2026-03-06", - modalities: { input: ["text", "image"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 0.5, output: 3 }, - limit: { context: 131072, output: 32768 }, - }, - "google/gemini-3.1-flash-lite-preview": { - id: "google/gemini-3.1-flash-lite-preview", - name: "Gemini 3.1 Flash Lite Preview", - family: "gemini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-03", - last_updated: "2026-03-06", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1.5, cache_read: 0.025, cache_write: 1 }, - limit: { context: 1000000, output: 65000 }, - }, - "google/text-multilingual-embedding-002": { - id: "google/text-multilingual-embedding-002", - name: "Text Multilingual Embedding 002", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-03", - last_updated: "2024-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.03, output: 0 }, - limit: { context: 8192, output: 1536 }, - }, - "google/gemini-embedding-2": { - id: "google/gemini-embedding-2", - name: "Gemini Embedding 2", - family: "gemini-embedding", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2026-03-10", - last_updated: "2026-03-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 0, output: 0 }, - }, - "google/gemini-2.5-flash-lite": { - id: "google/gemini-2.5-flash-lite", - name: "Gemini 2.5 Flash Lite", - family: "gemini-flash-lite", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.01 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-3.1-pro-preview": { - id: "google/gemini-3.1-pro-preview", - name: "Gemini 3.1 Pro Preview", - family: "gemini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-19", - last_updated: "2026-02-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2 }, - limit: { context: 1000000, output: 64000 }, - }, - "google/gemini-2.5-flash-image": { - id: "google/gemini-2.5-flash-image", - name: "Nano Banana (Gemini 2.5 Flash Image)", - family: "gemini-flash", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-01", - release_date: "2025-03-20", - last_updated: "2025-03-20", - modalities: { input: ["text"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5 }, - limit: { context: 32768, output: 32768 }, - }, - "google/gemini-3-pro-image": { - id: "google/gemini-3-pro-image", - name: "Nano Banana Pro (Gemini 3 Pro Image)", - family: "gemini-pro", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-03", - release_date: "2025-09", - last_updated: "2025-09", - modalities: { input: ["text"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 2, output: 120 }, - limit: { context: 65536, output: 32768 }, - }, - "google/gemini-2.5-flash-image-preview": { - id: "google/gemini-2.5-flash-image-preview", - name: "Nano Banana Preview (Gemini 2.5 Flash Image Preview)", - family: "gemini-flash", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-01", - release_date: "2025-03-20", - last_updated: "2025-03-20", - modalities: { input: ["text"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5 }, - limit: { context: 32768, output: 32768 }, - }, - "google/imagen-4.0-generate-001": { - id: "google/imagen-4.0-generate-001", - name: "Imagen 4", - family: "imagen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 480, output: 0 }, - }, - "google/gemini-3-pro-preview": { - id: "google/gemini-3-pro-preview", - name: "Gemini 3 Pro Preview", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, - limit: { context: 1000000, output: 64000 }, - }, - "google/gemini-2.0-flash": { - id: "google/gemini-2.0-flash", - name: "Gemini 2.0 Flash", - family: "gemini-flash", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-06", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, - limit: { context: 1048576, output: 8192 }, - }, - "google/gemini-2.5-pro": { - id: "google/gemini-2.5-pro", - name: "Gemini 2.5 Pro", - family: "gemini-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-03-20", - last_updated: "2025-06-05", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.31 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-2.0-flash-lite": { - id: "google/gemini-2.0-flash-lite", - name: "Gemini 2.0 Flash Lite", - family: "gemini-flash-lite", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-06", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.075, output: 0.3 }, - limit: { context: 1048576, output: 8192 }, - }, - "google/gemini-2.5-flash": { - id: "google/gemini-2.5-flash", - name: "Gemini 2.5 Flash", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-01", - release_date: "2025-03-20", - last_updated: "2025-06-05", - modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5, cache_read: 0.075, input_audio: 1 }, - limit: { context: 1048576, output: 65536 }, - }, - "meituan/longcat-flash-thinking": { - id: "meituan/longcat-flash-thinking", - name: "LongCat Flash Thinking", - family: "longcat", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09-23", - last_updated: "2025-09-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 1.5 }, - limit: { context: 128000, output: 8192 }, - }, - "meituan/longcat-flash-thinking-2601": { - id: "meituan/longcat-flash-thinking-2601", - name: "LongCat Flash Thinking 2601", - family: "longcat", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2026-03-13", - last_updated: "2026-03-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 32768, output: 32768 }, - }, - "meituan/longcat-flash-chat": { - id: "meituan/longcat-flash-chat", - name: "LongCat Flash Chat", - family: "longcat", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-08-30", - last_updated: "2025-08-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - limit: { context: 128000, output: 8192 }, - }, - "bytedance/seed-1.6": { - id: "bytedance/seed-1.6", - name: "Seed 1.6", - family: "seed", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09", - last_updated: "2025-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.05 }, - limit: { context: 256000, output: 32000 }, - }, - "bytedance/seed-1.8": { - id: "bytedance/seed-1.8", - name: "Seed 1.8", - family: "seed", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-10", - last_updated: "2025-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.05 }, - limit: { context: 256000, output: 64000 }, - }, - "meta/llama-3.1-8b": { - id: "meta/llama-3.1-8b", - name: "Llama 3.1 8B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.03, output: 0.05 }, - limit: { context: 131072, output: 16384 }, - }, - "meta/llama-3.2-11b": { - id: "meta/llama-3.2-11b", - name: "Llama 3.2 11B Vision Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-09-25", - last_updated: "2024-09-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.16, output: 0.16 }, - limit: { context: 128000, output: 8192 }, - }, - "meta/llama-3.1-70b": { - id: "meta/llama-3.1-70b", - name: "Llama 3.1 70B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 0.4 }, - limit: { context: 131072, output: 16384 }, - }, - "meta/llama-3.2-90b": { - id: "meta/llama-3.2-90b", - name: "Llama 3.2 90B Vision Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-09-25", - last_updated: "2024-09-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.72, output: 0.72 }, - limit: { context: 128000, output: 8192 }, - }, - "meta/llama-3.2-1b": { - id: "meta/llama-3.2-1b", - name: "Llama 3.2 1B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-12", - release_date: "2024-09-18", - last_updated: "2024-09-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.1 }, - limit: { context: 128000, output: 8192 }, - }, - "meta/llama-3.2-3b": { - id: "meta/llama-3.2-3b", - name: "Llama 3.2 3B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-12", - release_date: "2024-09-18", - last_updated: "2024-09-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.15 }, - limit: { context: 128000, output: 8192 }, - }, - "meta/llama-4-maverick": { - id: "meta/llama-4-maverick", - name: "Llama-4-Maverick-17B-128E-Instruct-FP8", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "meta/llama-3.3-70b": { - id: "meta/llama-3.3-70b", - name: "Llama-3.3-70B-Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "meta/llama-4-scout": { - id: "meta/llama-4-scout", - name: "Llama-4-Scout-17B-16E-Instruct-FP8", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 4096 }, - }, - "vercel/v0-1.5-md": { - id: "vercel/v0-1.5-md", - name: "v0-1.5-md", - family: "v0", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-06-09", - last_updated: "2025-06-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 128000, output: 32000 }, - }, - "vercel/v0-1.0-md": { - id: "vercel/v0-1.0-md", - name: "v0-1.0-md", - family: "v0", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 128000, output: 32000 }, - }, - "openai/gpt-5.3-codex": { - id: "openai/gpt-5.3-codex", - name: "GPT 5.3 Codex", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-24", - last_updated: "2026-02-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "openai/gpt-5-pro": { - id: "openai/gpt-5-pro", - name: "GPT-5 pro", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image", "pdf"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 15, output: 120 }, - limit: { context: 400000, input: 128000, output: 272000 }, - }, - "openai/text-embedding-ada-002": { - id: "openai/text-embedding-ada-002", - name: "text-embedding-ada-002", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2022-12-15", - last_updated: "2022-12-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0 }, - limit: { context: 8192, input: 6656, output: 1536 }, - }, - "openai/gpt-4o-mini-search-preview": { - id: "openai/gpt-4o-mini-search-preview", - name: "GPT 4o Mini Search Preview", - family: "gpt-mini", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - knowledge: "2023-09", - release_date: "2025-01", - last_updated: "2025-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 128000, input: 111616, output: 16384 }, - }, - "openai/gpt-5.1-codex-max": { - id: "openai/gpt-5.1-codex-max", - name: "GPT 5.1 Codex Max", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.13 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "openai/gpt-5.2-codex": { - id: "openai/gpt-5.2-codex", - name: "GPT-5.2-Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-12", - last_updated: "2025-12", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "openai/o3-deep-research": { - id: "openai/o3-deep-research", - name: "o3-deep-research", - family: "o", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-10", - release_date: "2024-06-26", - last_updated: "2024-06-26", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 10, output: 40, cache_read: 2.5 }, - limit: { context: 200000, input: 100000, output: 100000 }, - }, - "openai/gpt-5.2-chat": { - id: "openai/gpt-5.2-chat", - name: "GPT-5.2 Chat", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.18 }, - limit: { context: 128000, input: 111616, output: 16384 }, - }, - "openai/gpt-5-chat": { - id: "openai/gpt-5-chat", - name: "GPT-5 Chat", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image", "pdf"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.13 }, - limit: { context: 128000, input: 111616, output: 16384 }, - }, - "openai/text-embedding-3-small": { - id: "openai/text-embedding-3-small", - name: "text-embedding-3-small", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-01-25", - last_updated: "2024-01-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.02, output: 0 }, - limit: { context: 8192, input: 6656, output: 1536 }, - }, - "openai/text-embedding-3-large": { - id: "openai/text-embedding-3-large", - name: "text-embedding-3-large", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-01-25", - last_updated: "2024-01-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.13, output: 0 }, - limit: { context: 8192, input: 6656, output: 1536 }, - }, - "openai/gpt-3.5-turbo": { - id: "openai/gpt-3.5-turbo", - name: "GPT-3.5 Turbo", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2021-09", - release_date: "2023-03-01", - last_updated: "2023-03-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 1.5 }, - limit: { context: 16385, input: 12289, output: 4096 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "GPT OSS 120B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.5 }, - limit: { context: 131072, output: 131072 }, - }, - "openai/gpt-5.1-codex-mini": { - id: "openai/gpt-5.1-codex-mini", - name: "GPT-5.1 Codex mini", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-05-16", - last_updated: "2025-05-16", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.03 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "openai/gpt-5.2": { - id: "openai/gpt-5.2", - name: "GPT-5.2", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.18 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "openai/o3-pro": { - id: "openai/o3-pro", - name: "o3 Pro", - family: "o-pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-10", - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 20, output: 80 }, - limit: { context: 200000, input: 100000, output: 100000 }, - }, - "openai/gpt-5.1-thinking": { - id: "openai/gpt-5.1-thinking", - name: "GPT 5.1 Thinking", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-10", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image", "pdf"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.13 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "openai/gpt-5.4": { - id: "openai/gpt-5.4", - name: "GPT 5.4", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-05", - last_updated: "2026-03-06", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 15, cache_read: 0.25 }, - limit: { context: 1050000, input: 922000, output: 128000 }, - }, - "openai/codex-mini": { - id: "openai/codex-mini", - name: "Codex Mini", - family: "gpt-codex-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-05-16", - last_updated: "2025-05-16", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.5, output: 6, cache_read: 0.38 }, - limit: { context: 200000, input: 100000, output: 100000 }, - }, - "openai/gpt-5.4-pro": { - id: "openai/gpt-5.4-pro", - name: "GPT 5.4 Pro", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-05", - last_updated: "2026-03-06", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 30, output: 180 }, - limit: { context: 1050000, input: 922000, output: 128000 }, - }, - "openai/gpt-5.3-chat": { - id: "openai/gpt-5.3-chat", - name: "GPT-5.3 Chat", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-03", - last_updated: "2026-03-06", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 128000, input: 111616, output: 16384 }, - }, - "openai/gpt-oss-safeguard-20b": { - id: "openai/gpt-oss-safeguard-20b", - name: "gpt-oss-safeguard-20b", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.08, output: 0.3, cache_read: 0.04 }, - limit: { context: 131072, input: 65536, output: 65536 }, - }, - "openai/gpt-5.1-codex": { - id: "openai/gpt-5.1-codex", - name: "GPT-5.1-Codex", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.13 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "openai/gpt-5.2-pro": { - id: "openai/gpt-5.2-pro", - name: "GPT 5.2 ", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 21, output: 168 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "openai/gpt-5.4-nano": { - id: "openai/gpt-5.4-nano", - name: "GPT 5.4 Nano", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-17", - last_updated: "2026-03-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.19999999999999998, output: 1.25, cache_read: 0.02 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "openai/gpt-oss-20b": { - id: "openai/gpt-oss-20b", - name: "GPT OSS 20B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.3 }, - limit: { context: 131072, input: 98304, output: 32768 }, - }, - "openai/gpt-3.5-turbo-instruct": { - id: "openai/gpt-3.5-turbo-instruct", - name: "GPT-3.5 Turbo Instruct", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2021-09", - release_date: "2023-03-01", - last_updated: "2023-03-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.5, output: 2 }, - limit: { context: 8192, input: 4096, output: 4096 }, - }, - "openai/gpt-5.4-mini": { - id: "openai/gpt-5.4-mini", - name: "GPT 5.4 Mini", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-17", - last_updated: "2026-03-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.75, output: 4.5, cache_read: 0.075 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "openai/gpt-5.1-instant": { - id: "openai/gpt-5.1-instant", - name: "GPT-5.1 Instant", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image", "pdf"], output: ["text", "image"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.13 }, - limit: { context: 128000, input: 111616, output: 16384 }, - }, - "openai/gpt-4o": { - id: "openai/gpt-4o", - name: "GPT-4o", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-09", - release_date: "2024-05-13", - last_updated: "2024-08-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10, cache_read: 1.25 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-5-nano": { - id: "openai/gpt-5-nano", - name: "GPT-5 Nano", - family: "gpt-nano", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.4, cache_read: 0.005 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "openai/gpt-5-mini": { - id: "openai/gpt-5-mini", - name: "GPT-5 Mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.025 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "openai/o3-mini": { - id: "openai/o3-mini", - name: "o3-mini", - family: "o-mini", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05", - release_date: "2024-12-20", - last_updated: "2025-01-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-4.1-mini": { - id: "openai/gpt-4.1-mini", - name: "GPT-4.1 mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.6, cache_read: 0.1 }, - limit: { context: 1047576, output: 32768 }, - }, - "openai/o4-mini": { - id: "openai/o4-mini", - name: "o4-mini", - family: "o-mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05", - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.28 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-5": { - id: "openai/gpt-5", - name: "GPT-5", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "openai/gpt-4-turbo": { - id: "openai/gpt-4-turbo", - name: "GPT-4 Turbo", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - knowledge: "2023-12", - release_date: "2023-11-06", - last_updated: "2024-04-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 10, output: 30 }, - limit: { context: 128000, output: 4096 }, - }, - "openai/gpt-4.1": { - id: "openai/gpt-4.1", - name: "GPT-4.1", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 1047576, output: 32768 }, - }, - "openai/gpt-4.1-nano": { - id: "openai/gpt-4.1-nano", - name: "GPT-4.1 nano", - family: "gpt-nano", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.03 }, - limit: { context: 1047576, output: 32768 }, - }, - "openai/o3": { - id: "openai/o3", - name: "o3", - family: "o", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05", - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/o1": { - id: "openai/o1", - name: "o1", - family: "o", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2023-09", - release_date: "2024-12-05", - last_updated: "2024-12-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 60, cache_read: 7.5 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-4o-mini": { - id: "openai/gpt-4o-mini", - name: "GPT-4o mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-09", - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6, cache_read: 0.08 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-5-codex": { - id: "openai/gpt-5-codex", - name: "GPT-5-Codex", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "morph/morph-v3-large": { - id: "morph/morph-v3-large", - name: "Morph v3 Large", - family: "morph", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-08-15", - last_updated: "2024-08-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.9, output: 1.9 }, - limit: { context: 32000, output: 32000 }, - }, - "morph/morph-v3-fast": { - id: "morph/morph-v3-fast", - name: "Morph v3 Fast", - family: "morph", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-08-15", - last_updated: "2024-08-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 1.2 }, - limit: { context: 16000, output: 16000 }, - }, - "cohere/embed-v4.0": { - id: "cohere/embed-v4.0", - name: "Embed v4.0", - family: "cohere-embed", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-04-15", - last_updated: "2025-04-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.12, output: 0 }, - limit: { context: 8192, output: 1536 }, - }, - "cohere/command-a": { - id: "cohere/command-a", - name: "Command A", - family: "command", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-03-13", - last_updated: "2025-03-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10 }, - limit: { context: 256000, output: 8000 }, - }, - "minimax/minimax-m2.1-lightning": { - id: "minimax/minimax-m2.1-lightning", - name: "MiniMax M2.1 Lightning", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-10-27", - last_updated: "2025-10-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.4, cache_read: 0.03, cache_write: 0.38 }, - limit: { context: 204800, output: 131072 }, - }, - "minimax/minimax-m2.5-highspeed": { - id: "minimax/minimax-m2.5-highspeed", - name: "MiniMax M2.5 High Speed", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-03-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 2.4, cache_read: 0.03, cache_write: 0.375 }, - limit: { context: 0, output: 0 }, - }, - "minimax/minimax-m2.1": { - id: "minimax/minimax-m2.1", - name: "MiniMax M2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-10-27", - last_updated: "2025-10-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2, cache_read: 0.03, cache_write: 0.38 }, - limit: { context: 204800, output: 131072 }, - }, - "minimax/minimax-m2.7": { - id: "minimax/minimax-m2.7", - name: "Minimax M2.7", - family: "minimax", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.06, cache_write: 0.375 }, - limit: { context: 204800, output: 131000 }, - }, - "minimax/minimax-m2.7-highspeed": { - id: "minimax/minimax-m2.7-highspeed", - name: "MiniMax M2.7 High Speed", - family: "minimax", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.4, cache_read: 0.06, cache_write: 0.375 }, - limit: { context: 204800, output: 131100 }, - }, - "minimax/minimax-m2": { - id: "minimax/minimax-m2", - name: "MiniMax M2", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-10-27", - last_updated: "2025-10-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 1.15, cache_read: 0.03, cache_write: 0.38 }, - limit: { context: 262114, output: 262114 }, - }, - "minimax/minimax-m2.5": { - id: "minimax/minimax-m2.5", - name: "MiniMax M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2, cache_read: 0.03, cache_write: 0.375 }, - limit: { context: 204800, output: 131000 }, - }, - "recraft/recraft-v2": { - id: "recraft/recraft-v2", - name: "Recraft V2", - family: "recraft", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-03", - last_updated: "2024-03", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 512, output: 0 }, - }, - "recraft/recraft-v3": { - id: "recraft/recraft-v3", - name: "Recraft V3", - family: "recraft", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-10", - last_updated: "2024-10", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 512, output: 0 }, - }, - "perplexity/sonar-reasoning-pro": { - id: "perplexity/sonar-reasoning-pro", - name: "Sonar Reasoning Pro", - family: "sonar-reasoning", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2025-09", - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8 }, - limit: { context: 127000, output: 8000 }, - }, - "perplexity/sonar": { - id: "perplexity/sonar", - name: "Sonar", - family: "sonar", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-02", - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 1 }, - limit: { context: 127000, output: 8000 }, - }, - "perplexity/sonar-reasoning": { - id: "perplexity/sonar-reasoning", - name: "Sonar Reasoning", - family: "sonar-reasoning", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2025-09", - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5 }, - limit: { context: 127000, output: 8000 }, - }, - "perplexity/sonar-pro": { - id: "perplexity/sonar-pro", - name: "Sonar Pro", - family: "sonar-pro", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-09", - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 200000, output: 8000 }, - }, - "anthropic/claude-sonnet-4.6": { - id: "anthropic/claude-sonnet-4.6", - name: "Claude Sonnet 4.6", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2025-08", - release_date: "2026-02-17", - last_updated: "2026-02-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 3, - output: 15, - cache_read: 0.3, - cache_write: 3.75, - context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, - }, - limit: { context: 1000000, output: 128000 }, - }, - "anthropic/claude-haiku-4.5": { - id: "anthropic/claude-haiku-4.5", - name: "Claude Haiku 4.5", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2025-02-28", - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-opus-4.5": { - id: "anthropic/claude-opus-4.5", - name: "Claude Opus 4.5", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-24", - last_updated: "2025-11-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 18.75 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-3.5-sonnet-20240620": { - id: "anthropic/claude-3.5-sonnet-20240620", - name: "Claude 3.5 Sonnet (2024-06-20)", - family: "claude-sonnet", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-06-20", - last_updated: "2024-06-20", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 200000, output: 8192 }, - }, - "anthropic/claude-opus-4.6": { - id: "anthropic/claude-opus-4.6", - name: "Claude Opus 4.6", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: true, - temperature: true, - knowledge: "2025-05", - release_date: "2026-02", - last_updated: "2026-02", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 1000000, output: 128000 }, - }, - "anthropic/claude-sonnet-4.5": { - id: "anthropic/claude-sonnet-4.5", - name: "Claude Sonnet 4.5", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-sonnet-4": { - id: "anthropic/claude-sonnet-4", - name: "Claude Sonnet 4", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-3-opus": { - id: "anthropic/claude-3-opus", - name: "Claude Opus 3", - family: "claude-opus", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-08-31", - release_date: "2024-02-29", - last_updated: "2024-02-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 4096 }, - }, - "anthropic/claude-opus-4": { - id: "anthropic/claude-opus-4", - name: "Claude Opus 4", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "anthropic/claude-3.5-haiku": { - id: "anthropic/claude-3.5-haiku", - name: "Claude Haiku 3.5", - family: "claude-haiku", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07-31", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, - limit: { context: 200000, output: 8192 }, - }, - "anthropic/claude-3-haiku": { - id: "anthropic/claude-3-haiku", - name: "Claude Haiku 3", - family: "claude-haiku", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-08-31", - release_date: "2024-03-13", - last_updated: "2024-03-13", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1.25, cache_read: 0.03, cache_write: 0.3 }, - limit: { context: 200000, output: 4096 }, - }, - "anthropic/claude-opus-4.1": { - id: "anthropic/claude-opus-4.1", - name: "Claude Opus 4", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "anthropic/claude-3.7-sonnet": { - id: "anthropic/claude-3.7-sonnet", - name: "Claude Sonnet 3.7", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10-31", - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-3.5-sonnet": { - id: "anthropic/claude-3.5-sonnet", - name: "Claude Sonnet 3.5 v2", - family: "claude-sonnet", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04-30", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 8192 }, - }, - "xai/grok-4-fast-reasoning": { - id: "xai/grok-4-fast-reasoning", - name: "Grok 4 Fast Reasoning", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 256000 }, - }, - "xai/grok-4.20-non-reasoning-beta": { - id: "xai/grok-4.20-non-reasoning-beta", - name: "Grok 4.20 Beta Non-Reasoning", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2026-03-11", - last_updated: "2026-03-13", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6, cache_read: 0.19999999999999998 }, - limit: { context: 2000000, output: 2000000 }, - }, - "xai/grok-4.20-non-reasoning": { - id: "xai/grok-4.20-non-reasoning", - name: "Grok 4.20 Non-Reasoning", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2026-03-09", - last_updated: "2026-03-23", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6, cache_read: 0.19999999999999998 }, - limit: { context: 2000000, output: 2000000 }, - }, - "xai/grok-imagine-image": { - id: "xai/grok-imagine-image", - name: "Grok Imagine Image", - family: "grok", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2026-01-28", - last_updated: "2026-02-19", - modalities: { input: ["text"], output: ["text", "image"] }, - open_weights: false, - limit: { context: 0, output: 0 }, - }, - "xai/grok-4.20-reasoning": { - id: "xai/grok-4.20-reasoning", - name: "Grok 4.20 Reasoning", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-09", - last_updated: "2026-03-23", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6, cache_read: 0.19999999999999998 }, - limit: { context: 2000000, output: 2000000 }, - }, - "xai/grok-4.1-fast-reasoning": { - id: "xai/grok-4.1-fast-reasoning", - name: "Grok 4.1 Fast Reasoning", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 30000 }, - }, - "xai/grok-4.1-fast-non-reasoning": { - id: "xai/grok-4.1-fast-non-reasoning", - name: "Grok 4.1 Fast Non-Reasoning", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 30000 }, - }, - "xai/grok-4.20-reasoning-beta": { - id: "xai/grok-4.20-reasoning-beta", - name: "Grok 4.20 Beta Reasoning", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-11", - last_updated: "2026-03-13", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6, cache_read: 0.19999999999999998 }, - limit: { context: 2000000, output: 2000000 }, - }, - "xai/grok-4.20-multi-agent": { - id: "xai/grok-4.20-multi-agent", - name: "Grok 4.20 Multi-Agent", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-09", - last_updated: "2026-03-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6, cache_read: 0.19999999999999998 }, - limit: { context: 2000000, output: 2000000 }, - }, - "xai/grok-imagine-image-pro": { - id: "xai/grok-imagine-image-pro", - name: "Grok Imagine Image Pro", - family: "grok", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2026-01-28", - last_updated: "2026-02-19", - modalities: { input: ["text"], output: ["text", "image"] }, - open_weights: false, - limit: { context: 0, output: 0 }, - }, - "xai/grok-4.20-multi-agent-beta": { - id: "xai/grok-4.20-multi-agent-beta", - name: "Grok 4.20 Multi Agent Beta", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-11", - last_updated: "2026-03-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6, cache_read: 0.19999999999999998 }, - limit: { context: 2000000, output: 2000000 }, - }, - "xai/grok-3-fast": { - id: "xai/grok-3-fast", - name: "Grok 3 Fast", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 1.25 }, - limit: { context: 131072, output: 8192 }, - }, - "xai/grok-4-fast-non-reasoning": { - id: "xai/grok-4-fast-non-reasoning", - name: "Grok 4 Fast (Non-Reasoning)", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-09-19", - last_updated: "2025-09-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 30000 }, - }, - "xai/grok-3-mini": { - id: "xai/grok-3-mini", - name: "Grok 3 Mini", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.5, reasoning: 0.5, cache_read: 0.075 }, - limit: { context: 131072, output: 8192 }, - }, - "xai/grok-4": { - id: "xai/grok-4", - name: "Grok 4", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, reasoning: 15, cache_read: 0.75 }, - limit: { context: 256000, output: 64000 }, - }, - "xai/grok-3-mini-fast": { - id: "xai/grok-3-mini-fast", - name: "Grok 3 Mini Fast", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 4, reasoning: 4, cache_read: 0.15 }, - limit: { context: 131072, output: 8192 }, - }, - "xai/grok-code-fast-1": { - id: "xai/grok-code-fast-1", - name: "Grok Code Fast 1", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2025-08-28", - last_updated: "2025-08-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.5, cache_read: 0.02 }, - limit: { context: 256000, output: 10000 }, - }, - "xai/grok-3": { - id: "xai/grok-3", - name: "Grok 3", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.75 }, - limit: { context: 131072, output: 8192 }, - }, - "xai/grok-2-vision": { - id: "xai/grok-2-vision", - name: "Grok 2 Vision", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2024-08-20", - last_updated: "2024-08-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 10, cache_read: 2 }, - limit: { context: 8192, output: 4096 }, - }, - }, - }, - openai: { - id: "openai", - env: ["OPENAI_API_KEY"], - npm: "@ai-sdk/openai", - name: "OpenAI", - doc: "https://platform.openai.com/docs/models", - models: { - "gpt-4o-2024-11-20": { - id: "gpt-4o-2024-11-20", - name: "GPT-4o (2024-11-20)", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-09", - release_date: "2024-11-20", - last_updated: "2024-11-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10, cache_read: 1.25 }, - limit: { context: 128000, output: 16384 }, - }, - "gpt-5.3-codex": { - id: "gpt-5.3-codex", - name: "GPT-5.3 Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "gpt-5-codex": { - id: "gpt-5-codex", - name: "GPT-5-Codex", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "gpt-5-pro": { - id: "gpt-5-pro", - name: "GPT-5 Pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-10-06", - last_updated: "2025-10-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 120 }, - limit: { context: 400000, input: 272000, output: 272000 }, - }, - "gpt-4o-mini": { - id: "gpt-4o-mini", - name: "GPT-4o mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-09", - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6, cache_read: 0.08 }, - limit: { context: 128000, output: 16384 }, - }, - "text-embedding-ada-002": { - id: "text-embedding-ada-002", - name: "text-embedding-ada-002", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2022-12", - release_date: "2022-12-15", - last_updated: "2022-12-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0 }, - limit: { context: 8192, output: 1536 }, - }, - "gpt-5-chat-latest": { - id: "gpt-5-chat-latest", - name: "GPT-5 Chat (latest)", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: true, - temperature: true, - knowledge: "2024-09-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "codex-mini-latest": { - id: "codex-mini-latest", - name: "Codex Mini", - family: "gpt-codex-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-04", - release_date: "2025-05-16", - last_updated: "2025-05-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.5, output: 6, cache_read: 0.375 }, - limit: { context: 200000, output: 100000 }, - }, - "gpt-5.1-codex-max": { - id: "gpt-5.1-codex-max", - name: "GPT-5.1 Codex Max", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "gpt-4o-2024-05-13": { - id: "gpt-4o-2024-05-13", - name: "GPT-4o (2024-05-13)", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-09", - release_date: "2024-05-13", - last_updated: "2024-05-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 15 }, - limit: { context: 128000, output: 4096 }, - }, - "gpt-5.2-chat-latest": { - id: "gpt-5.2-chat-latest", - name: "GPT-5.2 Chat", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 128000, output: 16384 }, - }, - "gpt-5.2-codex": { - id: "gpt-5.2-codex", - name: "GPT-5.2 Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "o3-deep-research": { - id: "o3-deep-research", - name: "o3-deep-research", - family: "o", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05", - release_date: "2024-06-26", - last_updated: "2024-06-26", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 10, output: 40, cache_read: 2.5 }, - limit: { context: 200000, output: 100000 }, - }, - o1: { - id: "o1", - name: "o1", - family: "o", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2023-09", - release_date: "2024-12-05", - last_updated: "2024-12-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 60, cache_read: 7.5 }, - limit: { context: 200000, output: 100000 }, - }, - "gpt-5.1": { - id: "gpt-5.1", - name: "GPT-5.1", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.13 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "o4-mini-deep-research": { - id: "o4-mini-deep-research", - name: "o4-mini-deep-research", - family: "o-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05", - release_date: "2024-06-26", - last_updated: "2024-06-26", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 200000, output: 100000 }, - }, - "gpt-5.3-codex-spark": { - id: "gpt-5.3-codex-spark", - name: "GPT-5.3 Codex Spark", - family: "gpt-codex-spark", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 128000, input: 100000, output: 32000 }, - }, - o3: { - id: "o3", - name: "o3", - family: "o", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05", - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 200000, output: 100000 }, - }, - "text-embedding-3-small": { - id: "text-embedding-3-small", - name: "text-embedding-3-small", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2024-01", - release_date: "2024-01-25", - last_updated: "2024-01-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.02, output: 0 }, - limit: { context: 8191, output: 1536 }, - }, - "gpt-4.1-nano": { - id: "gpt-4.1-nano", - name: "GPT-4.1 nano", - family: "gpt-nano", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.03 }, - limit: { context: 1047576, output: 32768 }, - }, - "text-embedding-3-large": { - id: "text-embedding-3-large", - name: "text-embedding-3-large", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2024-01", - release_date: "2024-01-25", - last_updated: "2024-01-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.13, output: 0 }, - limit: { context: 8191, output: 3072 }, - }, - "gpt-3.5-turbo": { - id: "gpt-3.5-turbo", - name: "GPT-3.5-turbo", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - knowledge: "2021-09-01", - release_date: "2023-03-01", - last_updated: "2023-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 1.5, cache_read: 1.25 }, - limit: { context: 16385, output: 4096 }, - }, - "gpt-5.1-codex-mini": { - id: "gpt-5.1-codex-mini", - name: "GPT-5.1 Codex mini", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.025 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "gpt-5.2": { - id: "gpt-5.2", - name: "GPT-5.2", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "gpt-4.1": { - id: "gpt-4.1", - name: "GPT-4.1", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 1047576, output: 32768 }, - }, - "o3-pro": { - id: "o3-pro", - name: "o3-pro", - family: "o-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05", - release_date: "2025-06-10", - last_updated: "2025-06-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 20, output: 80 }, - limit: { context: 200000, output: 100000 }, - }, - "gpt-4-turbo": { - id: "gpt-4-turbo", - name: "GPT-4 Turbo", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - knowledge: "2023-12", - release_date: "2023-11-06", - last_updated: "2024-04-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 10, output: 30 }, - limit: { context: 128000, output: 4096 }, - }, - "gpt-5": { - id: "gpt-5", - name: "GPT-5", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "o4-mini": { - id: "o4-mini", - name: "o4-mini", - family: "o-mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05", - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.28 }, - limit: { context: 200000, output: 100000 }, - }, - "gpt-4.1-mini": { - id: "gpt-4.1-mini", - name: "GPT-4.1 mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.6, cache_read: 0.1 }, - limit: { context: 1047576, output: 32768 }, - }, - "gpt-5.4": { - id: "gpt-5.4", - name: "GPT-5.4", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 2.5, - output: 15, - cache_read: 0.25, - context_over_200k: { input: 5, output: 22.5, cache_read: 0.5 }, - }, - limit: { context: 1050000, input: 922000, output: 128000 }, - }, - "o1-preview": { - id: "o1-preview", - name: "o1-preview", - family: "o", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2023-09", - release_date: "2024-09-12", - last_updated: "2024-09-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 60, cache_read: 7.5 }, - limit: { context: 128000, output: 32768 }, - }, - "gpt-5.4-pro": { - id: "gpt-5.4-pro", - name: "GPT-5.4 Pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 30, output: 180, context_over_200k: { input: 60, output: 270 } }, - limit: { context: 1050000, input: 922000, output: 128000 }, - }, - "o1-pro": { - id: "o1-pro", - name: "o1-pro", - family: "o-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2023-09", - release_date: "2025-03-19", - last_updated: "2025-03-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 150, output: 600 }, - limit: { context: 200000, output: 100000 }, - }, - "gpt-5.1-codex": { - id: "gpt-5.1-codex", - name: "GPT-5.1 Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "gpt-5.2-pro": { - id: "gpt-5.2-pro", - name: "GPT-5.2 Pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: false, - knowledge: "2025-08-31", - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 21, output: 168 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "o3-mini": { - id: "o3-mini", - name: "o3-mini", - family: "o-mini", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05", - release_date: "2024-12-20", - last_updated: "2025-01-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, - limit: { context: 200000, output: 100000 }, - }, - "gpt-4o-2024-08-06": { - id: "gpt-4o-2024-08-06", - name: "GPT-4o (2024-08-06)", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-09", - release_date: "2024-08-06", - last_updated: "2024-08-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10, cache_read: 1.25 }, - limit: { context: 128000, output: 16384 }, - }, - "gpt-5-mini": { - id: "gpt-5-mini", - name: "GPT-5 Mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.025 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "gpt-5.4-nano": { - id: "gpt-5.4-nano", - name: "GPT-5.4 nano", - family: "gpt-nano", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-17", - last_updated: "2026-03-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.25, cache_read: 0.02 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "gpt-5.1-chat-latest": { - id: "gpt-5.1-chat-latest", - name: "GPT-5.1 Chat", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 128000, output: 16384 }, - }, - "gpt-4": { - id: "gpt-4", - name: "GPT-4", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - knowledge: "2023-11", - release_date: "2023-11-06", - last_updated: "2024-04-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 30, output: 60 }, - limit: { context: 8192, output: 8192 }, - }, - "gpt-5-nano": { - id: "gpt-5-nano", - name: "GPT-5 Nano", - family: "gpt-nano", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.4, cache_read: 0.005 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "o1-mini": { - id: "o1-mini", - name: "o1-mini", - family: "o-mini", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: true, - temperature: false, - knowledge: "2023-09", - release_date: "2024-09-12", - last_updated: "2024-09-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, - limit: { context: 128000, output: 65536 }, - }, - "gpt-4o": { - id: "gpt-4o", - name: "GPT-4o", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2023-09", - release_date: "2024-05-13", - last_updated: "2024-08-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10, cache_read: 1.25 }, - limit: { context: 128000, output: 16384 }, - }, - "gpt-5.4-mini": { - id: "gpt-5.4-mini", - name: "GPT-5.4 mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-17", - last_updated: "2026-03-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.75, output: 4.5, cache_read: 0.075 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - }, - }, - moark: { - id: "moark", - env: ["MOARK_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://moark.com/v1", - name: "Moark", - doc: "https://moark.com/docs/openapi/v1#tag/%E6%96%87%E6%9C%AC%E7%94%9F%E6%88%90", - models: { - "GLM-4.7": { - id: "GLM-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 3.5, output: 14 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMax-M2.1": { - id: "MiniMax-M2.1", - name: "MiniMax-M2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.1, output: 8.4 }, - limit: { context: 204800, output: 131072 }, - }, - }, - }, - morph: { - id: "morph", - env: ["MORPH_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.morphllm.com/v1", - name: "Morph", - doc: "https://docs.morphllm.com/api-reference/introduction", - models: { - auto: { - id: "auto", - name: "Auto", - family: "auto", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-06-01", - last_updated: "2024-06-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.85, output: 1.55 }, - limit: { context: 32000, output: 32000 }, - }, - "morph-v3-fast": { - id: "morph-v3-fast", - name: "Morph v3 Fast", - family: "morph", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-08-15", - last_updated: "2024-08-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 1.2 }, - limit: { context: 16000, output: 16000 }, - }, - "morph-v3-large": { - id: "morph-v3-large", - name: "Morph v3 Large", - family: "morph", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2024-08-15", - last_updated: "2024-08-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.9, output: 1.9 }, - limit: { context: 32000, output: 32000 }, - }, - }, - }, - cohere: { - id: "cohere", - env: ["COHERE_API_KEY"], - npm: "@ai-sdk/cohere", - name: "Cohere", - doc: "https://docs.cohere.com/docs/models", - models: { - "c4ai-aya-expanse-32b": { - id: "c4ai-aya-expanse-32b", - name: "Aya Expanse 32B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-10-24", - last_updated: "2024-10-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 128000, output: 4000 }, - }, - "command-a-03-2025": { - id: "command-a-03-2025", - name: "Command A", - family: "command-a", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-06-01", - release_date: "2025-03-13", - last_updated: "2025-03-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.5, output: 10 }, - limit: { context: 256000, output: 8000 }, - }, - "command-r7b-arabic-02-2025": { - id: "command-r7b-arabic-02-2025", - name: "Command R7B Arabic", - family: "command-r", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-06-01", - release_date: "2025-02-27", - last_updated: "2025-02-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.0375, output: 0.15 }, - limit: { context: 128000, output: 4000 }, - }, - "command-a-translate-08-2025": { - id: "command-a-translate-08-2025", - name: "Command A Translate", - family: "command-a", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-06-01", - release_date: "2025-08-28", - last_updated: "2025-08-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.5, output: 10 }, - limit: { context: 8000, output: 8000 }, - }, - "command-r-08-2024": { - id: "command-r-08-2024", - name: "Command R", - family: "command-r", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-06-01", - release_date: "2024-08-30", - last_updated: "2024-08-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 128000, output: 4000 }, - }, - "command-r-plus-08-2024": { - id: "command-r-plus-08-2024", - name: "Command R+", - family: "command-r", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-06-01", - release_date: "2024-08-30", - last_updated: "2024-08-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.5, output: 10 }, - limit: { context: 128000, output: 4000 }, - }, - "command-a-reasoning-08-2025": { - id: "command-a-reasoning-08-2025", - name: "Command A Reasoning", - family: "command-a", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-06-01", - release_date: "2025-08-21", - last_updated: "2025-08-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.5, output: 10 }, - limit: { context: 256000, output: 32000 }, - }, - "c4ai-aya-expanse-8b": { - id: "c4ai-aya-expanse-8b", - name: "Aya Expanse 8B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-10-24", - last_updated: "2024-10-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 8000, output: 4000 }, - }, - "c4ai-aya-vision-8b": { - id: "c4ai-aya-vision-8b", - name: "Aya Vision 8B", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-03-04", - last_updated: "2025-05-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - limit: { context: 16000, output: 4000 }, - }, - "c4ai-aya-vision-32b": { - id: "c4ai-aya-vision-32b", - name: "Aya Vision 32B", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-03-04", - last_updated: "2025-05-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - limit: { context: 16000, output: 4000 }, - }, - "command-r7b-12-2024": { - id: "command-r7b-12-2024", - name: "Command R7B", - family: "command-r", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-06-01", - release_date: "2024-02-27", - last_updated: "2024-02-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.0375, output: 0.15 }, - limit: { context: 128000, output: 4000 }, - }, - "command-a-vision-07-2025": { - id: "command-a-vision-07-2025", - name: "Command A Vision", - family: "command-a", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-06-01", - release_date: "2025-07-31", - last_updated: "2025-07-31", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 2.5, output: 10 }, - limit: { context: 128000, output: 8000 }, - }, - }, - }, - v0: { - id: "v0", - env: ["V0_API_KEY"], - npm: "@ai-sdk/vercel", - name: "v0", - doc: "https://sdk.vercel.ai/providers/ai-sdk-providers/vercel", - models: { - "v0-1.0-md": { - id: "v0-1.0-md", - name: "v0-1.0-md", - family: "v0", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 128000, output: 32000 }, - }, - "v0-1.5-md": { - id: "v0-1.5-md", - name: "v0-1.5-md", - family: "v0", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-06-09", - last_updated: "2025-06-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 128000, output: 32000 }, - }, - "v0-1.5-lg": { - id: "v0-1.5-lg", - name: "v0-1.5-lg", - family: "v0", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-06-09", - last_updated: "2025-06-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75 }, - limit: { context: 512000, output: 32000 }, - }, - }, - }, - minimax: { - id: "minimax", - env: ["MINIMAX_API_KEY"], - npm: "@ai-sdk/anthropic", - api: "https://api.minimax.io/anthropic/v1", - name: "MiniMax (minimax.io)", - doc: "https://platform.minimax.io/docs/guides/quickstart", - models: { - "MiniMax-M2.5": { - id: "MiniMax-M2.5", - name: "MiniMax-M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.03, cache_write: 0.375 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMax-M2.7-highspeed": { - id: "MiniMax-M2.7-highspeed", - name: "MiniMax-M2.7-highspeed", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.4, cache_read: 0.06, cache_write: 0.375 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMax-M2": { - id: "MiniMax-M2", - name: "MiniMax-M2", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-10-27", - last_updated: "2025-10-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 196608, output: 128000 }, - }, - "MiniMax-M2.5-highspeed": { - id: "MiniMax-M2.5-highspeed", - name: "MiniMax-M2.5-highspeed", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-13", - last_updated: "2026-02-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.4, cache_read: 0.06, cache_write: 0.375 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMax-M2.1": { - id: "MiniMax-M2.1", - name: "MiniMax-M2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMax-M2.7": { - id: "MiniMax-M2.7", - name: "MiniMax-M2.7", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.06, cache_write: 0.375 }, - limit: { context: 204800, output: 131072 }, - }, - }, - }, - vultr: { - id: "vultr", - env: ["VULTR_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.vultrinference.com/v1", - name: "Vultr", - doc: "https://api.vultrinference.com/", - models: { - "Llama-3_1-Nemotron-Ultra-253B-v1": { - id: "Llama-3_1-Nemotron-Ultra-253B-v1", - name: "Llama 3.1 Nemotron Ultra 253B v1", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 1.8 }, - limit: { context: 32000, output: 4096 }, - }, - "DeepSeek-R1-Distill-Qwen-32B": { - id: "DeepSeek-R1-Distill-Qwen-32B", - name: "DeepSeek R1 Distill Qwen 32B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.3 }, - limit: { context: 130000, output: 4096 }, - }, - "MiniMax-M2.5": { - id: "MiniMax-M2.5", - name: "MiniMax M2.5", - family: "minimax", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 196000, output: 4096 }, - }, - "Kimi-K2.5": { - id: "Kimi-K2.5", - name: "Kimi K2 Instruct", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.75 }, - limit: { context: 261000, output: 32768 }, - }, - "gpt-oss-120b": { - id: "gpt-oss-120b", - name: "GPT OSS 120B", - family: "gpt-oss", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-06-23", - last_updated: "2025-06-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 130000, output: 8192 }, - }, - "DeepSeek-V3.2": { - id: "DeepSeek-V3.2", - name: "DeepSeek V3.2", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 1.65 }, - limit: { context: 163000, output: 4096 }, - }, - "GLM-5-FP8": { - id: "GLM-5-FP8", - name: "GLM 5 FP8", - family: "glm", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.85, output: 3.1 }, - limit: { context: 202000, output: 131072 }, - }, - "NVIDIA-Nemotron-3-Super-120B-A12B-NVFP4": { - id: "NVIDIA-Nemotron-3-Super-120B-A12B-NVFP4", - name: "NVIDIA Nemotron 3 Super 120B A12B NVFP4", - family: "nemotron", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 260000, output: 8192 }, - }, - "DeepSeek-R1-Distill-Llama-70B": { - id: "DeepSeek-R1-Distill-Llama-70B", - name: "DeepSeek R1 Distill Llama 70B", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2, output: 2 }, - limit: { context: 130000, output: 4096 }, - }, - }, - }, - baseten: { - id: "baseten", - env: ["BASETEN_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://inference.baseten.co/v1", - name: "Baseten", - doc: "https://docs.baseten.co/development/model-apis/overview", - models: { - "zai-org/GLM-4.6": { - id: "zai-org/GLM-4.6", - name: "GLM 4.6", - family: "glm", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-08-31", - release_date: "2025-09-16", - last_updated: "2025-09-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2 }, - limit: { context: 200000, output: 200000 }, - }, - "zai-org/GLM-4.7": { - id: "zai-org/GLM-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2 }, - limit: { context: 204800, output: 131072 }, - }, - "zai-org/GLM-5": { - id: "zai-org/GLM-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2026-01", - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.95, output: 3.15 }, - limit: { context: 202752, output: 131072 }, - }, - "nvidia/Nemotron-120B-A12B": { - id: "nvidia/Nemotron-120B-A12B", - name: "Nemotron 3 Super", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2026-02", - release_date: "2026-03-11", - last_updated: "2026-03-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.75 }, - limit: { context: 262144, output: 32678 }, - }, - "MiniMaxAI/MiniMax-M2.5": { - id: "MiniMaxAI/MiniMax-M2.5", - name: "MiniMax-M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2026-01", - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 204000, output: 204000 }, - }, - "deepseek-ai/DeepSeek-V3.1": { - id: "deepseek-ai/DeepSeek-V3.1", - name: "DeepSeek V3.1", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-25", - last_updated: "2025-08-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 1.5 }, - limit: { context: 164000, output: 131000 }, - }, - "deepseek-ai/DeepSeek-V3.2": { - id: "deepseek-ai/DeepSeek-V3.2", - name: "DeepSeek V3.2", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-10", - release_date: "2025-12-01", - last_updated: "2026-03-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.45 }, - limit: { context: 163800, output: 131100 }, - status: "deprecated", - }, - "deepseek-ai/DeepSeek-V3-0324": { - id: "deepseek-ai/DeepSeek-V3-0324", - name: "DeepSeek V3 0324", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-12", - release_date: "2025-03-24", - last_updated: "2025-03-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.77, output: 0.77 }, - limit: { context: 164000, output: 131000 }, - }, - "moonshotai/Kimi-K2-Instruct-0905": { - id: "moonshotai/Kimi-K2-Instruct-0905", - name: "Kimi K2 Instruct 0905", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2025-09-05", - last_updated: "2026-03-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5 }, - limit: { context: 262144, output: 262144 }, - status: "deprecated", - }, - "moonshotai/Kimi-K2.5": { - id: "moonshotai/Kimi-K2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-12", - release_date: "2026-01-30", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3 }, - limit: { context: 262144, output: 8192 }, - }, - "moonshotai/Kimi-K2-Thinking": { - id: "moonshotai/Kimi-K2-Thinking", - name: "Kimi K2 Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-08", - release_date: "2025-11-06", - last_updated: "2026-03-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5 }, - limit: { context: 262144, output: 262144 }, - status: "deprecated", - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "GPT OSS 120B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.5 }, - limit: { context: 128000, output: 128000 }, - }, - }, - }, - jiekou: { - id: "jiekou", - env: ["JIEKOU_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.jiekou.ai/openai", - name: "Jiekou.AI", - doc: "https://docs.jiekou.ai/docs/support/quickstart?utm_source=github_models.dev", - models: { - "gpt-5-codex": { - id: "gpt-5-codex", - name: "gpt-5-codex", - family: "gpt-codex", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.125, output: 9 }, - limit: { context: 400000, output: 128000 }, - }, - "gpt-5-pro": { - id: "gpt-5-pro", - name: "gpt-5-pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 13.5, output: 108 }, - limit: { context: 400000, output: 272000 }, - }, - "claude-opus-4-5-20251101": { - id: "claude-opus-4-5-20251101", - name: "claude-opus-4-5-20251101", - family: "claude-opus", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 4.5, output: 22.5 }, - limit: { context: 200000, output: 65536 }, - }, - "grok-4-fast-reasoning": { - id: "grok-4-fast-reasoning", - name: "grok-4-fast-reasoning", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.18, output: 0.45 }, - limit: { context: 2000000, output: 2000000 }, - }, - "gemini-2.5-flash-lite-preview-09-2025": { - id: "gemini-2.5-flash-lite-preview-09-2025", - name: "gemini-2.5-flash-lite-preview-09-2025", - family: "gemini-flash-lite", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.09, output: 0.36 }, - limit: { context: 1048576, output: 65536 }, - }, - "gpt-5-chat-latest": { - id: "gpt-5-chat-latest", - name: "gpt-5-chat-latest", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.125, output: 9 }, - limit: { context: 400000, output: 128000 }, - }, - "gemini-2.5-pro-preview-06-05": { - id: "gemini-2.5-pro-preview-06-05", - name: "gemini-2.5-pro-preview-06-05", - family: "gemini-pro", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 1.125, output: 9 }, - limit: { context: 1048576, output: 200000 }, - }, - "gpt-5.1-codex-max": { - id: "gpt-5.1-codex-max", - name: "gpt-5.1-codex-max", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.125, output: 9 }, - limit: { context: 400000, output: 128000 }, - }, - "grok-4-0709": { - id: "grok-4-0709", - name: "grok-4-0709", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.7, output: 13.5 }, - limit: { context: 256000, output: 8192 }, - }, - "gpt-5.2-codex": { - id: "gpt-5.2-codex", - name: "gpt-5.2-codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14 }, - limit: { context: 400000, output: 128000 }, - }, - "claude-opus-4-6": { - id: "claude-opus-4-6", - name: "claude-opus-4-6", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02", - last_updated: "2026-02", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25 }, - limit: { context: 1000000, output: 128000 }, - }, - "grok-code-fast-1": { - id: "grok-code-fast-1", - name: "grok-code-fast-1", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.18, output: 1.35 }, - limit: { context: 256000, output: 256000 }, - }, - "gemini-2.5-flash-preview-05-20": { - id: "gemini-2.5-flash-preview-05-20", - name: "gemini-2.5-flash-preview-05-20", - family: "gemini-flash", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.135, output: 3.15 }, - limit: { context: 1048576, output: 200000 }, - }, - "grok-4-1-fast-reasoning": { - id: "grok-4-1-fast-reasoning", - name: "grok-4-1-fast-reasoning", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.18, output: 0.45 }, - limit: { context: 2000000, output: 2000000 }, - }, - "gemini-2.5-flash": { - id: "gemini-2.5-flash", - name: "gemini-2.5-flash", - family: "gemini-flash", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 2.25 }, - limit: { context: 1048576, output: 65535 }, - }, - "grok-4-1-fast-non-reasoning": { - id: "grok-4-1-fast-non-reasoning", - name: "grok-4-1-fast-non-reasoning", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.18, output: 0.45 }, - limit: { context: 2000000, output: 2000000 }, - }, - "gpt-5.1": { - id: "gpt-5.1", - name: "gpt-5.1", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02", - last_updated: "2026-02", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.125, output: 9 }, - limit: { context: 400000, output: 128000 }, - }, - o3: { - id: "o3", - name: "o3", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 10, output: 40 }, - limit: { context: 131072, output: 131072 }, - }, - "gemini-3-flash-preview": { - id: "gemini-3-flash-preview", - name: "gemini-3-flash-preview", - family: "gemini-flash", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 3 }, - limit: { context: 1048576, output: 65536 }, - }, - "claude-opus-4-20250514": { - id: "claude-opus-4-20250514", - name: "claude-opus-4-20250514", - family: "claude-opus", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 13.5, output: 67.5 }, - limit: { context: 200000, output: 32000 }, - }, - "claude-sonnet-4-5-20250929": { - id: "claude-sonnet-4-5-20250929", - name: "claude-sonnet-4-5-20250929", - family: "claude-sonnet", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.7, output: 13.5 }, - limit: { context: 200000, output: 64000 }, - }, - "gemini-2.5-flash-lite": { - id: "gemini-2.5-flash-lite", - name: "gemini-2.5-flash-lite", - family: "gemini-flash-lite", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.09, output: 0.36 }, - limit: { context: 1048576, output: 65535 }, - }, - "gpt-5.1-codex-mini": { - id: "gpt-5.1-codex-mini", - name: "gpt-5.1-codex-mini", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.225, output: 1.8 }, - limit: { context: 400000, output: 128000 }, - }, - "gpt-5.2": { - id: "gpt-5.2", - name: "gpt-5.2", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.575, output: 12.6 }, - limit: { context: 400000, output: 128000 }, - }, - "claude-haiku-4-5-20251001": { - id: "claude-haiku-4-5-20251001", - name: "claude-haiku-4-5-20251001", - family: "claude-haiku", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.9, output: 4.5 }, - limit: { context: 20000, output: 64000 }, - }, - "o4-mini": { - id: "o4-mini", - name: "o4-mini", - family: "o", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4 }, - limit: { context: 200000, output: 100000 }, - }, - "gemini-2.5-flash-lite-preview-06-17": { - id: "gemini-2.5-flash-lite-preview-06-17", - name: "gemini-2.5-flash-lite-preview-06-17", - family: "gemini-flash-lite", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "video", "image", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.09, output: 0.36 }, - limit: { context: 1048576, output: 65535 }, - }, - "gpt-5.1-codex": { - id: "gpt-5.1-codex", - name: "gpt-5.1-codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.125, output: 9 }, - limit: { context: 400000, output: 128000 }, - }, - "gpt-5.2-pro": { - id: "gpt-5.2-pro", - name: "gpt-5.2-pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 18.9, output: 151.2 }, - limit: { context: 400000, output: 128000 }, - }, - "gemini-3-pro-preview": { - id: "gemini-3-pro-preview", - name: "gemini-3-pro-preview", - family: "gemini-pro", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 1.8, output: 10.8 }, - limit: { context: 1048576, output: 65536 }, - }, - "o3-mini": { - id: "o3-mini", - name: "o3-mini", - family: "o", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4 }, - limit: { context: 131072, output: 131072 }, - }, - "grok-4-fast-non-reasoning": { - id: "grok-4-fast-non-reasoning", - name: "grok-4-fast-non-reasoning", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.18, output: 0.45 }, - limit: { context: 2000000, output: 2000000 }, - }, - "gpt-5-mini": { - id: "gpt-5-mini", - name: "gpt-5-mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.225, output: 1.8 }, - limit: { context: 400000, output: 128000 }, - }, - "claude-sonnet-4-20250514": { - id: "claude-sonnet-4-20250514", - name: "claude-sonnet-4-20250514", - family: "claude-sonnet", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.7, output: 13.5 }, - limit: { context: 200000, output: 64000 }, - }, - "claude-opus-4-1-20250805": { - id: "claude-opus-4-1-20250805", - name: "claude-opus-4-1-20250805", - family: "claude-opus", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 13.5, output: 67.5 }, - limit: { context: 200000, output: 32000 }, - }, - "gemini-2.5-pro": { - id: "gemini-2.5-pro", - name: "gemini-2.5-pro", - family: "gemini-pro", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, - open_weights: false, - cost: { input: 1.125, output: 9 }, - limit: { context: 1048576, output: 65535 }, - }, - "gpt-5-nano": { - id: "gpt-5-nano", - name: "gpt-5-nano", - family: "gpt-nano", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.045, output: 0.36 }, - limit: { context: 400000, output: 128000 }, - }, - "zai-org/glm-4.5": { - id: "zai-org/glm-4.5", - name: "GLM-4.5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2 }, - limit: { context: 131072, output: 98304 }, - }, - "zai-org/glm-4.7-flash": { - id: "zai-org/glm-4.7-flash", - name: "GLM-4.7-Flash", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.4 }, - limit: { context: 200000, output: 128000 }, - }, - "zai-org/glm-4.7": { - id: "zai-org/glm-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2 }, - limit: { context: 204800, output: 131072 }, - }, - "zai-org/glm-4.5v": { - id: "zai-org/glm-4.5v", - name: "GLM 4.5V", - family: "glmv", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 1.8 }, - limit: { context: 65536, output: 16384 }, - }, - "minimaxai/minimax-m1-80k": { - id: "minimaxai/minimax-m1-80k", - name: "MiniMax M1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.2 }, - limit: { context: 1000000, output: 40000 }, - }, - "deepseek/deepseek-v3.1": { - id: "deepseek/deepseek-v3.1", - name: "DeepSeek V3.1", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 1 }, - limit: { context: 163840, output: 32768 }, - }, - "deepseek/deepseek-r1-0528": { - id: "deepseek/deepseek-r1-0528", - name: "DeepSeek R1 0528", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.7, output: 2.5 }, - limit: { context: 163840, output: 32768 }, - }, - "deepseek/deepseek-v3-0324": { - id: "deepseek/deepseek-v3-0324", - name: "DeepSeek V3 0324", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.28, output: 1.14 }, - limit: { context: 163840, output: 163840 }, - }, - "moonshotai/kimi-k2-instruct": { - id: "moonshotai/kimi-k2-instruct", - name: "Kimi K2 Instruct", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.57, output: 2.3 }, - limit: { context: 131072, output: 131072 }, - }, - "moonshotai/kimi-k2-0905": { - id: "moonshotai/kimi-k2-0905", - name: "Kimi K2 0905", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5 }, - limit: { context: 262144, output: 262144 }, - }, - "moonshotai/kimi-k2.5": { - id: "moonshotai/kimi-k2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3 }, - limit: { context: 262144, output: 262144 }, - }, - "baidu/ernie-4.5-vl-424b-a47b": { - id: "baidu/ernie-4.5-vl-424b-a47b", - name: "ERNIE 4.5 VL 424B A47B", - family: "ernie", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.42, output: 1.25 }, - limit: { context: 123000, output: 16000 }, - }, - "baidu/ernie-4.5-300b-a47b-paddle": { - id: "baidu/ernie-4.5-300b-a47b-paddle", - name: "ERNIE 4.5 300B A47B", - family: "ernie", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.28, output: 1.1 }, - limit: { context: 123000, output: 12000 }, - }, - "qwen/qwen3-235b-a22b-instruct-2507": { - id: "qwen/qwen3-235b-a22b-instruct-2507", - name: "Qwen3 235B A22B Instruct 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.8 }, - limit: { context: 131072, output: 16384 }, - }, - "qwen/qwen3-32b-fp8": { - id: "qwen/qwen3-32b-fp8", - name: "Qwen3 32B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.45 }, - limit: { context: 40960, output: 20000 }, - }, - "qwen/qwen3-next-80b-a3b-thinking": { - id: "qwen/qwen3-next-80b-a3b-thinking", - name: "Qwen3 Next 80B A3B Thinking", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 1.5 }, - limit: { context: 65536, output: 65536 }, - }, - "qwen/qwen3-coder-480b-a35b-instruct": { - id: "qwen/qwen3-coder-480b-a35b-instruct", - name: "Qwen3 Coder 480B A35B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.29, output: 1.2 }, - limit: { context: 262144, output: 65536 }, - }, - "qwen/qwen3-30b-a3b-fp8": { - id: "qwen/qwen3-30b-a3b-fp8", - name: "Qwen3 30B A3B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.09, output: 0.45 }, - limit: { context: 40960, output: 20000 }, - }, - "qwen/qwen3-coder-next": { - id: "qwen/qwen3-coder-next", - name: "qwen/qwen3-coder-next", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02", - last_updated: "2026-02", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 1.5 }, - limit: { context: 262144, output: 65536 }, - }, - "qwen/qwen3-235b-a22b-thinking-2507": { - id: "qwen/qwen3-235b-a22b-thinking-2507", - name: "Qwen3 235B A22b Thinking 2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 3 }, - limit: { context: 131072, output: 131072 }, - }, - "qwen/qwen3-next-80b-a3b-instruct": { - id: "qwen/qwen3-next-80b-a3b-instruct", - name: "Qwen3 Next 80B A3B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 1.5 }, - limit: { context: 65536, output: 65536 }, - }, - "qwen/qwen3-235b-a22b-fp8": { - id: "qwen/qwen3-235b-a22b-fp8", - name: "Qwen3 235B A22B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 40960, output: 20000 }, - }, - "minimax/minimax-m2.1": { - id: "minimax/minimax-m2.1", - name: "Minimax M2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 204800, output: 131072 }, - }, - "xiaomimimo/mimo-v2-flash": { - id: "xiaomimimo/mimo-v2-flash", - name: "XiaomiMiMo/MiMo-V2-Flash", - family: "mimo", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 131072 }, - }, - }, - }, - meganova: { - id: "meganova", - env: ["MEGANOVA_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.meganova.ai/v1", - name: "Meganova", - doc: "https://docs.meganova.ai", - models: { - "zai-org/GLM-4.6": { - id: "zai-org/GLM-4.6", - name: "GLM-4.6", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.45, output: 1.9 }, - limit: { context: 202752, output: 131072 }, - }, - "zai-org/GLM-4.7": { - id: "zai-org/GLM-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 202752, output: 131072 }, - }, - "zai-org/GLM-5": { - id: "zai-org/GLM-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.8, output: 2.56 }, - limit: { context: 202752, output: 131072 }, - }, - "XiaomiMiMo/MiMo-V2-Flash": { - id: "XiaomiMiMo/MiMo-V2-Flash", - name: "MiMo V2 Flash", - family: "mimo", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-12-01", - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 262144, output: 32000 }, - }, - "MiniMaxAI/MiniMax-M2.5": { - id: "MiniMaxAI/MiniMax-M2.5", - name: "MiniMax M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMaxAI/MiniMax-M2.1": { - id: "MiniMaxAI/MiniMax-M2.1", - name: "MiniMax M2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.28, output: 1.2 }, - limit: { context: 196608, output: 131072 }, - }, - "deepseek-ai/DeepSeek-V3.2-Exp": { - id: "deepseek-ai/DeepSeek-V3.2-Exp", - name: "DeepSeek V3.2 Exp", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-10-10", - last_updated: "2025-10-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 0.4 }, - limit: { context: 164000, output: 164000 }, - }, - "deepseek-ai/DeepSeek-R1-0528": { - id: "deepseek-ai/DeepSeek-R1-0528", - name: "DeepSeek R1 0528", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: false, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-07", - release_date: "2025-05-28", - last_updated: "2025-05-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 2.15 }, - limit: { context: 163840, output: 64000 }, - }, - "deepseek-ai/DeepSeek-V3.1": { - id: "deepseek-ai/DeepSeek-V3.1", - name: "DeepSeek V3.1", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-08-25", - last_updated: "2025-08-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 1 }, - limit: { context: 164000, output: 164000 }, - }, - "deepseek-ai/DeepSeek-V3.2": { - id: "deepseek-ai/DeepSeek-V3.2", - name: "DeepSeek V3.2", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-03", - last_updated: "2025-12-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.26, output: 0.38 }, - limit: { context: 164000, output: 164000 }, - }, - "deepseek-ai/DeepSeek-V3-0324": { - id: "deepseek-ai/DeepSeek-V3-0324", - name: "DeepSeek V3 0324", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-03-24", - last_updated: "2025-03-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.25, output: 0.88 }, - limit: { context: 163840, output: 163840 }, - }, - "moonshotai/Kimi-K2.5": { - id: "moonshotai/Kimi-K2.5", - name: "Kimi K2.5", - family: "kimi", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2026-01", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.45, output: 2.8 }, - limit: { context: 262144, output: 262144 }, - }, - "moonshotai/Kimi-K2-Thinking": { - id: "moonshotai/Kimi-K2-Thinking", - name: "Kimi K2 Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-08", - release_date: "2025-11-06", - last_updated: "2025-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.6 }, - limit: { context: 262144, output: 262144 }, - }, - "meta-llama/Llama-3.3-70B-Instruct": { - id: "meta-llama/Llama-3.3-70B-Instruct", - name: "Llama 3.3 70B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 131072, output: 16384 }, - }, - "Qwen/Qwen3.5-Plus": { - id: "Qwen/Qwen3.5-Plus", name: "Qwen3.5 Plus", family: "qwen", attachment: false, @@ -43005,6010 +1604,317 @@ export const snapshot = { tool_call: true, temperature: true, knowledge: "2025-04", - release_date: "2026-02", - last_updated: "2026-02", + release_date: "2026-02-16", + last_updated: "2026-02-16", modalities: { input: ["text", "image", "video"], output: ["text"] }, open_weights: false, cost: { input: 0.4, output: 2.4, reasoning: 2.4 }, limit: { context: 1000000, output: 65536 }, }, - "Qwen/Qwen3-235B-A22B-Instruct-2507": { - id: "Qwen/Qwen3-235B-A22B-Instruct-2507", - name: "Qwen3 235B A22B Instruct 2507", + "qwen2-5-vl-72b-instruct": { + id: "qwen2-5-vl-72b-instruct", + name: "Qwen2.5-VL 72B Instruct", family: "qwen", attachment: false, reasoning: false, tool_call: true, - structured_output: true, temperature: true, - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.09, output: 0.6 }, - limit: { context: 262000, output: 262000 }, - }, - "Qwen/Qwen2.5-VL-32B-Instruct": { - id: "Qwen/Qwen2.5-VL-32B-Instruct", - name: "Qwen2.5 VL 32B Instruct", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-03-24", - last_updated: "2025-03-24", + knowledge: "2024-04", + release_date: "2024-09", + last_updated: "2024-09", modalities: { input: ["text", "image"], output: ["text"] }, open_weights: true, - cost: { input: 0.2, output: 0.6 }, - limit: { context: 16384, output: 16384 }, + cost: { input: 2.8, output: 8.4 }, + limit: { context: 131072, output: 8192 }, }, - "mistralai/Mistral-Nemo-Instruct-2407": { - id: "mistralai/Mistral-Nemo-Instruct-2407", - name: "Mistral Nemo Instruct 2407", - family: "mistral", + "qvq-max": { + id: "qvq-max", + name: "QVQ Max", + family: "qvq", attachment: false, - reasoning: false, + reasoning: true, tool_call: true, - structured_output: true, temperature: true, - release_date: "2024-07-18", - last_updated: "2024-07-18", + knowledge: "2024-04", + release_date: "2025-03-25", + last_updated: "2025-03-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.2, output: 4.8 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen3-14b": { + id: "qwen3-14b", + name: "Qwen3 14B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", modalities: { input: ["text"], output: ["text"] }, open_weights: true, - cost: { input: 0.02, output: 0.04 }, - limit: { context: 131072, output: 65536 }, - }, - "mistralai/Mistral-Small-3.2-24B-Instruct-2506": { - id: "mistralai/Mistral-Small-3.2-24B-Instruct-2506", - name: "Mistral Small 3.2 24B Instruct", - family: "mistral-small", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-06-20", - last_updated: "2025-06-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 32768, output: 8192 }, + cost: { input: 0.35, output: 1.4, reasoning: 4.2 }, + limit: { context: 131072, output: 8192 }, }, }, }, - perplexity: { - id: "perplexity", - env: ["PERPLEXITY_API_KEY"], - npm: "@ai-sdk/perplexity", - name: "Perplexity", - doc: "https://docs.perplexity.ai", + scaleway: { + id: "scaleway", + env: ["SCALEWAY_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.scaleway.ai/v1", + name: "Scaleway", + doc: "https://www.scaleway.com/en/docs/generative-apis/", models: { - "sonar-reasoning-pro": { - id: "sonar-reasoning-pro", - name: "Sonar Reasoning Pro", - family: "sonar-reasoning", - attachment: true, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2025-09-01", - release_date: "2024-01-01", - last_updated: "2025-09-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8 }, - limit: { context: 128000, output: 4096 }, - }, - sonar: { - id: "sonar", - name: "Sonar", - family: "sonar", + "qwen3-embedding-8b": { + id: "qwen3-embedding-8b", + name: "Qwen3 Embedding 8B", + family: "qwen", attachment: false, reasoning: false, tool_call: false, - temperature: true, - knowledge: "2025-09-01", - release_date: "2024-01-01", - last_updated: "2025-09-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 1 }, - limit: { context: 128000, output: 4096 }, - }, - "sonar-deep-research": { - id: "sonar-deep-research", - name: "Perplexity Sonar Deep Research", - attachment: false, - reasoning: true, - tool_call: false, temperature: false, - knowledge: "2025-01", - release_date: "2025-02-01", - last_updated: "2025-09-01", + release_date: "2025-25-11", + last_updated: "2026-03-17", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 2, output: 8, reasoning: 3 }, - limit: { context: 128000, output: 32768 }, + cost: { input: 0.1, output: 0 }, + limit: { context: 32768, output: 4096 }, }, - "sonar-pro": { - id: "sonar-pro", - name: "Sonar Pro", - family: "sonar-pro", + "qwen3-235b-a22b-instruct-2507": { + id: "qwen3-235b-a22b-instruct-2507", + name: "Qwen3 235B A22B Instruct 2507", + family: "qwen", attachment: true, reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2025-09-01", - release_date: "2024-01-01", - last_updated: "2025-09-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 200000, output: 8192 }, - }, - }, - }, - huggingface: { - id: "huggingface", - env: ["HF_TOKEN"], - npm: "@ai-sdk/openai-compatible", - api: "https://router.huggingface.co/v1", - name: "Hugging Face", - doc: "https://huggingface.co/docs/inference-providers", - models: { - "zai-org/GLM-4.7-Flash": { - id: "zai-org/GLM-4.7-Flash", - name: "GLM-4.7-Flash", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-08-08", - last_updated: "2025-08-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 200000, output: 128000 }, - }, - "zai-org/GLM-4.7": { - id: "zai-org/GLM-4.7", - name: "GLM-4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2025-12-22", - last_updated: "2025-12-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2, cache_read: 0.11 }, - limit: { context: 204800, output: 131072 }, - }, - "zai-org/GLM-5": { - id: "zai-org/GLM-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3.2, cache_read: 0.2 }, - limit: { context: 202752, output: 131072 }, - }, - "XiaomiMiMo/MiMo-V2-Flash": { - id: "XiaomiMiMo/MiMo-V2-Flash", - name: "MiMo-V2-Flash", - family: "mimo", - attachment: false, - reasoning: true, tool_call: true, temperature: true, - knowledge: "2024-12", - release_date: "2025-12-16", - last_updated: "2025-12-16", + release_date: "2025-07-01", + last_updated: "2026-03-17", modalities: { input: ["text"], output: ["text"] }, open_weights: true, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 262144, output: 4096 }, + cost: { input: 0.75, output: 2.25 }, + limit: { context: 260000, output: 16384 }, }, - "MiniMaxAI/MiniMax-M2.5": { - id: "MiniMaxAI/MiniMax-M2.5", - name: "MiniMax-M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.03 }, - limit: { context: 204800, output: 131072 }, - }, - "MiniMaxAI/MiniMax-M2.1": { - id: "MiniMaxAI/MiniMax-M2.1", - name: "MiniMax-M2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-10", - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 204800, output: 131072 }, - }, - "deepseek-ai/DeepSeek-R1-0528": { - id: "deepseek-ai/DeepSeek-R1-0528", - name: "DeepSeek-R1-0528", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2025-05-28", - last_updated: "2025-05-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 3, output: 5 }, - limit: { context: 163840, output: 163840 }, - }, - "deepseek-ai/DeepSeek-V3.2": { - id: "deepseek-ai/DeepSeek-V3.2", - name: "DeepSeek-V3.2", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.28, output: 0.4 }, - limit: { context: 163840, output: 65536 }, - }, - "moonshotai/Kimi-K2-Instruct": { - id: "moonshotai/Kimi-K2-Instruct", - name: "Kimi-K2-Instruct", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-07-14", - last_updated: "2025-07-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3 }, - limit: { context: 131072, output: 16384 }, - }, - "moonshotai/Kimi-K2-Instruct-0905": { - id: "moonshotai/Kimi-K2-Instruct-0905", - name: "Kimi-K2-Instruct-0905", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-10", - release_date: "2025-09-04", - last_updated: "2025-09-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3 }, - limit: { context: 262144, output: 16384 }, - }, - "moonshotai/Kimi-K2.5": { - id: "moonshotai/Kimi-K2.5", - name: "Kimi-K2.5", - family: "kimi", + "llama-3.3-70b-instruct": { + id: "llama-3.3-70b-instruct", + name: "Llama-3.3-70B-Instruct", + family: "llama", attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-12-06", + last_updated: "2026-03-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.9, output: 0.9 }, + limit: { context: 100000, output: 16384 }, + }, + "qwen3.5-397b-a17b": { + id: "qwen3.5-397b-a17b", + name: "Qwen3.5 397B A17B", + family: "qwen", + attachment: false, reasoning: true, tool_call: true, - interleaved: { field: "reasoning_content" }, temperature: true, - knowledge: "2025-01", - release_date: "2026-01-01", - last_updated: "2026-01-01", + knowledge: "2025-04", + release_date: "2026-03-17", + last_updated: "2026-03-17", modalities: { input: ["text", "image", "video"], output: ["text"] }, open_weights: true, - cost: { input: 0.6, output: 3, cache_read: 0.1 }, - limit: { context: 262144, output: 262144 }, - }, - "moonshotai/Kimi-K2-Thinking": { - id: "moonshotai/Kimi-K2-Thinking", - name: "Kimi-K2-Thinking", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2024-08", - release_date: "2025-11-06", - last_updated: "2025-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, - limit: { context: 262144, output: 262144 }, - }, - "Qwen/Qwen3-Next-80B-A3B-Instruct": { - id: "Qwen/Qwen3-Next-80B-A3B-Instruct", - name: "Qwen3-Next-80B-A3B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-11", - last_updated: "2025-09-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.25, output: 1 }, - limit: { context: 262144, output: 66536 }, - }, - "Qwen/Qwen3.5-397B-A17B": { - id: "Qwen/Qwen3.5-397B-A17B", - name: "Qwen3.5-397B-A17B", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02-01", - last_updated: "2026-02-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, cost: { input: 0.6, output: 3.6 }, - limit: { context: 262144, output: 32768 }, + limit: { context: 256000, output: 16384 }, }, - "Qwen/Qwen3-235B-A22B-Thinking-2507": { - id: "Qwen/Qwen3-235B-A22B-Thinking-2507", - name: "Qwen3-235B-A22B-Thinking-2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-25", - last_updated: "2025-07-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 3 }, - limit: { context: 262144, output: 131072 }, - }, - "Qwen/Qwen3-Coder-Next": { - id: "Qwen/Qwen3-Coder-Next", - name: "Qwen3-Coder-Next", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02-03", - last_updated: "2026-02-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 1.5 }, - limit: { context: 262144, output: 65536 }, - }, - "Qwen/Qwen3-Coder-480B-A35B-Instruct": { - id: "Qwen/Qwen3-Coder-480B-A35B-Instruct", - name: "Qwen3-Coder-480B-A35B-Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2, output: 2 }, - limit: { context: 262144, output: 66536 }, - }, - "Qwen/Qwen3-Embedding-4B": { - id: "Qwen/Qwen3-Embedding-4B", - name: "Qwen 3 Embedding 4B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2024-12", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.01, output: 0 }, - limit: { context: 32000, output: 2048 }, - }, - "Qwen/Qwen3-Embedding-8B": { - id: "Qwen/Qwen3-Embedding-8B", - name: "Qwen 3 Embedding 8B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2024-12", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.01, output: 0 }, - limit: { context: 32000, output: 4096 }, - }, - "Qwen/Qwen3-Next-80B-A3B-Thinking": { - id: "Qwen/Qwen3-Next-80B-A3B-Thinking", - name: "Qwen3-Next-80B-A3B-Thinking", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-11", - last_updated: "2025-09-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 2 }, - limit: { context: 262144, output: 131072 }, - }, - }, - }, - anthropic: { - id: "anthropic", - env: ["ANTHROPIC_API_KEY"], - npm: "@ai-sdk/anthropic", - name: "Anthropic", - doc: "https://docs.anthropic.com/en/docs/about-claude/models", - models: { - "claude-opus-4-5-20251101": { - id: "claude-opus-4-5-20251101", - name: "Claude Opus 4.5", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-01", - last_updated: "2025-11-01", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 64000 }, - }, - "claude-3-5-haiku-latest": { - id: "claude-3-5-haiku-latest", - name: "Claude Haiku 3.5 (latest)", - family: "claude-haiku", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07-31", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, - limit: { context: 200000, output: 8192 }, - }, - "claude-opus-4-1": { - id: "claude-opus-4-1", - name: "Claude Opus 4.1 (latest)", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "claude-3-5-sonnet-20241022": { - id: "claude-3-5-sonnet-20241022", - name: "Claude Sonnet 3.5 v2", - family: "claude-sonnet", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04-30", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 8192 }, - }, - "claude-3-sonnet-20240229": { - id: "claude-3-sonnet-20240229", - name: "Claude Sonnet 3", - family: "claude-sonnet", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-08-31", - release_date: "2024-03-04", - last_updated: "2024-03-04", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 0.3 }, - limit: { context: 200000, output: 4096 }, - }, - "claude-opus-4-6": { - id: "claude-opus-4-6", - name: "Claude Opus 4.6", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2026-02-05", - last_updated: "2026-03-13", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 1000000, output: 128000 }, - }, - "claude-sonnet-4-6": { - id: "claude-sonnet-4-6", - name: "Claude Sonnet 4.6", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2026-02-17", - last_updated: "2026-03-13", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 1000000, output: 64000 }, - }, - "claude-sonnet-4-0": { - id: "claude-sonnet-4-0", - name: "Claude Sonnet 4 (latest)", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "claude-opus-4-20250514": { - id: "claude-opus-4-20250514", - name: "Claude Opus 4", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "claude-sonnet-4-5-20250929": { - id: "claude-sonnet-4-5-20250929", - name: "Claude Sonnet 4.5", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "claude-opus-4-0": { - id: "claude-opus-4-0", - name: "Claude Opus 4 (latest)", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "claude-3-5-haiku-20241022": { - id: "claude-3-5-haiku-20241022", - name: "Claude Haiku 3.5", - family: "claude-haiku", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07-31", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, - limit: { context: 200000, output: 8192 }, - }, - "claude-3-5-sonnet-20240620": { - id: "claude-3-5-sonnet-20240620", - name: "Claude Sonnet 3.5", - family: "claude-sonnet", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04-30", - release_date: "2024-06-20", - last_updated: "2024-06-20", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 8192 }, - }, - "claude-3-7-sonnet-latest": { - id: "claude-3-7-sonnet-latest", - name: "Claude Sonnet 3.7 (latest)", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10-31", - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "claude-3-7-sonnet-20250219": { - id: "claude-3-7-sonnet-20250219", - name: "Claude Sonnet 3.7", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10-31", - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "claude-3-haiku-20240307": { - id: "claude-3-haiku-20240307", - name: "Claude Haiku 3", - family: "claude-haiku", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-08-31", - release_date: "2024-03-13", - last_updated: "2024-03-13", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1.25, cache_read: 0.03, cache_write: 0.3 }, - limit: { context: 200000, output: 4096 }, - }, - "claude-haiku-4-5-20251001": { - id: "claude-haiku-4-5-20251001", - name: "Claude Haiku 4.5", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-02-28", - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 200000, output: 64000 }, - }, - "claude-haiku-4-5": { - id: "claude-haiku-4-5", - name: "Claude Haiku 4.5 (latest)", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-02-28", - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 200000, output: 64000 }, - }, - "claude-opus-4-5": { - id: "claude-opus-4-5", - name: "Claude Opus 4.5 (latest)", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-24", - last_updated: "2025-11-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 64000 }, - }, - "claude-3-opus-20240229": { - id: "claude-3-opus-20240229", - name: "Claude Opus 3", - family: "claude-opus", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-08-31", - release_date: "2024-02-29", - last_updated: "2024-02-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 4096 }, - }, - "claude-sonnet-4-5": { - id: "claude-sonnet-4-5", - name: "Claude Sonnet 4.5 (latest)", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "claude-sonnet-4-20250514": { - id: "claude-sonnet-4-20250514", - name: "Claude Sonnet 4", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "claude-opus-4-1-20250805": { - id: "claude-opus-4-1-20250805", - name: "Claude Opus 4.1", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - }, - }, - "tencent-coding-plan": { - id: "tencent-coding-plan", - env: ["TENCENT_CODING_PLAN_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.lkeap.cloud.tencent.com/coding/v3", - name: "Tencent Coding Plan (China)", - doc: "https://cloud.tencent.com/document/product/1772/128947", - models: { - "hunyuan-turbos": { - id: "hunyuan-turbos", - name: "Hunyuan-TurboS", - family: "hunyuan", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2026-03-08", - last_updated: "2026-03-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 131072, output: 16384 }, - }, - "tc-code-latest": { - id: "tc-code-latest", - name: "Auto", - family: "auto", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2026-03-08", - last_updated: "2026-03-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 131072, output: 16384 }, - }, - "glm-5": { - id: "glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 202752, output: 16384 }, - }, - "kimi-k2.5": { - id: "kimi-k2.5", - name: "Kimi-K2.5", - family: "kimi", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 262144, output: 32768 }, - }, - "hunyuan-t1": { - id: "hunyuan-t1", - name: "Hunyuan-T1", - family: "hunyuan", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-03-08", - last_updated: "2026-03-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 131072, output: 16384 }, - }, - "hunyuan-2.0-instruct": { - id: "hunyuan-2.0-instruct", - name: "Tencent HY 2.0 Instruct", - family: "hunyuan", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2026-03-08", - last_updated: "2026-03-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 131072, output: 16384 }, - }, - "hunyuan-2.0-thinking": { - id: "hunyuan-2.0-thinking", - name: "Tencent HY 2.0 Think", - family: "hunyuan", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-03-08", - last_updated: "2026-03-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 131072, output: 16384 }, - }, - "minimax-m2.5": { - id: "minimax-m2.5", - name: "MiniMax-M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, - limit: { context: 204800, output: 32768 }, - }, - }, - }, - "google-vertex-anthropic": { - id: "google-vertex-anthropic", - env: ["GOOGLE_VERTEX_PROJECT", "GOOGLE_VERTEX_LOCATION", "GOOGLE_APPLICATION_CREDENTIALS"], - npm: "@ai-sdk/google-vertex/anthropic", - name: "Vertex (Anthropic)", - doc: "https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/claude", - models: { - "claude-sonnet-4-5@20250929": { - id: "claude-sonnet-4-5@20250929", - name: "Claude Sonnet 4.5", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "claude-opus-4-1@20250805": { - id: "claude-opus-4-1@20250805", - name: "Claude Opus 4.1", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "claude-3-7-sonnet@20250219": { - id: "claude-3-7-sonnet@20250219", - name: "Claude Sonnet 3.7", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-10-31", - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "claude-opus-4@20250514": { - id: "claude-opus-4@20250514", - name: "Claude Opus 4", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "claude-opus-4-5@20251101": { - id: "claude-opus-4-5@20251101", - name: "Claude Opus 4.5", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-24", - last_updated: "2025-11-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 64000 }, - }, - "claude-3-5-haiku@20241022": { - id: "claude-3-5-haiku@20241022", - name: "Claude Haiku 3.5", - family: "claude-haiku", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07-31", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, - limit: { context: 200000, output: 8192 }, - }, - "claude-sonnet-4@20250514": { - id: "claude-sonnet-4@20250514", - name: "Claude Sonnet 4", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-03-31", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "claude-3-5-sonnet@20241022": { - id: "claude-3-5-sonnet@20241022", - name: "Claude Sonnet 3.5 v2", - family: "claude-sonnet", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04-30", - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 8192 }, - }, - "claude-opus-4-6@default": { - id: "claude-opus-4-6@default", - name: "Claude Opus 4.6", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 5, - output: 25, - cache_read: 0.5, - cache_write: 6.25, - context_over_200k: { input: 10, output: 37.5, cache_read: 1, cache_write: 12.5 }, - }, - limit: { context: 1000000, output: 128000 }, - }, - "claude-haiku-4-5@20251001": { - id: "claude-haiku-4-5@20251001", - name: "Claude Haiku 4.5", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-02-28", - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 200000, output: 64000 }, - }, - "claude-sonnet-4-6@default": { - id: "claude-sonnet-4-6@default", - name: "Claude Sonnet 4.6", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2026-02-17", - last_updated: "2026-02-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { - input: 3, - output: 15, - cache_read: 0.3, - cache_write: 3.75, - context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, - }, - limit: { context: 200000, output: 64000 }, - }, - }, - }, - friendli: { - id: "friendli", - env: ["FRIENDLI_TOKEN"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.friendli.ai/serverless/v1", - name: "Friendli", - doc: "https://friendli.ai/docs/guides/serverless_endpoints/introduction", - models: { - "zai-org/GLM-4.7": { - id: "zai-org/GLM-4.7", - name: "GLM 4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-22", - last_updated: "2026-01-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - limit: { context: 202752, output: 202752 }, - }, - "zai-org/GLM-5": { - id: "zai-org/GLM-5", - name: "GLM 5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 3.2 }, - limit: { context: 202752, output: 202752 }, - }, - "MiniMaxAI/MiniMax-M2.5": { - id: "MiniMaxAI/MiniMax-M2.5", - name: "MiniMax M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 196608, output: 196608 }, - }, - "MiniMaxAI/MiniMax-M2.1": { - id: "MiniMaxAI/MiniMax-M2.1", - name: "MiniMax M2.1", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-01-13", - last_updated: "2026-01-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 196608, output: 196608 }, - }, - "meta-llama/Llama-3.1-8B-Instruct": { - id: "meta-llama/Llama-3.1-8B-Instruct", - name: "Llama 3.1 8B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-08-01", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.1 }, - limit: { context: 131072, output: 8000 }, - }, - "meta-llama/Llama-3.3-70B-Instruct": { - id: "meta-llama/Llama-3.3-70B-Instruct", - name: "Llama 3.3 70B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2024-08-01", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 0.6 }, - limit: { context: 131072, output: 131072 }, - }, - "Qwen/Qwen3-235B-A22B-Instruct-2507": { - id: "Qwen/Qwen3-235B-A22B-Instruct-2507", - name: "Qwen3 235B A22B Instruct 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-07-29", - last_updated: "2026-01-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 262144, output: 262144 }, - }, - }, - }, - kilo: { - id: "kilo", - env: ["KILO_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.kilo.ai/api/gateway", - name: "Kilo Gateway", - doc: "https://kilo.ai", - models: { - "giga-potato-thinking": { - id: "giga-potato-thinking", - name: "Giga Potato Thinking (free)", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-27", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 32000 }, - }, - "corethink:free": { - id: "corethink:free", - name: "CoreThink (free)", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-08-27", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 78000, output: 8192 }, - }, - "morph-warp-grep-v2": { - id: "morph-warp-grep-v2", - name: "Morph: WarpGrep V2", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-08-27", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 32000 }, - }, - "giga-potato": { - id: "giga-potato", - name: "Giga Potato (free)", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-08-27", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 32000 }, - }, - "prime-intellect/intellect-3": { - id: "prime-intellect/intellect-3", - name: "Prime Intellect: INTELLECT-3", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-11-26", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 1.1 }, - limit: { context: 131072, output: 131072 }, - }, - "allenai/olmo-2-0325-32b-instruct": { - id: "allenai/olmo-2-0325-32b-instruct", - name: "AllenAI: Olmo 2 32B Instruct", - attachment: false, - reasoning: false, - tool_call: false, - release_date: "2025-03-15", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.2 }, - limit: { context: 128000, output: 32768 }, - }, - "allenai/olmo-3-7b-instruct": { - id: "allenai/olmo-3-7b-instruct", - name: "AllenAI: Olmo 3 7B Instruct", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-11-22", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.2 }, - limit: { context: 65536, output: 65536 }, - }, - "allenai/olmo-3-32b-think": { - id: "allenai/olmo-3-32b-think", - name: "AllenAI: Olmo 3 32B Think", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-11-22", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.5 }, - limit: { context: 65536, output: 65536 }, - }, - "allenai/molmo-2-8b": { - id: "allenai/molmo-2-8b", - name: "AllenAI: Molmo2 8B", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2026-01-09", - last_updated: "2026-01-31", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 36864, output: 36864 }, - }, - "allenai/olmo-3.1-32b-instruct": { - id: "allenai/olmo-3.1-32b-instruct", - name: "AllenAI: Olmo 3.1 32B Instruct", + "devstral-2-123b-instruct-2512": { + id: "devstral-2-123b-instruct-2512", + name: "Devstral 2 123B Instruct (2512)", + family: "devstral", attachment: false, reasoning: false, tool_call: true, temperature: true, release_date: "2026-01-07", - last_updated: "2026-03-15", + last_updated: "2026-03-17", modalities: { input: ["text"], output: ["text"] }, open_weights: true, - cost: { input: 0.2, output: 0.6 }, - limit: { context: 65536, output: 32768 }, + cost: { input: 0.4, output: 2 }, + limit: { context: 256000, output: 16384 }, }, - "allenai/olmo-3-7b-think": { - id: "allenai/olmo-3-7b-think", - name: "AllenAI: Olmo 3 7B Think", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-11-22", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.12, output: 0.2 }, - limit: { context: 65536, output: 65536 }, - }, - "allenai/olmo-3.1-32b-think": { - id: "allenai/olmo-3.1-32b-think", - name: "AllenAI: Olmo 3.1 32B Think", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-12-17", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.5 }, - limit: { context: 65536, output: 65536 }, - }, - "nex-agi/deepseek-v3.1-nex-n1": { - id: "nex-agi/deepseek-v3.1-nex-n1", - name: "Nex AGI: DeepSeek V3.1 Nex N1", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-01-01", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 1 }, - limit: { context: 131072, output: 163840 }, - }, - "nvidia/llama-3.1-nemotron-70b-instruct": { - id: "nvidia/llama-3.1-nemotron-70b-instruct", - name: "NVIDIA: Llama 3.1 Nemotron 70B Instruct", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-10-12", - last_updated: "2024-10-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.2, output: 1.2 }, - limit: { context: 131072, output: 16384 }, - }, - "nvidia/nemotron-3-super-120b-a12b:free": { - id: "nvidia/nemotron-3-super-120b-a12b:free", - name: "NVIDIA: Nemotron 3 Super (free)", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-12", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 262144 }, - }, - "nvidia/llama-3.3-nemotron-super-49b-v1.5": { - id: "nvidia/llama-3.3-nemotron-super-49b-v1.5", - name: "NVIDIA: Llama 3.3 Nemotron Super 49B V1.5", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-03-16", - last_updated: "2025-03-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 131072, output: 26215 }, - }, - "nvidia/nemotron-nano-12b-v2-vl": { - id: "nvidia/nemotron-nano-12b-v2-vl", - name: "NVIDIA: Nemotron Nano 12B 2 VL", - attachment: true, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-10-28", - last_updated: "2026-01-31", - modalities: { input: ["image", "text", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.6 }, - limit: { context: 131072, output: 26215 }, - }, - "nvidia/nemotron-nano-9b-v2": { - id: "nvidia/nemotron-nano-9b-v2", - name: "NVIDIA: Nemotron Nano 9B V2", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-18", - last_updated: "2025-08-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.04, output: 0.16 }, - limit: { context: 131072, output: 26215 }, - }, - "nvidia/nemotron-3-nano-30b-a3b": { - id: "nvidia/nemotron-3-nano-30b-a3b", - name: "NVIDIA: Nemotron 3 Nano 30B A3B", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2024-12", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.2 }, - limit: { context: 262144, output: 52429 }, - }, - "ibm-granite/granite-4.0-h-micro": { - id: "ibm-granite/granite-4.0-h-micro", - name: "IBM: Granite 4.0 Micro", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-10-20", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.017, output: 0.11 }, - limit: { context: 131000, output: 32768 }, - }, - "arcee-ai/coder-large": { - id: "arcee-ai/coder-large", - name: "Arcee AI: Coder Large", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-05-06", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 0.8 }, - limit: { context: 32768, output: 32768 }, - }, - "arcee-ai/virtuoso-large": { - id: "arcee-ai/virtuoso-large", - name: "Arcee AI: Virtuoso Large", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-05-06", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.75, output: 1.2 }, - limit: { context: 131072, output: 64000 }, - }, - "arcee-ai/trinity-mini": { - id: "arcee-ai/trinity-mini", - name: "Arcee AI: Trinity Mini", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-12", - last_updated: "2026-01-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.045, output: 0.15 }, - limit: { context: 131072, output: 131072 }, - }, - "arcee-ai/maestro-reasoning": { - id: "arcee-ai/maestro-reasoning", - name: "Arcee AI: Maestro Reasoning", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-05-06", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.9, output: 3.3 }, - limit: { context: 131072, output: 32000 }, - }, - "arcee-ai/trinity-large-preview:free": { - id: "arcee-ai/trinity-large-preview:free", - name: "Arcee AI: Trinity Large Preview (free)", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2026-01-28", - last_updated: "2026-01-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 131000, output: 26200 }, - }, - "arcee-ai/spotlight": { - id: "arcee-ai/spotlight", - name: "Arcee AI: Spotlight", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-05-06", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.18, output: 0.18 }, - limit: { context: 131072, output: 65537 }, - }, - "xiaomi/mimo-v2-flash": { - id: "xiaomi/mimo-v2-flash", - name: "Xiaomi: MiMo-V2-Flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-12-14", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.09, output: 0.29, cache_read: 0.045 }, - limit: { context: 262144, output: 65536 }, - }, - "microsoft/phi-4": { - id: "microsoft/phi-4", - name: "Microsoft: Phi 4", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.06, output: 0.14 }, - limit: { context: 16384, output: 16384 }, - }, - "microsoft/wizardlm-2-8x22b": { - id: "microsoft/wizardlm-2-8x22b", - name: "WizardLM-2 8x22B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-04-24", - last_updated: "2024-04-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.62, output: 0.62 }, - limit: { context: 65535, output: 8000 }, - }, - "alfredpros/codellama-7b-instruct-solidity": { - id: "alfredpros/codellama-7b-instruct-solidity", - name: "AlfredPros: CodeLLaMa 7B Instruct Solidity", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-14", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.8, output: 1.2 }, - limit: { context: 4096, output: 4096 }, - }, - "liquid/lfm-2.2-6b": { - id: "liquid/lfm-2.2-6b", - name: "LiquidAI: LFM2-2.6B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-10-20", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.01, output: 0.02 }, - limit: { context: 32768, output: 32768 }, - }, - "liquid/lfm-2-24b-a2b": { - id: "liquid/lfm-2-24b-a2b", - name: "LiquidAI: LFM2-24B-A2B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2026-02-26", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.12 }, - limit: { context: 32768, output: 32768 }, - }, - "liquid/lfm2-8b-a1b": { - id: "liquid/lfm2-8b-a1b", - name: "LiquidAI: LFM2-8B-A1B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-10-20", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.01, output: 0.02 }, - limit: { context: 32768, output: 32768 }, - }, - "upstage/solar-pro-3": { - id: "upstage/solar-pro-3", - name: "Upstage: Solar Pro 3", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-01-27", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 128000, output: 32768 }, - }, - "switchpoint/router": { - id: "switchpoint/router", - name: "Switchpoint Router", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-07-12", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.85, output: 3.4 }, - limit: { context: 131072, output: 32768 }, - }, - "inception/mercury-2": { - id: "inception/mercury-2", - name: "Inception: Mercury 2", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-24", - last_updated: "2026-02-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 0.75, cache_read: 0.025 }, - limit: { context: 128000, output: 50000 }, - }, - "inception/mercury": { - id: "inception/mercury", - name: "Inception: Mercury", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-06-26", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 0.75 }, - limit: { context: 128000, output: 32000 }, - }, - "inception/mercury-coder": { - id: "inception/mercury-coder", - name: "Inception: Mercury Coder", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-02-26", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 0.75 }, - limit: { context: 128000, output: 32000 }, - }, - "kilo-auto/balanced": { - id: "kilo-auto/balanced", - name: "Kilo Auto Balanced", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-15", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 3 }, - limit: { context: 204800, output: 131072 }, - }, - "kilo-auto/free": { - id: "kilo-auto/free", - name: "Kilo Auto Free", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-15", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "kilo-auto/small": { - id: "kilo-auto/small", - name: "Kilo Auto Small", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-15", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.4 }, - limit: { context: 400000, output: 128000 }, - }, - "kilo-auto/frontier": { - id: "kilo-auto/frontier", - name: "Kilo Auto Frontier", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-15", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25 }, - limit: { context: 1000000, output: 128000 }, - }, - "amazon/nova-micro-v1": { - id: "amazon/nova-micro-v1", - name: "Amazon: Nova Micro 1.0", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-12-06", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.035, output: 0.14 }, - limit: { context: 128000, output: 5120 }, - }, - "amazon/nova-lite-v1": { - id: "amazon/nova-lite-v1", - name: "Amazon: Nova Lite 1.0", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-12-06", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.06, output: 0.24 }, - limit: { context: 300000, output: 5120 }, - }, - "amazon/nova-premier-v1": { - id: "amazon/nova-premier-v1", - name: "Amazon: Nova Premier 1.0", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-11-01", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 12.5 }, - limit: { context: 1000000, output: 32000 }, - }, - "amazon/nova-2-lite-v1": { - id: "amazon/nova-2-lite-v1", - name: "Amazon: Nova 2 Lite", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2024-12-01", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5 }, - limit: { context: 1000000, output: 65535 }, - }, - "amazon/nova-pro-v1": { - id: "amazon/nova-pro-v1", - name: "Amazon: Nova Pro 1.0", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-12-03", - last_updated: "2024-12-03", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 3.2 }, - limit: { context: 300000, output: 5120 }, - }, - "anthracite-org/magnum-v4-72b": { - id: "anthracite-org/magnum-v4-72b", - name: "Magnum v4 72B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-10-22", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 3, output: 5 }, - limit: { context: 16384, output: 2048 }, - }, - "essentialai/rnj-1-instruct": { - id: "essentialai/rnj-1-instruct", - name: "EssentialAI: Rnj 1 Instruct", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-12-05", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.15 }, - limit: { context: 32768, output: 6554 }, - }, - "gryphe/mythomax-l2-13b": { - id: "gryphe/mythomax-l2-13b", - name: "MythoMax 13B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-04-25", - last_updated: "2024-04-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.06, output: 0.06 }, - limit: { context: 4096, output: 4096 }, - }, - "alibaba/tongyi-deepresearch-30b-a3b": { - id: "alibaba/tongyi-deepresearch-30b-a3b", - name: "Tongyi DeepResearch 30B A3B", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-09-18", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.09, output: 0.45 }, - limit: { context: 131072, output: 131072 }, - }, - "aion-labs/aion-1.0-mini": { - id: "aion-labs/aion-1.0-mini", - name: "AionLabs: Aion-1.0-Mini", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-02-05", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.7, output: 1.4 }, - limit: { context: 131072, output: 32768 }, - }, - "aion-labs/aion-2.0": { - id: "aion-labs/aion-2.0", - name: "AionLabs: Aion-2.0", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2026-02-24", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 1.6 }, - limit: { context: 131072, output: 32768 }, - }, - "aion-labs/aion-rp-llama-3.1-8b": { - id: "aion-labs/aion-rp-llama-3.1-8b", - name: "AionLabs: Aion-RP 1.0 (8B)", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-02-05", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 1.6 }, - limit: { context: 32768, output: 32768 }, - }, - "aion-labs/aion-1.0": { - id: "aion-labs/aion-1.0", - name: "AionLabs: Aion-1.0", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-02-05", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 4, output: 8 }, - limit: { context: 131072, output: 32768 }, - }, - "stepfun/step-3.5-flash:free": { - id: "stepfun/step-3.5-flash:free", - name: "StepFun: Step 3.5 Flash (free)", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-01-29", - last_updated: "2026-01-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 256000 }, - }, - "stepfun/step-3.5-flash": { - id: "stepfun/step-3.5-flash", - name: "StepFun: Step 3.5 Flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-01-29", - last_updated: "2026-01-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3, cache_read: 0.02 }, - limit: { context: 256000, output: 256000 }, - }, - "relace/relace-search": { - id: "relace/relace-search", - name: "Relace: Relace Search", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-12-09", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 3 }, - limit: { context: 256000, output: 128000 }, - }, - "relace/relace-apply-3": { - id: "relace/relace-apply-3", - name: "Relace: Relace Apply 3", - attachment: false, - reasoning: false, - tool_call: false, - release_date: "2025-09-26", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.85, output: 1.25 }, - limit: { context: 256000, output: 128000 }, - }, - "thedrummer/rocinante-12b": { - id: "thedrummer/rocinante-12b", - name: "TheDrummer: Rocinante 12B", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-09-30", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.17, output: 0.43 }, - limit: { context: 32768, output: 32768 }, - }, - "thedrummer/cydonia-24b-v4.1": { - id: "thedrummer/cydonia-24b-v4.1", - name: "TheDrummer: Cydonia 24B V4.1", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-09-27", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.5 }, - limit: { context: 131072, output: 131072 }, - }, - "thedrummer/unslopnemo-12b": { - id: "thedrummer/unslopnemo-12b", - name: "TheDrummer: UnslopNemo 12B", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-11-09", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 0.4 }, - limit: { context: 32768, output: 32768 }, - }, - "thedrummer/skyfall-36b-v2": { - id: "thedrummer/skyfall-36b-v2", - name: "TheDrummer: Skyfall 36B V2", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-03-11", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 0.8 }, - limit: { context: 32768, output: 32768 }, - }, - "mancer/weaver": { - id: "mancer/weaver", - name: "Mancer: Weaver (alpha)", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2023-08-02", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.75, output: 1 }, - limit: { context: 8000, output: 2000 }, - }, - "tencent/hunyuan-a13b-instruct": { - id: "tencent/hunyuan-a13b-instruct", - name: "Tencent: Hunyuan A13B Instruct", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-06-30", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0.57 }, - limit: { context: 131072, output: 131072 }, - }, - "kwaipilot/kat-coder-pro": { - id: "kwaipilot/kat-coder-pro", - name: "Kwaipilot: KAT-Coder-Pro V1", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-09-30", - last_updated: "2025-10-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.207, output: 0.828, cache_read: 0.0414 }, - limit: { context: 256000, output: 128000 }, - }, - "deepseek/deepseek-r1-0528": { - id: "deepseek/deepseek-r1-0528", - name: "DeepSeek: R1 0528", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-05-28", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.45, output: 2.15, cache_read: 0.2 }, - limit: { context: 163840, output: 65536 }, - }, - "deepseek/deepseek-r1": { - id: "deepseek/deepseek-r1", - name: "DeepSeek: R1", + "deepseek-r1-distill-llama-70b": { + id: "deepseek-r1-distill-llama-70b", + name: "DeepSeek R1 Distill Llama 70B", + family: "deepseek-thinking", attachment: false, reasoning: true, tool_call: true, temperature: true, + knowledge: "2024-07", release_date: "2025-01-20", - last_updated: "2025-01-20", + last_updated: "2026-03-17", modalities: { input: ["text"], output: ["text"] }, open_weights: true, - cost: { input: 0.7, output: 2.5 }, - limit: { context: 64000, output: 16000 }, + cost: { input: 0.9, output: 0.9 }, + limit: { context: 32000, output: 8196 }, }, - "deepseek/deepseek-v3.2-speciale": { - id: "deepseek/deepseek-v3.2-speciale", - name: "DeepSeek: DeepSeek V3.2 Speciale", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-12-01", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 1.2, cache_read: 0.135 }, - limit: { context: 163840, output: 163840 }, - }, - "deepseek/deepseek-chat-v3.1": { - id: "deepseek/deepseek-chat-v3.1", - name: "DeepSeek: DeepSeek V3.1", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-21", - last_updated: "2025-08-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.75 }, - limit: { context: 32768, output: 7168 }, - }, - "deepseek/deepseek-chat-v3-0324": { - id: "deepseek/deepseek-chat-v3-0324", - name: "DeepSeek: DeepSeek V3 0324", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-03-24", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.77, cache_read: 0.095 }, - limit: { context: 163840, output: 65536 }, - }, - "deepseek/deepseek-r1-distill-llama-70b": { - id: "deepseek/deepseek-r1-distill-llama-70b", - name: "DeepSeek: R1 Distill Llama 70B", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-01-23", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.7, output: 0.8, cache_read: 0.015 }, - limit: { context: 131072, output: 16384 }, - }, - "deepseek/deepseek-v3.1-terminus": { - id: "deepseek/deepseek-v3.1-terminus", - name: "DeepSeek: DeepSeek V3.1 Terminus", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-09-22", - last_updated: "2025-09-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.21, output: 0.79, cache_read: 0.13 }, - limit: { context: 163840, output: 32768 }, - }, - "deepseek/deepseek-v3.2": { - id: "deepseek/deepseek-v3.2", - name: "DeepSeek: DeepSeek V3.2", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-12-01", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.26, output: 0.38, cache_read: 0.125 }, - limit: { context: 163840, output: 65536 }, - }, - "deepseek/deepseek-chat": { - id: "deepseek/deepseek-chat", - name: "DeepSeek: DeepSeek V3", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-12-01", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.32, output: 0.89, cache_read: 0.15 }, - limit: { context: 163840, output: 163840 }, - }, - "deepseek/deepseek-r1-distill-qwen-32b": { - id: "deepseek/deepseek-r1-distill-qwen-32b", - name: "DeepSeek: R1 Distill Qwen 32B", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-01-01", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.29, output: 0.29 }, - limit: { context: 32768, output: 32768 }, - }, - "deepseek/deepseek-v3.2-exp": { - id: "deepseek/deepseek-v3.2-exp", - name: "DeepSeek: DeepSeek V3.2 Exp", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-01-01", - last_updated: "2025-09-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 0.41 }, - limit: { context: 163840, output: 65536 }, - }, - "alpindale/goliath-120b": { - id: "alpindale/goliath-120b", - name: "Goliath 120B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2023-11-10", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 3.75, output: 7.5 }, - limit: { context: 6144, output: 1024 }, - }, - "openrouter/hunter-alpha": { - id: "openrouter/hunter-alpha", - name: "Hunter Alpha", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-12", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 1048576, output: 32000 }, - }, - "openrouter/auto": { - id: "openrouter/auto", - name: "Auto Router", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-15", - last_updated: "2026-03-15", - modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["image", "text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 2000000, output: 32768 }, - }, - "openrouter/free": { - id: "openrouter/free", - name: "Free Models Router", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-01", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 200000, output: 32768 }, - }, - "openrouter/healer-alpha": { - id: "openrouter/healer-alpha", - name: "Healer Alpha", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-12", - last_updated: "2026-03-15", - modalities: { input: ["audio", "image", "text", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 262144, output: 32000 }, - }, - "openrouter/bodybuilder": { - id: "openrouter/bodybuilder", - name: "Body Builder (beta)", - attachment: false, - reasoning: false, - tool_call: false, - release_date: "2026-03-15", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 32768 }, - status: "beta", - }, - "moonshotai/kimi-k2": { - id: "moonshotai/kimi-k2", - name: "MoonshotAI: Kimi K2 0711", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-07-11", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.2 }, - limit: { context: 131000, output: 26215 }, - }, - "moonshotai/kimi-k2-0905": { - id: "moonshotai/kimi-k2-0905", - name: "MoonshotAI: Kimi K2 0905", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 2, cache_read: 0.15 }, - limit: { context: 131072, output: 26215 }, - }, - "moonshotai/kimi-k2.5": { - id: "moonshotai/kimi-k2.5", - name: "MoonshotAI: Kimi K2.5", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-01-27", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.45, output: 2.2 }, - limit: { context: 262144, output: 65535 }, - }, - "moonshotai/kimi-k2-thinking": { - id: "moonshotai/kimi-k2-thinking", - name: "MoonshotAI: Kimi K2 Thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-11-06", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.47, output: 2, cache_read: 0.2 }, - limit: { context: 131072, output: 65535 }, - }, - "baidu/ernie-4.5-vl-424b-a47b": { - id: "baidu/ernie-4.5-vl-424b-a47b", - name: "Baidu: ERNIE 4.5 VL 424B A47B ", - attachment: true, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-06-30", - last_updated: "2026-01", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.42, output: 1.25 }, - limit: { context: 123000, output: 16000 }, - }, - "baidu/ernie-4.5-vl-28b-a3b": { - id: "baidu/ernie-4.5-vl-28b-a3b", - name: "Baidu: ERNIE 4.5 VL 28B A3B", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-06-30", - last_updated: "2025-06-30", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.14, output: 0.56 }, - limit: { context: 30000, output: 8000 }, - }, - "baidu/ernie-4.5-21b-a3b-thinking": { - id: "baidu/ernie-4.5-21b-a3b-thinking", - name: "Baidu: ERNIE 4.5 21B A3B Thinking", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-09-19", - last_updated: "2025-09-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.28 }, - limit: { context: 131072, output: 65536 }, - }, - "baidu/ernie-4.5-300b-a47b": { - id: "baidu/ernie-4.5-300b-a47b", - name: "Baidu: ERNIE 4.5 300B A47B ", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-06-30", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.28, output: 1.1 }, - limit: { context: 123000, output: 12000 }, - }, - "baidu/ernie-4.5-21b-a3b": { - id: "baidu/ernie-4.5-21b-a3b", - name: "Baidu: ERNIE 4.5 21B A3B", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-06-30", - last_updated: "2025-06-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.28 }, - limit: { context: 120000, output: 8000 }, - }, - "google/gemini-2.5-flash-lite-preview-09-2025": { - id: "google/gemini-2.5-flash-lite-preview-09-2025", - name: "Google: Gemini 2.5 Flash Lite Preview 09-2025", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-09-25", - last_updated: "2026-03-15", - modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, reasoning: 0.4, cache_read: 0.01, cache_write: 0.083333 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-3.1-pro-preview-customtools": { - id: "google/gemini-3.1-pro-preview-customtools", - name: "Google: Gemini 3.1 Pro Preview Custom Tools", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-26", - last_updated: "2026-03-15", - modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, reasoning: 12 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-2.5-pro-preview-05-06": { - id: "google/gemini-2.5-pro-preview-05-06", - name: "Google: Gemini 2.5 Pro Preview 05-06", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-05-06", - last_updated: "2026-03-15", - modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, reasoning: 10, cache_read: 0.125, cache_write: 0.375 }, - limit: { context: 1048576, output: 65535 }, - }, - "google/gemini-2.5-flash": { - id: "google/gemini-2.5-flash", - name: "Google: Gemini 2.5 Flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-07-17", - last_updated: "2026-03-15", - modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5, reasoning: 2.5, cache_read: 0.03, cache_write: 0.083333 }, - limit: { context: 1048576, output: 65535 }, - }, - "google/gemini-2.5-pro-preview": { - id: "google/gemini-2.5-pro-preview", - name: "Google: Gemini 2.5 Pro Preview 06-05", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-06-05", - last_updated: "2026-03-15", - modalities: { input: ["audio", "image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, reasoning: 10, cache_read: 0.125, cache_write: 0.375 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-3.1-flash-image-preview": { - id: "google/gemini-3.1-flash-image-preview", - name: "Google: Nano Banana 2 (Gemini 3.1 Flash Image Preview)", - attachment: true, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2026-02-26", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["image", "text"] }, - open_weights: false, - cost: { input: 0.5, output: 3 }, - limit: { context: 65536, output: 65536 }, - }, - "google/gemini-2.0-flash-001": { - id: "google/gemini-2.0-flash-001", - name: "Google: Gemini 2.0 Flash", + "pixtral-12b-2409": { + id: "pixtral-12b-2409", + name: "Pixtral 12B 2409", + family: "pixtral", attachment: true, reasoning: false, tool_call: true, temperature: true, - release_date: "2024-12-11", - last_updated: "2026-03-15", - modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.025, cache_write: 0.083333 }, - limit: { context: 1048576, output: 8192 }, - }, - "google/gemini-3.1-flash-lite-preview": { - id: "google/gemini-3.1-flash-lite-preview", - name: "Google: Gemini 3.1 Flash Lite Preview", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-03", - last_updated: "2026-03-15", - modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1.5, reasoning: 1.5 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-3-flash-preview": { - id: "google/gemini-3-flash-preview", - name: "Google: Gemini 3 Flash Preview", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-12-17", - last_updated: "2026-03-15", - modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 3, reasoning: 3, cache_read: 0.05, cache_write: 0.083333 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemma-2-27b-it": { - id: "google/gemma-2-27b-it", - name: "Google: Gemma 2 27B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-06-24", - last_updated: "2024-06-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.65, output: 0.65 }, - limit: { context: 8192, output: 2048 }, - }, - "google/gemini-2.5-flash-lite": { - id: "google/gemini-2.5-flash-lite", - name: "Google: Gemini 2.5 Flash Lite", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-06-17", - last_updated: "2026-03-15", - modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, reasoning: 0.4, cache_read: 0.01, cache_write: 0.083333 }, - limit: { context: 1048576, output: 65535 }, - }, - "google/gemini-3.1-pro-preview": { - id: "google/gemini-3.1-pro-preview", - name: "Google: Gemini 3.1 Pro Preview", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-19", - last_updated: "2026-03-15", - modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, reasoning: 12 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemini-2.0-flash-lite-001": { - id: "google/gemini-2.0-flash-lite-001", - name: "Google: Gemini 2.0 Flash Lite", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-12-11", - last_updated: "2026-03-15", - modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.075, output: 0.3 }, - limit: { context: 1048576, output: 8192 }, - }, - "google/gemini-2.5-flash-image": { - id: "google/gemini-2.5-flash-image", - name: "Google: Nano Banana (Gemini 2.5 Flash Image)", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-10-08", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["image", "text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5 }, - limit: { context: 32768, output: 32768 }, - }, - "google/gemini-3-pro-image-preview": { - id: "google/gemini-3-pro-image-preview", - name: "Google: Nano Banana Pro (Gemini 3 Pro Image Preview)", - attachment: true, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-11-20", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["image", "text"] }, - open_weights: false, - cost: { input: 2, output: 12, reasoning: 12 }, - limit: { context: 65536, output: 32768 }, - }, - "google/gemma-2-9b-it": { - id: "google/gemma-2-9b-it", - name: "Google: Gemma 2 9B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-06-28", - last_updated: "2024-06-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.09 }, - limit: { context: 8192, output: 1639 }, - }, - "google/gemma-3n-e4b-it": { - id: "google/gemma-3n-e4b-it", - name: "Google: Gemma 3n 4B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-05-20", - last_updated: "2025-05-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0.04 }, - limit: { context: 32768, output: 6554 }, - }, - "google/gemini-3-pro-preview": { - id: "google/gemini-3-pro-preview", - name: "Google: Gemini 3 Pro Preview", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-11-18", - last_updated: "2026-03-15", - modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12, reasoning: 12, cache_read: 0.2, cache_write: 0.375 }, - limit: { context: 1048576, output: 65536 }, - }, - "google/gemma-3-12b-it": { - id: "google/gemma-3-12b-it", - name: "Google: Gemma 3 12B", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-03-13", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.04, output: 0.13, cache_read: 0.015 }, - limit: { context: 131072, output: 131072 }, - }, - "google/gemma-3-4b-it": { - id: "google/gemma-3-4b-it", - name: "Google: Gemma 3 4B", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-03-13", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.04, output: 0.08 }, - limit: { context: 131072, output: 19200 }, - }, - "google/gemma-3-27b-it": { - id: "google/gemma-3-27b-it", - name: "Google: Gemma 3 27B", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-03-12", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.11, cache_read: 0.02 }, - limit: { context: 128000, output: 65536 }, - }, - "google/gemini-2.5-pro": { - id: "google/gemini-2.5-pro", - name: "Google: Gemini 2.5 Pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-03-20", - last_updated: "2026-03-15", - modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, reasoning: 10, cache_read: 0.125, cache_write: 0.375 }, - limit: { context: 1048576, output: 65536 }, - }, - "z-ai/glm-5": { - id: "z-ai/glm-5", - name: "Z.ai: GLM 5", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.72, output: 2.3 }, - limit: { context: 202752, output: 131072 }, - }, - "z-ai/glm-4.5-air": { - id: "z-ai/glm-4.5-air", - name: "Z.ai: GLM 4.5 Air", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.13, output: 0.85, cache_read: 0.025 }, - limit: { context: 131072, output: 98304 }, - }, - "z-ai/glm-4.5": { - id: "z-ai/glm-4.5", - name: "Z.ai: GLM 4.5", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-07-28", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.2, cache_read: 0.175 }, - limit: { context: 131072, output: 98304 }, - }, - "z-ai/glm-4.7-flash": { - id: "z-ai/glm-4.7-flash", - name: "Z.ai: GLM 4.7 Flash", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.06, output: 0.4, cache_read: 0.01 }, - limit: { context: 202752, output: 40551 }, - }, - "z-ai/glm-4.6": { - id: "z-ai/glm-4.6", - name: "Z.ai: GLM 4.6", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-09-30", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.39, output: 1.9, cache_read: 0.175 }, - limit: { context: 204800, output: 204800 }, - }, - "z-ai/glm-4.7": { - id: "z-ai/glm-4.7", - name: "Z.ai: GLM 4.7", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-12-22", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.38, output: 1.98, cache_read: 0.2 }, - limit: { context: 202752, output: 65535 }, - }, - "z-ai/glm-4-32b": { - id: "z-ai/glm-4-32b", - name: "Z.ai: GLM 4 32B ", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-07-25", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.1 }, - limit: { context: 128000, output: 32768 }, - }, - "z-ai/glm-4.5v": { - id: "z-ai/glm-4.5v", - name: "Z.ai: GLM 4.5V", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-11", - last_updated: "2025-08-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 1.8, cache_read: 0.11 }, - limit: { context: 65536, output: 16384 }, - }, - "z-ai/glm-4.6v": { - id: "z-ai/glm-4.6v", - name: "Z.ai: GLM 4.6V", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-09-30", - last_updated: "2026-01-10", - modalities: { input: ["image", "text", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.9 }, - limit: { context: 131072, output: 131072 }, - }, - "deepcogito/cogito-v2.1-671b": { - id: "deepcogito/cogito-v2.1-671b", - name: "Deep Cogito: Cogito v2.1 671B", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-11-14", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.25, output: 1.25 }, - limit: { context: 128000, output: 32768 }, - }, - "meituan/longcat-flash-chat": { - id: "meituan/longcat-flash-chat", - name: "Meituan: LongCat Flash Chat", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-08-30", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.8, cache_read: 0.2 }, - limit: { context: 131072, output: 131072 }, - }, - "bytedance/ui-tars-1.5-7b": { - id: "bytedance/ui-tars-1.5-7b", - name: "ByteDance: UI-TARS 7B ", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-07-23", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.2 }, - limit: { context: 128000, output: 2048 }, - }, - "undi95/remm-slerp-l2-13b": { - id: "undi95/remm-slerp-l2-13b", - name: "ReMM SLERP 13B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2023-07-22", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.45, output: 0.65 }, - limit: { context: 6144, output: 4096 }, - }, - "qwen/qwen3.5-27b": { - id: "qwen/qwen3.5-27b", - name: "Qwen: Qwen3.5-27B", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-26", - last_updated: "2026-03-15", - modalities: { input: ["image", "text", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.195, output: 1.56 }, - limit: { context: 262144, output: 65536 }, - }, - "qwen/qwen-vl-plus": { - id: "qwen/qwen-vl-plus", - name: "Qwen: Qwen VL Plus", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-01-25", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1365, output: 0.4095, cache_read: 0.042 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen/qwen-vl-max": { - id: "qwen/qwen-vl-max", - name: "Qwen: Qwen VL Max", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-04-08", - last_updated: "2025-08-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 3.2 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen/qwen3-next-80b-a3b-thinking": { - id: "qwen/qwen3-next-80b-a3b-thinking", - name: "Qwen: Qwen3 Next 80B A3B Thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-09-11", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.0975, output: 0.78 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen/qwen-2.5-vl-7b-instruct": { - id: "qwen/qwen-2.5-vl-7b-instruct", - name: "Qwen: Qwen2.5-VL 7B Instruct", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-08-28", - last_updated: "2024-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 32768, output: 6554 }, - }, - "qwen/qwen3-max-thinking": { - id: "qwen/qwen3-max-thinking", - name: "Qwen: Qwen3 Max Thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-01-23", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.78, output: 3.9 }, - limit: { context: 262144, output: 32768 }, - }, - "qwen/qwen3-14b": { - id: "qwen/qwen3-14b", - name: "Qwen: Qwen3 14B", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-04", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.06, output: 0.24, cache_read: 0.025 }, - limit: { context: 40960, output: 40960 }, - }, - "qwen/qwen3.5-35b-a3b": { - id: "qwen/qwen3.5-35b-a3b", - name: "Qwen: Qwen3.5-35B-A3B", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-26", - last_updated: "2026-03-15", - modalities: { input: ["image", "text", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1625, output: 1.3 }, - limit: { context: 262144, output: 65536 }, - }, - "qwen/qwq-32b": { - id: "qwen/qwq-32b", - name: "Qwen: QwQ 32B", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2024-11-28", - last_updated: "2025-04-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.4 }, - limit: { context: 32768, output: 32768 }, - }, - "qwen/qwen3-coder-flash": { - id: "qwen/qwen3-coder-flash", - name: "Qwen: Qwen3 Coder Flash", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-07-23", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.195, output: 0.975, cache_read: 0.06 }, - limit: { context: 1000000, output: 65536 }, - }, - "qwen/qwen3-vl-8b-thinking": { - id: "qwen/qwen3-vl-8b-thinking", - name: "Qwen: Qwen3 VL 8B Thinking", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-10-15", - last_updated: "2025-11-25", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.117, output: 1.365 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen/qwen2.5-vl-32b-instruct": { - id: "qwen/qwen2.5-vl-32b-instruct", - name: "Qwen: Qwen2.5 VL 32B Instruct", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-03-24", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.6, cache_read: 0.025 }, - limit: { context: 128000, output: 16384 }, - }, - "qwen/qwen-max": { - id: "qwen/qwen-max", - name: "Qwen: Qwen-Max ", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-04-03", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.04, output: 4.16, cache_read: 0.32 }, - limit: { context: 32768, output: 8192 }, - }, - "qwen/qwen2.5-coder-7b-instruct": { - id: "qwen/qwen2.5-coder-7b-instruct", - name: "Qwen: Qwen2.5 Coder 7B Instruct", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-09-17", - last_updated: "2024-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.09 }, - limit: { context: 32768, output: 6554 }, - }, - "qwen/qwen3-coder-next": { - id: "qwen/qwen3-coder-next", - name: "Qwen: Qwen3 Coder Next", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2026-02-02", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.12, output: 0.75, cache_read: 0.035 }, - limit: { context: 262144, output: 65536 }, - }, - "qwen/qwen-turbo": { - id: "qwen/qwen-turbo", - name: "Qwen: Qwen-Turbo", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-11-01", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.0325, output: 0.13, cache_read: 0.01 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen/qwen3-coder": { - id: "qwen/qwen3-coder", - name: "Qwen: Qwen3 Coder 480B A35B", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.22, output: 1, cache_read: 0.022 }, - limit: { context: 262144, output: 52429 }, - }, - "qwen/qwen3-8b": { - id: "qwen/qwen3-8b", - name: "Qwen: Qwen3 8B", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-04", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.4, cache_read: 0.05 }, - limit: { context: 40960, output: 8192 }, - }, - "qwen/qwen3-32b": { - id: "qwen/qwen3-32b", - name: "Qwen: Qwen3 32B", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2024-12-01", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.08, output: 0.24, cache_read: 0.04 }, - limit: { context: 40960, output: 40960 }, - }, - "qwen/qwen3-235b-a22b-2507": { - id: "qwen/qwen3-235b-a22b-2507", - name: "Qwen: Qwen3 235B A22B Instruct 2507", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-04", - last_updated: "2026-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.071, output: 0.1 }, - limit: { context: 262144, output: 52429 }, - }, - "qwen/qwen3.5-397b-a17b": { - id: "qwen/qwen3.5-397b-a17b", - name: "Qwen: Qwen3.5 397B A17B", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-15", - last_updated: "2026-03-15", - modalities: { input: ["image", "text", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.39, output: 2.34 }, - limit: { context: 262144, output: 65536 }, - }, - "qwen/qwen-2.5-7b-instruct": { - id: "qwen/qwen-2.5-7b-instruct", - name: "Qwen: Qwen2.5 7B Instruct", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-09", - last_updated: "2025-04-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.04, output: 0.1 }, - limit: { context: 32768, output: 6554 }, - }, - "qwen/qwen-2.5-coder-32b-instruct": { - id: "qwen/qwen-2.5-coder-32b-instruct", - name: "Qwen2.5 Coder 32B Instruct", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-11-11", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.2, cache_read: 0.015 }, - limit: { context: 32768, output: 8192 }, - }, - "qwen/qwen3.5-plus-02-15": { - id: "qwen/qwen3.5-plus-02-15", - name: "Qwen: Qwen3.5 Plus 2026-02-15", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-15", - last_updated: "2026-03-15", - modalities: { input: ["image", "text", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.26, output: 1.56 }, - limit: { context: 1000000, output: 65536 }, - }, - "qwen/qwen3-30b-a3b-instruct-2507": { - id: "qwen/qwen3-30b-a3b-instruct-2507", - name: "Qwen: Qwen3 30B A3B Instruct 2507", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-07-29", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.09, output: 0.3, cache_read: 0.04 }, - limit: { context: 262144, output: 262144 }, - }, - "qwen/qwen2.5-vl-72b-instruct": { - id: "qwen/qwen2.5-vl-72b-instruct", - name: "Qwen: Qwen2.5 VL 72B Instruct", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-02-01", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.8, output: 0.8, cache_read: 0.075 }, - limit: { context: 32768, output: 32768 }, - }, - "qwen/qwen3-235b-a22b": { - id: "qwen/qwen3-235b-a22b", - name: "Qwen: Qwen3 235B A22B", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2024-12-01", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.455, output: 1.82, cache_read: 0.15 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen/qwen3-coder-30b-a3b-instruct": { - id: "qwen/qwen3-coder-30b-a3b-instruct", - name: "Qwen: Qwen3 Coder 30B A3B Instruct", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-07-31", - last_updated: "2025-07-31", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.27 }, - limit: { context: 160000, output: 32768 }, - }, - "qwen/qwen3-vl-235b-a22b-instruct": { - id: "qwen/qwen3-vl-235b-a22b-instruct", - name: "Qwen: Qwen3 VL 235B A22B Instruct", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-09-23", - last_updated: "2026-01-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.88, cache_read: 0.11 }, - limit: { context: 262144, output: 52429 }, - }, - "qwen/qwen-2.5-72b-instruct": { - id: "qwen/qwen-2.5-72b-instruct", - name: "Qwen2.5 72B Instruct", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-09", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.12, output: 0.39 }, - limit: { context: 32768, output: 16384 }, - }, - "qwen/qwen3-vl-30b-a3b-thinking": { - id: "qwen/qwen3-vl-30b-a3b-thinking", - name: "Qwen: Qwen3 VL 30B A3B Thinking", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-10-11", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.13, output: 1.56 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen/qwen3-vl-235b-a22b-thinking": { - id: "qwen/qwen3-vl-235b-a22b-thinking", - name: "Qwen: Qwen3 VL 235B A22B Thinking", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-09-24", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.26, output: 2.6 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen/qwen3-30b-a3b-thinking-2507": { - id: "qwen/qwen3-30b-a3b-thinking-2507", - name: "Qwen: Qwen3 30B A3B Thinking 2507", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-07-29", - last_updated: "2025-07-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.051, output: 0.34 }, - limit: { context: 32768, output: 6554 }, - }, - "qwen/qwen-plus": { - id: "qwen/qwen-plus", - name: "Qwen: Qwen-Plus", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-01-25", - last_updated: "2025-09-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.2, cache_read: 0.08 }, - limit: { context: 1000000, output: 32768 }, - }, - "qwen/qwen3-235b-a22b-thinking-2507": { - id: "qwen/qwen3-235b-a22b-thinking-2507", - name: "Qwen: Qwen3 235B A22B Thinking 2507", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-07-25", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.11, output: 0.6 }, - limit: { context: 262144, output: 262144 }, - }, - "qwen/qwen3.5-9b": { - id: "qwen/qwen3.5-9b", - name: "Qwen: Qwen3.5-9B", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-10", - last_updated: "2026-03-15", - modalities: { input: ["image", "text", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.15 }, - limit: { context: 256000, output: 32768 }, - }, - "qwen/qwen-plus-2025-07-28": { - id: "qwen/qwen-plus-2025-07-28", - name: "Qwen: Qwen Plus 0728", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-09-09", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.26, output: 0.78 }, - limit: { context: 1000000, output: 32768 }, - }, - "qwen/qwen3-vl-30b-a3b-instruct": { - id: "qwen/qwen3-vl-30b-a3b-instruct", - name: "Qwen: Qwen3 VL 30B A3B Instruct", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-10-05", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.13, output: 0.52 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen/qwen3-next-80b-a3b-instruct": { - id: "qwen/qwen3-next-80b-a3b-instruct", - name: "Qwen: Qwen3 Next 80B A3B Instruct", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-09-11", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.09, output: 1.1 }, - limit: { context: 131072, output: 52429 }, - }, - "qwen/qwen3-vl-32b-instruct": { - id: "qwen/qwen3-vl-32b-instruct", - name: "Qwen: Qwen3 VL 32B Instruct", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-10-21", - last_updated: "2025-11-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.104, output: 0.416 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen/qwen3-vl-8b-instruct": { - id: "qwen/qwen3-vl-8b-instruct", - name: "Qwen: Qwen3 VL 8B Instruct", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-10-15", - last_updated: "2025-11-25", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.08, output: 0.5 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen/qwen3.5-122b-a10b": { - id: "qwen/qwen3.5-122b-a10b", - name: "Qwen: Qwen3.5-122B-A10B", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-26", - last_updated: "2026-03-15", - modalities: { input: ["image", "text", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.26, output: 2.08 }, - limit: { context: 262144, output: 65536 }, - }, - "qwen/qwen3-max": { - id: "qwen/qwen3-max", - name: "Qwen: Qwen3 Max", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-09-05", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.2, output: 6, cache_read: 0.24 }, - limit: { context: 262144, output: 32768 }, - }, - "qwen/qwen3-30b-a3b": { - id: "qwen/qwen3-30b-a3b", - name: "Qwen: Qwen3 30B A3B", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-04", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.08, output: 0.28, cache_read: 0.03 }, - limit: { context: 40960, output: 40960 }, - }, - "qwen/qwen3-coder-plus": { - id: "qwen/qwen3-coder-plus", - name: "Qwen: Qwen3 Coder Plus", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-07-01", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.65, output: 3.25, cache_read: 0.2 }, - limit: { context: 1000000, output: 65536 }, - }, - "qwen/qwen-plus-2025-07-28:thinking": { - id: "qwen/qwen-plus-2025-07-28:thinking", - name: "Qwen: Qwen Plus 0728 (thinking)", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-09-09", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.26, output: 0.78 }, - limit: { context: 1000000, output: 32768 }, - }, - "qwen/qwen3.5-flash-02-23": { - id: "qwen/qwen3.5-flash-02-23", - name: "Qwen: Qwen3.5-Flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-26", - last_updated: "2026-03-15", - modalities: { input: ["image", "text", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 1000000, output: 65536 }, - }, - "eleutherai/llemma_7b": { - id: "eleutherai/llemma_7b", - name: "EleutherAI: Llemma 7b", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-14", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.8, output: 1.2 }, - limit: { context: 4096, output: 4096 }, - }, - "x-ai/grok-3": { - id: "x-ai/grok-3", - name: "xAI: Grok 3", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.75 }, - limit: { context: 131072, output: 26215 }, - }, - "x-ai/grok-code-fast-1": { - id: "x-ai/grok-code-fast-1", - name: "xAI: Grok Code Fast 1", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-26", - last_updated: "2025-08-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.5, cache_read: 0.02 }, - limit: { context: 256000, output: 10000 }, - }, - "x-ai/grok-4-fast": { - id: "x-ai/grok-4-fast", - name: "xAI: Grok 4 Fast", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-19", - last_updated: "2025-08-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 30000 }, - }, - "x-ai/grok-4": { - id: "x-ai/grok-4", - name: "xAI: Grok 4", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.75 }, - limit: { context: 256000, output: 51200 }, - }, - "x-ai/grok-4.1-fast": { - id: "x-ai/grok-4.1-fast", - name: "xAI: Grok 4.1 Fast", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-11-19", - last_updated: "2025-11-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 30000 }, - }, - "x-ai/grok-3-mini-beta": { - id: "x-ai/grok-3-mini-beta", - name: "xAI: Grok 3 Mini Beta", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.5, cache_read: 0.075 }, - limit: { context: 131072, output: 26215 }, - }, - "x-ai/grok-3-mini": { - id: "x-ai/grok-3-mini", - name: "xAI: Grok 3 Mini", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.5, cache_read: 0.075 }, - limit: { context: 131072, output: 26215 }, - }, - "x-ai/grok-code-fast-1:optimized:free": { - id: "x-ai/grok-code-fast-1:optimized:free", - name: "xAI: Grok Code Fast 1 Optimized (experimental, free)", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-27", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 256000, output: 10000 }, - }, - "x-ai/grok-4.20-multi-agent-beta": { - id: "x-ai/grok-4.20-multi-agent-beta", - name: "xAI: Grok 4.20 Multi-Agent Beta", - attachment: true, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2026-03-12", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6 }, - limit: { context: 2000000, output: 32768 }, - }, - "x-ai/grok-4.20-beta": { - id: "x-ai/grok-4.20-beta", - name: "xAI: Grok 4.20 Beta", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-12", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6 }, - limit: { context: 2000000, output: 32768 }, - }, - "x-ai/grok-3-beta": { - id: "x-ai/grok-3-beta", - name: "xAI: Grok 3 Beta", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.75 }, - limit: { context: 131072, output: 26215 }, - }, - "meta-llama/llama-4-scout": { - id: "meta-llama/llama-4-scout", - name: "Meta: Llama 4 Scout", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.08, output: 0.3 }, - limit: { context: 327680, output: 16384 }, - }, - "meta-llama/llama-3.1-70b-instruct": { - id: "meta-llama/llama-3.1-70b-instruct", - name: "Meta: Llama 3.1 70B Instruct", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-07-16", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 0.4 }, - limit: { context: 131072, output: 26215 }, - }, - "meta-llama/llama-3.3-70b-instruct": { - id: "meta-llama/llama-3.3-70b-instruct", - name: "Meta: Llama 3.3 70B Instruct", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-08-01", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.32 }, - limit: { context: 131072, output: 16384 }, - }, - "meta-llama/llama-3-70b-instruct": { - id: "meta-llama/llama-3-70b-instruct", - name: "Meta: Llama 3 70B Instruct", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.51, output: 0.74 }, - limit: { context: 8192, output: 8000 }, - }, - "meta-llama/llama-3.2-11b-vision-instruct": { - id: "meta-llama/llama-3.2-11b-vision-instruct", - name: "Meta: Llama 3.2 11B Vision Instruct", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, release_date: "2024-09-25", - last_updated: "2024-09-25", + last_updated: "2026-03-17", modalities: { input: ["text", "image"], output: ["text"] }, open_weights: true, - cost: { input: 0.049, output: 0.049 }, - limit: { context: 131072, output: 16384 }, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 128000, output: 4096 }, }, - "meta-llama/llama-3.2-3b-instruct": { - id: "meta-llama/llama-3.2-3b-instruct", - name: "Meta: Llama 3.2 3B Instruct", + "whisper-large-v3": { + id: "whisper-large-v3", + name: "Whisper Large v3", + family: "whisper", attachment: false, reasoning: false, tool_call: false, - temperature: true, - release_date: "2024-09-18", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, + temperature: false, + knowledge: "2023-09", + release_date: "2023-09-01", + last_updated: "2026-03-17", + modalities: { input: ["audio"], output: ["text"] }, open_weights: true, - cost: { input: 0.051, output: 0.34 }, - limit: { context: 80000, output: 16384 }, + cost: { input: 0.003, output: 0 }, + limit: { context: 0, output: 8192 }, }, - "meta-llama/llama-guard-3-8b": { - id: "meta-llama/llama-guard-3-8b", - name: "Llama Guard 3 8B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-04-18", - last_updated: "2026-02-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0.06 }, - limit: { context: 131072, output: 26215 }, - }, - "meta-llama/llama-3.2-1b-instruct": { - id: "meta-llama/llama-3.2-1b-instruct", - name: "Meta: Llama 3.2 1B Instruct", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-09-18", - last_updated: "2026-01-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.027, output: 0.2 }, - limit: { context: 60000, output: 12000 }, - }, - "meta-llama/llama-3.1-405b-instruct": { - id: "meta-llama/llama-3.1-405b-instruct", - name: "Meta: Llama 3.1 405B Instruct", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-07-16", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 4, output: 4 }, - limit: { context: 131000, output: 26200 }, - }, - "meta-llama/llama-4-maverick": { - id: "meta-llama/llama-4-maverick", - name: "Meta: Llama 4 Maverick", + "voxtral-small-24b-2507": { + id: "voxtral-small-24b-2507", + name: "Voxtral Small 24B 2507", + family: "voxtral", attachment: true, reasoning: false, tool_call: true, temperature: true, - release_date: "2025-04-05", - last_updated: "2025-12-24", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 1048576, output: 16384 }, - }, - "meta-llama/llama-3.1-8b-instruct": { - id: "meta-llama/llama-3.1-8b-instruct", - name: "Meta: Llama 3.1 8B Instruct", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-07-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0.05 }, - limit: { context: 16384, output: 16384 }, - }, - "meta-llama/llama-guard-4-12b": { - id: "meta-llama/llama-guard-4-12b", - name: "Meta: Llama Guard 4 12B", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.18, output: 0.18 }, - limit: { context: 163840, output: 32768 }, - }, - "meta-llama/llama-3-8b-instruct": { - id: "meta-llama/llama-3-8b-instruct", - name: "Meta: Llama 3 8B Instruct", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-04-25", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.04 }, - limit: { context: 8192, output: 16384 }, - }, - "meta-llama/llama-3.1-405b": { - id: "meta-llama/llama-3.1-405b", - name: "Meta: Llama 3.1 405B (base)", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-08-02", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 4, output: 4 }, - limit: { context: 32768, output: 32768 }, - }, - "tngtech/deepseek-r1t2-chimera": { - id: "tngtech/deepseek-r1t2-chimera", - name: "TNG: DeepSeek R1T2 Chimera", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-07-08", - last_updated: "2025-07-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.25, output: 0.85, cache_read: 0.125 }, - limit: { context: 163840, output: 163840 }, - }, - "mistralai/voxtral-small-24b-2507": { - id: "mistralai/voxtral-small-24b-2507", - name: "Mistral: Voxtral Small 24B 2507", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, release_date: "2025-07-01", - last_updated: "2025-07-01", + last_updated: "2026-03-17", modalities: { input: ["text", "audio"], output: ["text"] }, open_weights: true, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 32000, output: 6400 }, + cost: { input: 0.15, output: 0.35 }, + limit: { context: 32000, output: 16384 }, }, - "mistralai/ministral-3b-2512": { - id: "mistralai/ministral-3b-2512", - name: "Mistral: Ministral 3 3B 2512", + "gemma-3-27b-it": { + id: "gemma-3-27b-it", + name: "Gemma-3-27B-IT", + family: "gemma", attachment: true, - reasoning: false, + reasoning: true, tool_call: true, temperature: true, - release_date: "2025-12-02", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.1 }, - limit: { context: 131072, output: 32768 }, - }, - "mistralai/mistral-saba": { - id: "mistralai/mistral-saba", - name: "Mistral: Saba", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-02-17", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 0.6 }, - limit: { context: 32768, output: 32768 }, - }, - "mistralai/mistral-medium-3": { - id: "mistralai/mistral-medium-3", - name: "Mistral: Mistral Medium 3", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-05-07", - last_updated: "2025-05-07", + knowledge: "2024-12", + release_date: "2024-12-01", + last_updated: "2026-03-17", modalities: { input: ["text", "image"], output: ["text"] }, open_weights: false, - cost: { input: 0.4, output: 2 }, - limit: { context: 131072, output: 26215 }, + cost: { input: 0.25, output: 0.5 }, + limit: { context: 40000, output: 8192 }, }, - "mistralai/mistral-small-24b-instruct-2501": { - id: "mistralai/mistral-small-24b-instruct-2501", - name: "Mistral: Mistral Small 3", + "bge-multilingual-gemma2": { + id: "bge-multilingual-gemma2", + name: "BGE Multilingual Gemma2", + family: "gemma", attachment: false, reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.08 }, - limit: { context: 32768, output: 16384 }, - }, - "mistralai/codestral-2508": { - id: "mistralai/codestral-2508", - name: "Mistral: Codestral 2508", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-08-01", - last_updated: "2025-08-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.9 }, - limit: { context: 256000, output: 51200 }, - }, - "mistralai/pixtral-large-2411": { - id: "mistralai/pixtral-large-2411", - name: "Mistral: Pixtral Large 2411", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-11-19", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: true, - cost: { input: 2, output: 6 }, - limit: { context: 131072, output: 32768 }, - }, - "mistralai/mistral-small-3.1-24b-instruct": { - id: "mistralai/mistral-small-3.1-24b-instruct", - name: "Mistral: Mistral Small 3.1 24B", - attachment: true, - reasoning: false, tool_call: false, - temperature: true, - release_date: "2025-03-17", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.35, output: 0.56, cache_read: 0.015 }, - limit: { context: 128000, output: 131072 }, - }, - "mistralai/mistral-small-creative": { - id: "mistralai/mistral-small-creative", - name: "Mistral: Mistral Small Creative", - attachment: false, - reasoning: false, - tool_call: true, - release_date: "2025-12-17", - last_updated: "2026-03-15", + temperature: false, + release_date: "2024-07-26", + last_updated: "2025-06-15", modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 32768, output: 32768 }, - }, - "mistralai/mistral-large-2512": { - id: "mistralai/mistral-large-2512", - name: "Mistral: Mistral Large 3 2512", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-11-01", - last_updated: "2025-12-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.5, output: 1.5 }, - limit: { context: 262144, output: 52429 }, - }, - "mistralai/ministral-8b-2512": { - id: "mistralai/ministral-8b-2512", - name: "Mistral: Ministral 3 8B 2512", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-12-02", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.15 }, - limit: { context: 262144, output: 32768 }, - }, - "mistralai/ministral-14b-2512": { - id: "mistralai/ministral-14b-2512", - name: "Mistral: Ministral 3 14B 2512", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-12-16", - last_updated: "2025-12-16", - modalities: { input: ["text", "image"], output: ["text"] }, open_weights: false, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 262144, output: 52429 }, + cost: { input: 0.1, output: 0 }, + limit: { context: 8191, output: 3072 }, }, - "mistralai/devstral-medium": { - id: "mistralai/devstral-medium", - name: "Mistral: Devstral Medium", + "qwen3-coder-30b-a3b-instruct": { + id: "qwen3-coder-30b-a3b-instruct", + name: "Qwen3-Coder 30B-A3B Instruct", + family: "qwen", attachment: false, reasoning: false, tool_call: true, temperature: true, - release_date: "2025-07-10", - last_updated: "2025-07-10", + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2026-03-17", modalities: { input: ["text"], output: ["text"] }, open_weights: true, - cost: { input: 0.4, output: 2 }, - limit: { context: 131072, output: 26215 }, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 128000, output: 32768 }, }, - "mistralai/mistral-large-2407": { - id: "mistralai/mistral-large-2407", - name: "Mistral Large 2407", + "mistral-small-3.2-24b-instruct-2506": { + id: "mistral-small-3.2-24b-instruct-2506", + name: "Mistral Small 3.2 24B Instruct (2506)", + family: "mistral-small", attachment: false, reasoning: false, tool_call: true, temperature: true, - release_date: "2024-11-19", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2, output: 6 }, - limit: { context: 131072, output: 32768 }, - }, - "mistralai/mistral-nemo": { - id: "mistralai/mistral-nemo", - name: "Mistral: Mistral Nemo", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-07-01", - last_updated: "2024-07-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0.04 }, - limit: { context: 131072, output: 16384 }, - }, - "mistralai/devstral-2512": { - id: "mistralai/devstral-2512", - name: "Mistral: Devstral 2 2512", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-09-12", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 2, cache_read: 0.025 }, - limit: { context: 262144, output: 65536 }, - }, - "mistralai/devstral-small": { - id: "mistralai/devstral-small", - name: "Mistral: Devstral Small 1.1", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-05-07", - last_updated: "2025-07-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 131072, output: 26215 }, - }, - "mistralai/mistral-small-3.2-24b-instruct": { - id: "mistralai/mistral-small-3.2-24b-instruct", - name: "Mistral: Mistral Small 3.2 24B", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, release_date: "2025-06-20", - last_updated: "2025-06-20", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.06, output: 0.18, cache_read: 0.03 }, - limit: { context: 131072, output: 131072 }, - }, - "mistralai/mixtral-8x22b-instruct": { - id: "mistralai/mixtral-8x22b-instruct", - name: "Mistral: Mixtral 8x22B Instruct", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-04-17", - last_updated: "2024-04-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2, output: 6 }, - limit: { context: 65536, output: 13108 }, - }, - "mistralai/mistral-large-2411": { - id: "mistralai/mistral-large-2411", - name: "Mistral Large 2411", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-07-24", - last_updated: "2024-11-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2, output: 6 }, - limit: { context: 131072, output: 26215 }, - }, - "mistralai/mistral-7b-instruct-v0.1": { - id: "mistralai/mistral-7b-instruct-v0.1", - name: "Mistral: Mistral 7B Instruct v0.1", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.11, output: 0.19 }, - limit: { context: 2824, output: 565 }, - }, - "mistralai/mistral-large": { - id: "mistralai/mistral-large", - name: "Mistral Large", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-07-24", - last_updated: "2025-12-02", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2, output: 6 }, - limit: { context: 128000, output: 25600 }, - }, - "mistralai/mixtral-8x7b-instruct": { - id: "mistralai/mixtral-8x7b-instruct", - name: "Mistral: Mixtral 8x7B Instruct", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2023-12-10", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.54, output: 0.54 }, - limit: { context: 32768, output: 16384 }, - }, - "mistralai/mistral-medium-3.1": { - id: "mistralai/mistral-medium-3.1", - name: "Mistral: Mistral Medium 3.1", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-08-12", - last_updated: "2025-08-12", + last_updated: "2026-03-17", modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2 }, - limit: { context: 131072, output: 26215 }, - }, - "openai/gpt-4o-2024-11-20": { - id: "openai/gpt-4o-2024-11-20", - name: "OpenAI: GPT-4o (2024-11-20)", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-11-20", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10, cache_read: 1.25 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-5.3-codex": { - id: "openai/gpt-5.3-codex", - name: "OpenAI: GPT-5.3-Codex", - attachment: true, - reasoning: true, - tool_call: true, - release_date: "2026-02-25", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5-codex": { - id: "openai/gpt-5-codex", - name: "OpenAI: GPT-5 Codex", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5-pro": { - id: "openai/gpt-5-pro", - name: "OpenAI: GPT-5 Pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-10-06", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 120 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-4o-mini": { - id: "openai/gpt-4o-mini", - name: "OpenAI: GPT-4o-mini", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-07-18", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6, cache_read: 0.075 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-4o-mini-search-preview": { - id: "openai/gpt-4o-mini-search-preview", - name: "OpenAI: GPT-4o-mini Search Preview", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-01", - last_updated: "2025-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-4o:extended": { - id: "openai/gpt-4o:extended", - name: "OpenAI: GPT-4o (extended)", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-05-13", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 6, output: 18 }, - limit: { context: 128000, output: 64000 }, - }, - "openai/gpt-5.1-codex-max": { - id: "openai/gpt-5.1-codex-max", - name: "OpenAI: GPT-5.1-Codex-Max", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-4o-2024-05-13": { - id: "openai/gpt-4o-2024-05-13", - name: "OpenAI: GPT-4o (2024-05-13)", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-05-13", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 15 }, - limit: { context: 128000, output: 4096 }, - }, - "openai/gpt-4o-audio-preview": { - id: "openai/gpt-4o-audio-preview", - name: "OpenAI: GPT-4o Audio", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-08-15", - last_updated: "2026-03-15", - modalities: { input: ["audio", "text"], output: ["audio", "text"] }, - open_weights: false, - cost: { input: 2.5, output: 10 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-4o-mini-2024-07-18": { - id: "openai/gpt-4o-mini-2024-07-18", - name: "OpenAI: GPT-4o-mini (2024-07-18)", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-07-18", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-5.2-codex": { - id: "openai/gpt-5.2-codex", - name: "OpenAI: GPT-5.2-Codex", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2026-01-14", - last_updated: "2026-01-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-audio": { - id: "openai/gpt-audio", - name: "OpenAI: GPT Audio", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2026-01-20", - last_updated: "2026-03-15", - modalities: { input: ["audio", "text"], output: ["audio", "text"] }, - open_weights: false, - cost: { input: 2.5, output: 10 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/o3-deep-research": { - id: "openai/o3-deep-research", - name: "OpenAI: o3 Deep Research", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2024-06-26", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 10, output: 40, cache_read: 2.5 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-3.5-turbo-16k": { - id: "openai/gpt-3.5-turbo-16k", - name: "OpenAI: GPT-3.5 Turbo 16k", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2023-08-28", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 4 }, - limit: { context: 16385, output: 4096 }, - }, - "openai/o1": { - id: "openai/o1", - name: "OpenAI: o1", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-12-05", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 60, cache_read: 7.5 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-5.1": { - id: "openai/gpt-5.1", - name: "OpenAI: GPT-5.1", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-11-13", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5-image-mini": { - id: "openai/gpt-5-image-mini", - name: "OpenAI: GPT-5 Image Mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-10-16", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["image", "text"] }, - open_weights: false, - cost: { input: 2.5, output: 2 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.2-chat": { - id: "openai/gpt-5.2-chat", - name: "OpenAI: GPT-5.2 Chat", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-12-11", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/o4-mini-deep-research": { - id: "openai/o4-mini-deep-research", - name: "OpenAI: o4 Mini Deep Research", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2024-06-26", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-5-chat": { - id: "openai/gpt-5-chat", - name: "OpenAI: GPT-5 Chat", - attachment: true, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-08-07", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-5.1-chat": { - id: "openai/gpt-5.1-chat", - name: "OpenAI: GPT-5.1 Chat", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-11-13", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/o3": { - id: "openai/o3", - name: "OpenAI: o3", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-04-16", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-4-turbo-preview": { - id: "openai/gpt-4-turbo-preview", - name: "OpenAI: GPT-4 Turbo Preview", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-01-25", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 10, output: 30 }, - limit: { context: 128000, output: 4096 }, - }, - "openai/gpt-5-image": { - id: "openai/gpt-5-image", - name: "OpenAI: GPT-5 Image", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-10-14", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["image", "text"] }, - open_weights: false, - cost: { input: 10, output: 10 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-4.1-nano": { - id: "openai/gpt-4.1-nano", - name: "OpenAI: GPT-4.1 Nano", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-04-14", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, - limit: { context: 1047576, output: 32768 }, - }, - "openai/gpt-3.5-turbo-0613": { - id: "openai/gpt-3.5-turbo-0613", - name: "OpenAI: GPT-3.5 Turbo (older v0613)", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2023-06-13", - last_updated: "2023-06-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 2 }, - limit: { context: 4095, output: 4096 }, - }, - "openai/gpt-3.5-turbo": { - id: "openai/gpt-3.5-turbo", - name: "OpenAI: GPT-3.5 Turbo", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2023-03-01", - last_updated: "2023-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 1.5 }, - limit: { context: 16385, output: 4096 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "OpenAI: gpt-oss-120b", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, open_weights: true, - cost: { input: 0.039, output: 0.19 }, - limit: { context: 131072, output: 26215 }, + cost: { input: 0.15, output: 0.35 }, + limit: { context: 128000, output: 32768 }, }, - "openai/gpt-5.1-codex-mini": { - id: "openai/gpt-5.1-codex-mini", - name: "OpenAI: GPT-5.1-Codex-Mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.025 }, - limit: { context: 400000, output: 100000 }, - }, - "openai/gpt-5.2": { - id: "openai/gpt-5.2", - name: "OpenAI: GPT-5.2", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-12-11", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-4.1": { - id: "openai/gpt-4.1", - name: "OpenAI: GPT-4.1", + "gpt-oss-120b": { + id: "gpt-oss-120b", + name: "GPT-OSS 120B", + family: "gpt-oss", attachment: true, reasoning: false, tool_call: true, temperature: true, - release_date: "2025-04-14", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 1047576, output: 32768 }, - }, - "openai/o3-pro": { - id: "openai/o3-pro", - name: "OpenAI: o3 Pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-04-16", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 20, output: 80 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-4-turbo": { - id: "openai/gpt-4-turbo", - name: "OpenAI: GPT-4 Turbo", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2023-09-13", - last_updated: "2024-04-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 10, output: 30 }, - limit: { context: 128000, output: 4096 }, - }, - "openai/gpt-5": { - id: "openai/gpt-5", - name: "OpenAI: GPT-5", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-08-07", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/o4-mini": { - id: "openai/o4-mini", - name: "OpenAI: o4 Mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-04-16", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.275 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-4.1-mini": { - id: "openai/gpt-4.1-mini", - name: "OpenAI: GPT-4.1 Mini", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-04-14", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.6, cache_read: 0.1 }, - limit: { context: 1047576, output: 32768 }, - }, - "openai/gpt-4-0314": { - id: "openai/gpt-4-0314", - name: "OpenAI: GPT-4 (older v0314)", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2023-05-28", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 30, output: 60 }, - limit: { context: 8191, output: 4096 }, - }, - "openai/gpt-audio-mini": { - id: "openai/gpt-audio-mini", - name: "OpenAI: GPT Audio Mini", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2026-01-20", - last_updated: "2026-03-15", - modalities: { input: ["audio", "text"], output: ["audio", "text"] }, - open_weights: false, - cost: { input: 0.6, output: 2.4 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-5.4": { - id: "openai/gpt-5.4", - name: "OpenAI: GPT-5.4", - attachment: true, - reasoning: true, - tool_call: true, - release_date: "2026-03-06", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 15 }, - limit: { context: 1050000, output: 128000 }, - }, - "openai/gpt-5.4-pro": { - id: "openai/gpt-5.4-pro", - name: "OpenAI: GPT-5.4 Pro", - attachment: true, - reasoning: true, - tool_call: true, - release_date: "2026-03-06", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 30, output: 180 }, - limit: { context: 1050000, output: 128000 }, - }, - "openai/gpt-5.3-chat": { - id: "openai/gpt-5.3-chat", - name: "OpenAI: GPT-5.3 Chat", - attachment: true, - reasoning: false, - tool_call: true, - release_date: "2026-03-04", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-4-1106-preview": { - id: "openai/gpt-4-1106-preview", - name: "OpenAI: GPT-4 Turbo (older v1106)", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2023-11-06", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 10, output: 30 }, - limit: { context: 128000, output: 4096 }, - }, - "openai/gpt-oss-safeguard-20b": { - id: "openai/gpt-oss-safeguard-20b", - name: "OpenAI: gpt-oss-safeguard-20b", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-10-29", - last_updated: "2025-10-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.075, output: 0.3, cache_read: 0.037 }, - limit: { context: 131072, output: 65536 }, - }, - "openai/o1-pro": { - id: "openai/o1-pro", - name: "OpenAI: o1-pro", - attachment: true, - reasoning: true, - tool_call: false, - temperature: false, - release_date: "2025-03-19", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 150, output: 600 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-5.1-codex": { - id: "openai/gpt-5.1-codex", - name: "OpenAI: GPT-5.1-Codex", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-5.2-pro": { - id: "openai/gpt-5.2-pro", - name: "OpenAI: GPT-5.2 Pro", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-12-11", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 21, output: 168 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/o3-mini": { - id: "openai/o3-mini", - name: "OpenAI: o3 Mini", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2024-12-20", - last_updated: "2026-03-15", - modalities: { input: ["pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-4o-2024-08-06": { - id: "openai/gpt-4o-2024-08-06", - name: "OpenAI: GPT-4o (2024-08-06)", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-08-06", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10, cache_read: 1.25 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-5-mini": { - id: "openai/gpt-5-mini", - name: "OpenAI: GPT-5 Mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-08-07", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.025 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-oss-20b": { - id: "openai/gpt-oss-20b", - name: "OpenAI: gpt-oss-20b", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.14 }, - limit: { context: 131072, output: 26215 }, - }, - "openai/gpt-4": { - id: "openai/gpt-4", - name: "OpenAI: GPT-4", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2023-03-14", - last_updated: "2024-04-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 30, output: 60 }, - limit: { context: 8191, output: 4096 }, - }, - "openai/gpt-5-nano": { - id: "openai/gpt-5-nano", - name: "OpenAI: GPT-5 Nano", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - release_date: "2025-08-07", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.4, cache_read: 0.005 }, - limit: { context: 400000, output: 128000 }, - }, - "openai/gpt-3.5-turbo-instruct": { - id: "openai/gpt-3.5-turbo-instruct", - name: "OpenAI: GPT-3.5 Turbo Instruct", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2023-03-01", - last_updated: "2023-09-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.5, output: 2 }, - limit: { context: 4095, output: 4096 }, - }, - "openai/o3-mini-high": { - id: "openai/o3-mini-high", - name: "OpenAI: o3 Mini High", - attachment: true, - reasoning: false, - tool_call: true, - temperature: false, - release_date: "2025-01-31", - last_updated: "2026-03-15", - modalities: { input: ["pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/o4-mini-high": { - id: "openai/o4-mini-high", - name: "OpenAI: o4 Mini High", - attachment: true, - reasoning: true, - tool_call: true, - release_date: "2025-04-17", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4 }, - limit: { context: 200000, output: 100000 }, - }, - "openai/gpt-4o": { - id: "openai/gpt-4o", - name: "OpenAI: GPT-4o", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-05-13", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10, cache_read: 1.25 }, - limit: { context: 128000, output: 16384 }, - }, - "openai/gpt-4o-search-preview": { - id: "openai/gpt-4o-search-preview", - name: "OpenAI: GPT-4o Search Preview", - attachment: false, - reasoning: false, - tool_call: false, - release_date: "2025-03-13", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10 }, - limit: { context: 128000, output: 16384 }, - }, - "morph/morph-v3-fast": { - id: "morph/morph-v3-fast", - name: "Morph: Morph V3 Fast", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-08-15", - last_updated: "2024-08-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 1.2 }, - limit: { context: 81920, output: 38000 }, - }, - "morph/morph-v3-large": { - id: "morph/morph-v3-large", - name: "Morph: Morph V3 Large", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-08-15", - last_updated: "2024-08-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.9, output: 1.9 }, - limit: { context: 262144, output: 131072 }, - }, - "cohere/command-r-08-2024": { - id: "cohere/command-r-08-2024", - name: "Cohere: Command R (08-2024)", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-08-30", - last_updated: "2024-08-30", + release_date: "2024-01-01", + last_updated: "2026-03-17", modalities: { input: ["text"], output: ["text"] }, open_weights: true, cost: { input: 0.15, output: 0.6 }, - limit: { context: 128000, output: 4000 }, + limit: { context: 128000, output: 32768 }, }, - "cohere/command-r-plus-08-2024": { - id: "cohere/command-r-plus-08-2024", - name: "Cohere: Command R+ (08-2024)", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-08-30", - last_updated: "2024-08-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.5, output: 10 }, - limit: { context: 128000, output: 4000 }, - }, - "cohere/command-r7b-12-2024": { - id: "cohere/command-r7b-12-2024", - name: "Cohere: Command R7B (12-2024)", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-02-27", - last_updated: "2024-02-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.0375, output: 0.15 }, - limit: { context: 128000, output: 4000 }, - }, - "cohere/command-a": { - id: "cohere/command-a", - name: "Cohere: Command A", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-03-13", - last_updated: "2025-03-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.5, output: 10 }, - limit: { context: 256000, output: 8192 }, - }, - "minimax/minimax-m1": { - id: "minimax/minimax-m1", - name: "MiniMax: MiniMax M1", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 2.2 }, - limit: { context: 1000000, output: 40000 }, - }, - "minimax/minimax-01": { - id: "minimax/minimax-01", - name: "MiniMax: MiniMax-01", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-01-15", - last_updated: "2025-01-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.2, output: 1.1 }, - limit: { context: 1000192, output: 1000192 }, - }, - "minimax/minimax-m2.1": { - id: "minimax/minimax-m2.1", - name: "MiniMax: MiniMax M2.1", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 0.95, cache_read: 0.03 }, - limit: { context: 196608, output: 39322 }, - }, - "minimax/minimax-m2-her": { - id: "minimax/minimax-m2-her", - name: "MiniMax: MiniMax M2-her", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2026-01-23", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 65536, output: 2048 }, - }, - "minimax/minimax-m2.5:free": { - id: "minimax/minimax-m2.5:free", - name: "MiniMax: MiniMax M2.5 (free)", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0, cache_read: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "minimax/minimax-m2": { - id: "minimax/minimax-m2", - name: "MiniMax: MiniMax M2", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-10-23", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.255, output: 1, cache_read: 0.03 }, - limit: { context: 196608, output: 196608 }, - }, - "minimax/minimax-m2.5": { - id: "minimax/minimax-m2.5", - name: "MiniMax: MiniMax M2.5", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.25, output: 1.2, cache_read: 0.029 }, - limit: { context: 196608, output: 196608 }, - }, - "sao10k/l3.1-70b-hanami-x1": { - id: "sao10k/l3.1-70b-hanami-x1", - name: "Sao10K: Llama 3.1 70B Hanami x1", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-01-08", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 3, output: 3 }, - limit: { context: 16000, output: 16000 }, - }, - "sao10k/l3-lunaris-8b": { - id: "sao10k/l3-lunaris-8b", - name: "Sao10K: Llama 3 8B Lunaris", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-08-13", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.04, output: 0.05 }, - limit: { context: 8192, output: 8192 }, - }, - "sao10k/l3.1-euryale-70b": { - id: "sao10k/l3.1-euryale-70b", - name: "Sao10K: Llama 3.1 Euryale 70B v2.2", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-08-28", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.85, output: 0.85 }, - limit: { context: 131072, output: 16384 }, - }, - "sao10k/l3-euryale-70b": { - id: "sao10k/l3-euryale-70b", - name: "Sao10k: Llama 3 Euryale 70B v2.1", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-06-18", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.48, output: 1.48 }, - limit: { context: 8192, output: 8192 }, - }, - "sao10k/l3.3-euryale-70b": { - id: "sao10k/l3.3-euryale-70b", - name: "Sao10K: Llama 3.3 Euryale 70B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-12-18", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.65, output: 0.75 }, - limit: { context: 131072, output: 16384 }, - }, - "writer/palmyra-x5": { - id: "writer/palmyra-x5", - name: "Writer: Palmyra X5", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2025-04-28", - last_updated: "2025-04-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 6 }, - limit: { context: 1040000, output: 8192 }, - }, - "perplexity/sonar-reasoning-pro": { - id: "perplexity/sonar-reasoning-pro", - name: "Perplexity: Sonar Reasoning Pro", - attachment: true, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2024-01-01", - last_updated: "2025-09-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8 }, - limit: { context: 128000, output: 25600 }, - }, - "perplexity/sonar": { - id: "perplexity/sonar", - name: "Perplexity: Sonar", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-01-01", - last_updated: "2025-09-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 1 }, - limit: { context: 127072, output: 25415 }, - }, - "perplexity/sonar-deep-research": { - id: "perplexity/sonar-deep-research", - name: "Perplexity: Sonar Deep Research", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-01-27", - last_updated: "2025-01-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8 }, - limit: { context: 128000, output: 25600 }, - }, - "perplexity/sonar-pro": { - id: "perplexity/sonar-pro", - name: "Perplexity: Sonar Pro", - attachment: true, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-01-01", - last_updated: "2025-09-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 200000, output: 8000 }, - }, - "perplexity/sonar-pro-search": { - id: "perplexity/sonar-pro-search", - name: "Perplexity: Sonar Pro Search", - attachment: true, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-10-31", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 200000, output: 8000 }, - }, - "bytedance-seed/seed-2.0-mini": { - id: "bytedance-seed/seed-2.0-mini", - name: "ByteDance Seed: Seed-2.0-Mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-27", - last_updated: "2026-03-15", - modalities: { input: ["image", "text", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 262144, output: 131072 }, - }, - "bytedance-seed/seed-1.6": { - id: "bytedance-seed/seed-1.6", - name: "ByteDance Seed: Seed 1.6", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-09", - last_updated: "2025-09", - modalities: { input: ["image", "text", "video"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2 }, - limit: { context: 262144, output: 32768 }, - }, - "bytedance-seed/seed-1.6-flash": { - id: "bytedance-seed/seed-1.6-flash", - name: "ByteDance Seed: Seed 1.6 Flash", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-12-23", - last_updated: "2026-03-15", - modalities: { input: ["image", "text", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.075, output: 0.3 }, - limit: { context: 262144, output: 32768 }, - }, - "bytedance-seed/seed-2.0-lite": { - id: "bytedance-seed/seed-2.0-lite", - name: "ByteDance Seed: Seed-2.0-Lite", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-10", - last_updated: "2026-03-15", - modalities: { input: ["image", "text", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.25, output: 2 }, - limit: { context: 262144, output: 131072 }, - }, - "anthropic/claude-3.5-sonnet": { - id: "anthropic/claude-3.5-sonnet", - name: "Anthropic: Claude 3.5 Sonnet", + "mistral-nemo-instruct-2407": { + id: "mistral-nemo-instruct-2407", + name: "Mistral Nemo Instruct 2407", + family: "mistral-nemo", attachment: true, reasoning: false, tool_call: true, temperature: true, - release_date: "2024-10-22", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 6, output: 30 }, - limit: { context: 200000, output: 8192 }, - }, - "anthropic/claude-3.7-sonnet": { - id: "anthropic/claude-3.7-sonnet", - name: "Anthropic: Claude 3.7 Sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-02-19", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-opus-4.1": { - id: "anthropic/claude-opus-4.1", - name: "Anthropic: Claude Opus 4.1", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "anthropic/claude-3-haiku": { - id: "anthropic/claude-3-haiku", - name: "Anthropic: Claude 3 Haiku", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-03-07", - last_updated: "2024-03-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1.25, cache_read: 0.03, cache_write: 0.3 }, - limit: { context: 200000, output: 4096 }, - }, - "anthropic/claude-sonnet-4.6": { - id: "anthropic/claude-sonnet-4.6", - name: "Anthropic: Claude Sonnet 4.6", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-17", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 1000000, output: 128000 }, - }, - "anthropic/claude-haiku-4.5": { - id: "anthropic/claude-haiku-4.5", - name: "Anthropic: Claude Haiku 4.5", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-3.5-haiku": { - id: "anthropic/claude-3.5-haiku", - name: "Anthropic: Claude 3.5 Haiku", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, - limit: { context: 200000, output: 8192 }, - }, - "anthropic/claude-3.7-sonnet:thinking": { - id: "anthropic/claude-3.7-sonnet:thinking", - name: "Anthropic: Claude 3.7 Sonnet (thinking)", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-02-19", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-opus-4.5": { - id: "anthropic/claude-opus-4.5", - name: "Anthropic: Claude Opus 4.5", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-11-24", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-opus-4": { - id: "anthropic/claude-opus-4", - name: "Anthropic: Claude Opus 4", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-05-22", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - }, - "anthropic/claude-sonnet-4": { - id: "anthropic/claude-sonnet-4", - name: "Anthropic: Claude Sonnet 4", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-05-22", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - }, - "anthropic/claude-sonnet-4.5": { - id: "anthropic/claude-sonnet-4.5", - name: "Anthropic: Claude Sonnet 4.5", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-09-29", - last_updated: "2026-03-15", - modalities: { input: ["image", "pdf", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 1000000, output: 64000 }, - }, - "anthropic/claude-opus-4.6": { - id: "anthropic/claude-opus-4.6", - name: "Anthropic: Claude Opus 4.6", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 1000000, output: 128000 }, - }, - "ai21/jamba-large-1.7": { - id: "ai21/jamba-large-1.7", - name: "AI21: Jamba Large 1.7", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-08-09", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8 }, - limit: { context: 256000, output: 4096 }, - }, - "kilo/auto": { - id: "kilo/auto", - name: "Kilo: Auto", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2024-06-01", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25 }, - limit: { context: 1000000, output: 128000 }, - }, - "kilo/auto-free": { - id: "kilo/auto-free", - name: "Deprecated Kilo Auto Free", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-15", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 204800, output: 131072 }, - }, - "kilo/auto-small": { - id: "kilo/auto-small", - name: "Deprecated Kilo Auto Small", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-15", - last_updated: "2026-03-15", - modalities: { input: ["image", "text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.4 }, - limit: { context: 400000, output: 128000 }, - }, - "inflection/inflection-3-productivity": { - id: "inflection/inflection-3-productivity", - name: "Inflection: Inflection 3 Productivity", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-10-11", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10 }, - limit: { context: 8000, output: 1024 }, - }, - "inflection/inflection-3-pi": { - id: "inflection/inflection-3-pi", - name: "Inflection: Inflection 3 Pi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-10-11", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10 }, - limit: { context: 8000, output: 1024 }, - }, - "nousresearch/hermes-4-405b": { - id: "nousresearch/hermes-4-405b", - name: "Nous: Hermes 4 405B", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-08-25", - last_updated: "2025-08-25", + release_date: "2024-07-25", + last_updated: "2026-03-17", modalities: { input: ["text"], output: ["text"] }, open_weights: true, - cost: { input: 1, output: 3 }, - limit: { context: 131072, output: 26215 }, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 128000, output: 8192 }, }, - "nousresearch/hermes-3-llama-3.1-70b": { - id: "nousresearch/hermes-3-llama-3.1-70b", - name: "Nous: Hermes 3 70B Instruct", + "llama-3.1-8b-instruct": { + id: "llama-3.1-8b-instruct", + name: "Llama 3.1 8B Instruct", + family: "llama", attachment: false, reasoning: false, - tool_call: false, + tool_call: true, temperature: true, - release_date: "2024-08-18", - last_updated: "2026-03-15", + knowledge: "2023-12", + release_date: "2025-01-01", + last_updated: "2026-03-17", modalities: { input: ["text"], output: ["text"] }, open_weights: true, - cost: { input: 0.3, output: 0.3 }, - limit: { context: 131072, output: 32768 }, - }, - "nousresearch/hermes-4-70b": { - id: "nousresearch/hermes-4-70b", - name: "Nous: Hermes 4 70B", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2025-08-25", - last_updated: "2026-03-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.13, output: 0.4, cache_read: 0.055 }, - limit: { context: 131072, output: 131072 }, - }, - "nousresearch/hermes-3-llama-3.1-405b": { - id: "nousresearch/hermes-3-llama-3.1-405b", - name: "Nous: Hermes 3 405B Instruct", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-08-16", - last_updated: "2024-08-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1, output: 1 }, - limit: { context: 131072, output: 16384 }, - }, - "nousresearch/hermes-2-pro-llama-3-8b": { - id: "nousresearch/hermes-2-pro-llama-3-8b", - name: "NousResearch: Hermes 2 Pro - Llama-3 8B", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - release_date: "2024-05-27", - last_updated: "2024-06-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.14, output: 0.14 }, - limit: { context: 8192, output: 8192 }, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 128000, output: 16384 }, }, }, }, @@ -49020,9 +1926,121 @@ export const snapshot = { name: "NanoGPT", doc: "https://docs.nano-gpt.com", models: { - "exa-research-pro": { - id: "exa-research-pro", - name: "Exa (Research Pro)", + "glm-4-flash": { + id: "glm-4-flash", + name: "GLM-4 Flash", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-08-01", + last_updated: "2024-08-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1003, output: 0.1003 }, + limit: { context: 128000, input: 128000, output: 4096 }, + }, + "Meta-Llama-3-1-8B-Instruct-FP8": { + id: "Meta-Llama-3-1-8B-Instruct-FP8", + name: "Llama 3.1 8B (decentralized)", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.02, output: 0.03 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "claude-opus-4-thinking:32000": { + id: "claude-opus-4-thinking:32000", + name: "Claude 4 Opus Thinking (32K)", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 14.994, output: 75.004 }, + limit: { context: 200000, input: 200000, output: 32000 }, + }, + "gemini-2.5-pro-preview-05-06": { + id: "gemini-2.5-pro-preview-05-06", + name: "Gemini 2.5 Pro Preview 0506", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-05-06", + last_updated: "2025-05-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10 }, + limit: { context: 1048756, input: 1048756, output: 65536 }, + }, + "grok-3-mini-fast-beta": { + id: "grok-3-mini-fast-beta", + name: "Grok 3 Mini Fast Beta", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 4 }, + limit: { context: 131072, input: 131072, output: 131072 }, + }, + "MiniMax-M2": { + id: "MiniMax-M2", + name: "MiniMax M2", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-10-25", + last_updated: "2025-10-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.17, output: 1.53 }, + limit: { context: 200000, input: 200000, output: 131072 }, + }, + "command-a-reasoning-08-2025": { + id: "command-a-reasoning-08-2025", + name: "Cohere Command A (08/2025)", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-08-22", + last_updated: "2025-08-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10 }, + limit: { context: 256000, input: 256000, output: 8192 }, + }, + brave: { + id: "brave", + name: "Brave (Answers)", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2023-03-02", + last_updated: "2024-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 5 }, + limit: { context: 8192, input: 8192, output: 8192 }, + }, + "exa-research": { + id: "exa-research", + name: "Exa (Research)", attachment: false, reasoning: false, tool_call: false, @@ -49032,190 +2050,36 @@ export const snapshot = { modalities: { input: ["text"], output: ["text"] }, open_weights: false, cost: { input: 2.5, output: 2.5 }, - limit: { context: 16384, input: 16384, output: 16384 }, + limit: { context: 8192, input: 8192, output: 8192 }, }, - "gemini-2.0-pro-exp-02-05": { - id: "gemini-2.0-pro-exp-02-05", - name: "Gemini 2.0 Pro 0205", + "Llama-3.3-70B-Nova": { + id: "Llama-3.3-70B-Nova", + name: "Llama 3.3 70B Nova", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "gemini-exp-1206": { + id: "gemini-exp-1206", + name: "Gemini 2.0 Pro 1206", attachment: true, reasoning: false, tool_call: false, structured_output: false, - release_date: "2025-02-05", - last_updated: "2025-02-05", + release_date: "2024-12-06", + last_updated: "2024-12-06", modalities: { input: ["text", "image"], output: ["text"] }, open_weights: false, - cost: { input: 1.989, output: 7.956 }, + cost: { input: 1.258, output: 4.998 }, limit: { context: 2097152, input: 2097152, output: 8192 }, }, - "qwen-image": { - id: "qwen-image", - name: "Qwen Image", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["image"] }, - open_weights: false, - limit: { context: 0, output: 0 }, - }, - "Llama-3.3-70B-Shakudo": { - id: "Llama-3.3-70B-Shakudo", - name: "Llama 3.3 70B Shakudo", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "ernie-4.5-8k-preview": { - id: "ernie-4.5-8k-preview", - name: "Ernie 4.5 8k Preview", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-03-25", - last_updated: "2025-03-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.66, output: 2.6 }, - limit: { context: 8000, input: 8000, output: 16384 }, - }, - "claude-3-7-sonnet-thinking:128000": { - id: "claude-3-7-sonnet-thinking:128000", - name: "Claude 3.7 Sonnet Thinking (128K)", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-02-24", - last_updated: "2025-02-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.992, output: 14.994 }, - limit: { context: 200000, input: 200000, output: 64000 }, - }, - "phi-4-multimodal-instruct": { - id: "phi-4-multimodal-instruct", - name: "Phi 4 Multimodal", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-26", - last_updated: "2025-07-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.07, output: 0.11 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "z-image-turbo": { - id: "z-image-turbo", - name: "Z Image Turbo", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-11-27", - last_updated: "2025-11-27", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 0, output: 0 }, - }, - "Llama-3.3+(3v3.3)-70B-TenyxChat-DaybreakStorywriter": { - id: "Llama-3.3+(3v3.3)-70B-TenyxChat-DaybreakStorywriter", - name: "Llama 3.3+ 70B TenyxChat DaybreakStorywriter", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "mistral-small-31-24b-instruct": { - id: "mistral-small-31-24b-instruct", - name: "Mistral Small 31 24b Instruct", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-15", - last_updated: "2025-04-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 128000, input: 128000, output: 131072 }, - }, - "Llama-3.3-70B-The-Omega-Directive-Unslop-v2.0": { - id: "Llama-3.3-70B-The-Omega-Directive-Unslop-v2.0", - name: "Llama 3.3 70B Omega Directive Unslop v2.0", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "Baichuan-M2": { - id: "Baichuan-M2", - name: "Baichuan M2 32B Medical", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-08-19", - last_updated: "2025-08-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 15.73, output: 15.73 }, - limit: { context: 32768, input: 32768, output: 32768 }, - }, - "doubao-1.5-vision-pro-32k": { - id: "doubao-1.5-vision-pro-32k", - name: "Doubao 1.5 Vision Pro 32k", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-01-22", - last_updated: "2025-01-22", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.459, output: 1.377 }, - limit: { context: 32000, input: 32000, output: 8192 }, - }, - "GLM-4.5-Air-Derestricted-Iceblink-v2-ReExtract": { - id: "GLM-4.5-Air-Derestricted-Iceblink-v2-ReExtract", - name: "GLM 4.5 Air Derestricted Iceblink v2 ReExtract", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-12", - last_updated: "2025-12-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 131072, input: 131072, output: 65536 }, - }, "claude-opus-4-5-20251101": { id: "claude-opus-4-5-20251101", name: "Claude 4.5 Opus", @@ -49230,9 +2094,247 @@ export const snapshot = { cost: { input: 4.998, output: 25.007 }, limit: { context: 200000, input: 200000, output: 32000 }, }, - "Llama-3.3-70B-ArliAI-RPMax-v1.4": { - id: "Llama-3.3-70B-ArliAI-RPMax-v1.4", - name: "Llama 3.3 70B RPMax v1.4", + "auto-model-basic": { + id: "auto-model-basic", + name: "Auto model (Basic)", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-06-01", + last_updated: "2024-06-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 9.996, output: 19.992 }, + limit: { context: 1000000, input: 1000000, output: 1000000 }, + }, + "jamba-mini": { + id: "jamba-mini", + name: "Jamba Mini", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1989, output: 0.408 }, + limit: { context: 256000, input: 256000, output: 4096 }, + }, + "gemini-2.5-flash-lite-preview-09-2025": { + id: "gemini-2.5-flash-lite-preview-09-2025", + name: "Gemini 2.5 Flash Lite Preview (09/2025)", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 1048756, input: 1048756, output: 65536 }, + }, + "yi-large": { + id: "yi-large", + name: "Yi Large", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-05-13", + last_updated: "2024-05-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3.196, output: 3.196 }, + limit: { context: 32000, input: 32000, output: 4096 }, + }, + "auto-model-premium": { + id: "auto-model-premium", + name: "Auto model (Premium)", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-06-01", + last_updated: "2024-06-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 9.996, output: 19.992 }, + limit: { context: 1000000, input: 1000000, output: 1000000 }, + }, + "azure-gpt-4o": { + id: "azure-gpt-4o", + name: "Azure gpt-4o", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2024-05-13", + last_updated: "2024-05-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.499, output: 9.996 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "deepseek-v3-0324": { + id: "deepseek-v3-0324", + name: "DeepSeek Chat 0324", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-03-24", + last_updated: "2025-03-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 0.7 }, + limit: { context: 128000, input: 128000, output: 8192 }, + }, + "claude-3-5-haiku-20241022": { + id: "claude-3-5-haiku-20241022", + name: "Claude 3.5 Haiku", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 4 }, + limit: { context: 200000, input: 200000, output: 8192 }, + }, + "doubao-seed-1-8-251215": { + id: "doubao-seed-1-8-251215", + name: "Doubao Seed 1.8", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-15", + last_updated: "2025-12-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.612, output: 6.12 }, + limit: { context: 128000, input: 128000, output: 8192 }, + }, + "doubao-seed-1-6-250615": { + id: "doubao-seed-1-6-250615", + name: "Doubao Seed 1.6", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-06-15", + last_updated: "2025-06-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.204, output: 0.51 }, + limit: { context: 256000, input: 256000, output: 16384 }, + }, + "ernie-x1.1-preview": { + id: "ernie-x1.1-preview", + name: "ERNIE X1.1", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-09-10", + last_updated: "2025-09-10", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 64000, input: 64000, output: 8192 }, + }, + "ernie-5.0-thinking-preview": { + id: "ernie-5.0-thinking-preview", + name: "Ernie 5.0 Thinking Preview", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 2 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "glm-4-air-0111": { + id: "glm-4-air-0111", + name: "GLM 4 Air 0111", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-01-11", + last_updated: "2025-01-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1394, output: 0.1394 }, + limit: { context: 128000, input: 128000, output: 4096 }, + }, + fastgpt: { + id: "fastgpt", + name: "Web Answer", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2023-08-01", + last_updated: "2024-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 7.5, output: 7.5 }, + limit: { context: 32768, input: 32768, output: 32768 }, + }, + "doubao-seed-1-6-thinking-250615": { + id: "doubao-seed-1-6-thinking-250615", + name: "Doubao Seed 1.6 Thinking", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-06-15", + last_updated: "2025-06-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.204, output: 2.04 }, + limit: { context: 256000, input: 256000, output: 16384 }, + }, + "gemini-2.0-flash-001": { + id: "gemini-2.0-flash-001", + name: "Gemini 2.0 Flash", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1003, output: 0.408 }, + limit: { context: 1000000, input: 1000000, output: 8192 }, + }, + "claude-opus-4-1-thinking:32000": { + id: "claude-opus-4-1-thinking:32000", + name: "Claude 4.1 Opus Thinking (32K)", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 14.994, output: 75.004 }, + limit: { context: 200000, input: 200000, output: 32000 }, + }, + "Llama-3.3-70B-RAWMAW": { + id: "Llama-3.3-70B-RAWMAW", + name: "Llama 3.3 70B RAWMAW", attachment: false, reasoning: false, tool_call: false, @@ -49244,23 +2346,79 @@ export const snapshot = { cost: { input: 0.306, output: 0.306 }, limit: { context: 32768, input: 32768, output: 16384 }, }, - "jamba-large-1.6": { - id: "jamba-large-1.6", - name: "Jamba Large 1.6", + "GLM-4.5-Air-Derestricted-Steam": { + id: "GLM-4.5-Air-Derestricted-Steam", + name: "GLM 4.5 Air Derestricted Steam", attachment: false, reasoning: false, tool_call: false, structured_output: false, - release_date: "2025-03-12", - last_updated: "2025-03-12", + release_date: "2025-07-28", + last_updated: "2025-07-28", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 1.989, output: 7.99 }, - limit: { context: 256000, input: 256000, output: 4096 }, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 220600, input: 220600, output: 65536 }, }, - "Llama-3.3-70B-Aurora-Borealis": { - id: "Llama-3.3-70B-Aurora-Borealis", - name: "Llama 3.3 70B Aurora Borealis", + "claude-3-5-sonnet-20241022": { + id: "claude-3-5-sonnet-20241022", + name: "Claude 3.5 Sonnet", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-08-26", + last_updated: "2025-08-26", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.992, output: 14.994 }, + limit: { context: 200000, input: 200000, output: 8192 }, + }, + "yi-medium-200k": { + id: "yi-medium-200k", + name: "Yi Medium 200k", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-03-01", + last_updated: "2024-03-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.499, output: 2.499 }, + limit: { context: 200000, input: 200000, output: 4096 }, + }, + "Gemma-3-27B-ArliAI-RPMax-v3": { + id: "Gemma-3-27B-ArliAI-RPMax-v3", + name: "Gemma 3 27B RPMax v3", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-03", + last_updated: "2025-07-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "phi-4-mini-instruct": { + id: "phi-4-mini-instruct", + name: "Phi 4 Mini", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-26", + last_updated: "2025-07-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.17, output: 0.68 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "Llama-3.3+(3v3.3)-70B-TenyxChat-DaybreakStorywriter": { + id: "Llama-3.3+(3v3.3)-70B-TenyxChat-DaybreakStorywriter", + name: "Llama 3.3+ 70B TenyxChat DaybreakStorywriter", attachment: false, reasoning: false, tool_call: false, @@ -49286,244 +2444,20 @@ export const snapshot = { cost: { input: 0.33, output: 1.32 }, limit: { context: 32000, input: 32000, output: 16384 }, }, - "Llama-3.3-70B-Magnum-v4-SE": { - id: "Llama-3.3-70B-Magnum-v4-SE", - name: "Llama 3.3 70B Magnum v4 SE", - attachment: false, + "deepseek-chat": { + id: "deepseek-chat", + name: "DeepSeek V3/Deepseek Chat", + attachment: true, reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "deepseek-reasoner": { - id: "deepseek-reasoner", - name: "DeepSeek Reasoner", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.7 }, - limit: { context: 64000, input: 64000, output: 65536 }, - }, - "KAT-Coder-Pro-V1": { - id: "KAT-Coder-Pro-V1", - name: "KAT Coder Pro V1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-10-28", - last_updated: "2025-10-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.5, output: 6 }, - limit: { context: 256000, input: 256000, output: 32768 }, - }, - "hunyuan-turbos-20250226": { - id: "hunyuan-turbos-20250226", - name: "Hunyuan Turbo S", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, + tool_call: true, + structured_output: true, release_date: "2025-02-27", last_updated: "2025-02-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.187, output: 0.374 }, - limit: { context: 24000, input: 24000, output: 8192 }, - }, - "jamba-large-1.7": { - id: "jamba-large-1.7", - name: "Jamba Large 1.7", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.989, output: 7.99 }, - limit: { context: 256000, input: 256000, output: 4096 }, - }, - "mercury-coder-small": { - id: "mercury-coder-small", - name: "Mercury Coder Small", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-26", - last_updated: "2025-02-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "doubao-1-5-thinking-pro-vision-250415": { - id: "doubao-1-5-thinking-pro-vision-250415", - name: "Doubao 1.5 Thinking Pro Vision", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-15", - last_updated: "2025-04-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 2.4 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "yi-medium-200k": { - id: "yi-medium-200k", - name: "Yi Medium 200k", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-03-01", - last_updated: "2024-03-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.499, output: 2.499 }, - limit: { context: 200000, input: 200000, output: 4096 }, - }, - "gemini-2.5-flash-lite-preview-09-2025": { - id: "gemini-2.5-flash-lite-preview-09-2025", - name: "Gemini 2.5 Flash Lite Preview (09/2025)", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 1048756, input: 1048756, output: 65536 }, - }, - "deepseek-chat-cheaper": { - id: "deepseek-chat-cheaper", - name: "DeepSeek V3/Chat Cheaper", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-04-15", - last_updated: "2025-04-15", modalities: { input: ["text", "pdf"], output: ["text"] }, open_weights: false, cost: { input: 0.25, output: 0.7 }, limit: { context: 128000, input: 128000, output: 8192 }, }, - "step-r1-v-mini": { - id: "step-r1-v-mini", - name: "Step R1 V Mini", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-08", - last_updated: "2025-04-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 11 }, - limit: { context: 128000, input: 128000, output: 65536 }, - }, - "gemini-2.5-pro-preview-06-05": { - id: "gemini-2.5-pro-preview-06-05", - name: "Gemini 2.5 Pro Preview 0605", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-06-05", - last_updated: "2025-06-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10 }, - limit: { context: 1048756, input: 1048756, output: 65536 }, - }, - "yi-lightning": { - id: "yi-lightning", - name: "Yi Lightning", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-10-16", - last_updated: "2024-10-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2006, output: 0.2006 }, - limit: { context: 12000, input: 12000, output: 4096 }, - }, - "deepseek-reasoner-cheaper": { - id: "deepseek-reasoner-cheaper", - name: "Deepseek R1 Cheaper", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.7 }, - limit: { context: 128000, input: 128000, output: 65536 }, - }, - "ernie-4.5-turbo-vl-32k": { - id: "ernie-4.5-turbo-vl-32k", - name: "Ernie 4.5 Turbo VL 32k", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-05-08", - last_updated: "2025-05-08", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.495, output: 1.43 }, - limit: { context: 32000, input: 32000, output: 16384 }, - }, - "v0-1.0-md": { - id: "v0-1.0-md", - name: "v0 1.0 MD", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-04", - last_updated: "2025-07-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 200000, input: 200000, output: 64000 }, - }, - "Llama-3.3-70B-Ignition-v0.1": { - id: "Llama-3.3-70B-Ignition-v0.1", - name: "Llama 3.3 70B Ignition v0.1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, "glm-z1-air": { id: "glm-z1-air", name: "GLM Z1 Air", @@ -49538,93 +2472,9 @@ export const snapshot = { cost: { input: 0.07, output: 0.07 }, limit: { context: 32000, input: 32000, output: 16384 }, }, - "claude-3-5-sonnet-20241022": { - id: "claude-3-5-sonnet-20241022", - name: "Claude 3.5 Sonnet", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-08-26", - last_updated: "2025-08-26", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.992, output: 14.994 }, - limit: { context: 200000, input: 200000, output: 8192 }, - }, - "Llama-3.3-70B-RAWMAW": { - id: "Llama-3.3-70B-RAWMAW", - name: "Llama 3.3 70B RAWMAW", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "Magistral-Small-2506": { - id: "Magistral-Small-2506", - name: "Magistral Small 2506", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.4 }, - limit: { context: 32768, input: 32768, output: 32768 }, - }, - "ernie-x1-turbo-32k": { - id: "ernie-x1-turbo-32k", - name: "Ernie X1 Turbo 32k", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-05-08", - last_updated: "2025-05-08", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.165, output: 0.66 }, - limit: { context: 32000, input: 32000, output: 16384 }, - }, - "sonar-reasoning-pro": { - id: "sonar-reasoning-pro", - name: "Perplexity Reasoning Pro", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.006, output: 7.9985 }, - limit: { context: 127000, input: 127000, output: 128000 }, - }, - "deepseek-r1-sambanova": { - id: "deepseek-r1-sambanova", - name: "DeepSeek R1 Fast", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-20", - last_updated: "2025-02-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 4.998, output: 6.987 }, - limit: { context: 128000, input: 128000, output: 4096 }, - }, - "claude-3-7-sonnet-thinking:1024": { - id: "claude-3-7-sonnet-thinking:1024", - name: "Claude 3.7 Sonnet Thinking (1K)", + "claude-3-7-sonnet-thinking:128000": { + id: "claude-3-7-sonnet-thinking:128000", + name: "Claude 3.7 Sonnet Thinking (128K)", attachment: true, reasoning: true, tool_call: true, @@ -49636,426 +2486,6 @@ export const snapshot = { cost: { input: 2.992, output: 14.994 }, limit: { context: 200000, input: 200000, output: 64000 }, }, - "Llama-3.3-70B-Magnum-v4-SE-Cirrus-x1-SLERP": { - id: "Llama-3.3-70B-Magnum-v4-SE-Cirrus-x1-SLERP", - name: "Llama 3.3 70B Magnum v4 SE Cirrus x1 SLERP", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-26", - last_updated: "2025-07-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "Llama-3.3-70B-ArliAI-RPMax-v3": { - id: "Llama-3.3-70B-ArliAI-RPMax-v3", - name: "Llama 3.3 70B ArliAI RPMax v3", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "qwen-long": { - id: "qwen-long", - name: "Qwen Long 10M", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-01-25", - last_updated: "2025-01-25", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1003, output: 0.408 }, - limit: { context: 10000000, input: 10000000, output: 8192 }, - }, - "gemini-2.5-flash-preview-04-17": { - id: "gemini-2.5-flash-preview-04-17", - name: "Gemini 2.5 Flash Preview", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-04-17", - last_updated: "2025-04-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 1048756, input: 1048756, output: 65536 }, - }, - "Llama-3.3-70B-Progenitor-V3.3": { - id: "Llama-3.3-70B-Progenitor-V3.3", - name: "Llama 3.3 70B Progenitor V3.3", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-26", - last_updated: "2025-07-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "GLM-4.5-Air-Derestricted-Iceblink-v2": { - id: "GLM-4.5-Air-Derestricted-Iceblink-v2", - name: "GLM 4.5 Air Derestricted Iceblink v2", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 158600, input: 158600, output: 65536 }, - }, - "gemini-2.5-flash-preview-09-2025": { - id: "gemini-2.5-flash-preview-09-2025", - name: "Gemini 2.5 Flash Preview (09/2025)", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5 }, - limit: { context: 1048756, input: 1048756, output: 65536 }, - }, - "study_gpt-chatgpt-4o-latest": { - id: "study_gpt-chatgpt-4o-latest", - name: "Study Mode", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-05-13", - last_updated: "2024-05-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 4.998, output: 14.994 }, - limit: { context: 200000, input: 200000, output: 16384 }, - }, - "qwq-32b": { - id: "qwq-32b", - name: "Qwen: QwQ 32B", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-15", - last_updated: "2025-04-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25599999, output: 0.30499999 }, - limit: { context: 128000, input: 128000, output: 32768 }, - }, - "gemini-2.5-pro-preview-05-06": { - id: "gemini-2.5-pro-preview-05-06", - name: "Gemini 2.5 Pro Preview 0506", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-05-06", - last_updated: "2025-05-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10 }, - limit: { context: 1048756, input: 1048756, output: 65536 }, - }, - "Llama-3.3-70B-MS-Nevoria": { - id: "Llama-3.3-70B-MS-Nevoria", - name: "Llama 3.3 70B MS Nevoria", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "doubao-seed-1-6-250615": { - id: "doubao-seed-1-6-250615", - name: "Doubao Seed 1.6", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-06-15", - last_updated: "2025-06-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.204, output: 0.51 }, - limit: { context: 256000, input: 256000, output: 16384 }, - }, - "gemini-2.5-flash-preview-05-20": { - id: "gemini-2.5-flash-preview-05-20", - name: "Gemini 2.5 Flash 0520", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-05-20", - last_updated: "2025-05-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 1048000, input: 1048000, output: 65536 }, - }, - "glm-4": { - id: "glm-4", - name: "GLM-4", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-01-16", - last_updated: "2024-01-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 14.994, output: 14.994 }, - limit: { context: 128000, input: 128000, output: 4096 }, - }, - "azure-gpt-4-turbo": { - id: "azure-gpt-4-turbo", - name: "Azure gpt-4-turbo", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2023-11-06", - last_updated: "2024-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 9.996, output: 30.005 }, - limit: { context: 128000, input: 128000, output: 4096 }, - }, - "Llama-3.3-70B-Legion-V2.1": { - id: "Llama-3.3-70B-Legion-V2.1", - name: "Llama 3.3 70B Legion V2.1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "claude-3-7-sonnet-thinking:32768": { - id: "claude-3-7-sonnet-thinking:32768", - name: "Claude 3.7 Sonnet Thinking (32K)", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-07-15", - last_updated: "2025-07-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.992, output: 14.994 }, - limit: { context: 200000, input: 200000, output: 64000 }, - }, - "gemini-2.5-flash": { - id: "gemini-2.5-flash", - name: "Gemini 2.5 Flash", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-06-05", - last_updated: "2025-06-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5 }, - limit: { context: 1048756, input: 1048756, output: 65536 }, - }, - "asi1-mini": { - id: "asi1-mini", - name: "ASI1 Mini", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-03-25", - last_updated: "2025-03-25", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 1 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "gemini-exp-1206": { - id: "gemini-exp-1206", - name: "Gemini 2.0 Pro 1206", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.258, output: 4.998 }, - limit: { context: 2097152, input: 2097152, output: 8192 }, - }, - "qwen-max": { - id: "qwen-max", - name: "Qwen 2.5 Max", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-04-03", - last_updated: "2024-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.5997, output: 6.392 }, - limit: { context: 32000, input: 32000, output: 8192 }, - }, - brave: { - id: "brave", - name: "Brave (Answers)", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2023-03-02", - last_updated: "2024-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 5 }, - limit: { context: 8192, input: 8192, output: 8192 }, - }, - "doubao-1-5-thinking-pro-250415": { - id: "doubao-1-5-thinking-pro-250415", - name: "Doubao 1.5 Thinking Pro", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-17", - last_updated: "2025-04-17", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 2.4 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "claude-sonnet-4-thinking:64000": { - id: "claude-sonnet-4-thinking:64000", - name: "Claude 4 Sonnet Thinking (64K)", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.992, output: 14.994 }, - limit: { context: 1000000, input: 1000000, output: 64000 }, - }, - "GLM-4.5-Air-Derestricted-Steam-ReExtract": { - id: "GLM-4.5-Air-Derestricted-Steam-ReExtract", - name: "GLM 4.5 Air Derestricted Steam ReExtract", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-12", - last_updated: "2025-12-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 131072, input: 131072, output: 65536 }, - }, - "kimi-k2-instruct-fast": { - id: "kimi-k2-instruct-fast", - name: "Kimi K2 0711 Fast", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-15", - last_updated: "2025-07-15", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 2 }, - limit: { context: 131072, input: 131072, output: 16384 }, - }, - "Llama-3.3-70B-GeneticLemonade-Opus": { - id: "Llama-3.3-70B-GeneticLemonade-Opus", - name: "Llama 3.3 70B GeneticLemonade Opus", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "Gemma-3-27B-Big-Tiger-v3": { - id: "Gemma-3-27B-Big-Tiger-v3", - name: "Gemma 3 27B Big Tiger v3", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-08-08", - last_updated: "2025-08-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "doubao-seed-2-0-mini-260215": { - id: "doubao-seed-2-0-mini-260215", - name: "Doubao Seed 2.0 Mini", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2026-02-14", - last_updated: "2026-02-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.0493, output: 0.4845 }, - limit: { context: 256000, input: 256000, output: 32000 }, - }, - "claude-sonnet-4-5-20250929-thinking": { - id: "claude-sonnet-4-5-20250929-thinking", - name: "Claude Sonnet 4.5 Thinking", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.992, output: 14.994 }, - limit: { context: 1000000, input: 1000000, output: 64000 }, - }, "glm-4-air": { id: "glm-4-air", name: "GLM-4 Air", @@ -50070,751 +2500,9 @@ export const snapshot = { cost: { input: 0.2006, output: 0.2006 }, limit: { context: 128000, input: 128000, output: 4096 }, }, - "GLM-4.5-Air-Derestricted-Iceblink-ReExtract": { - id: "GLM-4.5-Air-Derestricted-Iceblink-ReExtract", - name: "GLM 4.5 Air Derestricted Iceblink ReExtract", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-12", - last_updated: "2025-12-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 131072, input: 131072, output: 98304 }, - }, - "gemini-2.0-pro-reasoner": { - id: "gemini-2.0-pro-reasoner", - name: "Gemini 2.0 Pro Reasoner", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-05", - last_updated: "2025-02-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.292, output: 4.998 }, - limit: { context: 128000, input: 128000, output: 65536 }, - }, - "gemini-2.0-flash-001": { - id: "gemini-2.0-flash-001", - name: "Gemini 2.0 Flash", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1003, output: 0.408 }, - limit: { context: 1000000, input: 1000000, output: 8192 }, - }, - "glm-4-plus": { - id: "glm-4-plus", - name: "GLM-4 Plus", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-08-01", - last_updated: "2024-08-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 7.497, output: 7.497 }, - limit: { context: 128000, input: 128000, output: 4096 }, - }, - "gemini-2.0-flash-exp-image-generation": { - id: "gemini-2.0-flash-exp-image-generation", - name: "Gemini Text + Image", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 32767, input: 32767, output: 8192 }, - }, - "GLM-4.5-Air-Derestricted": { - id: "GLM-4.5-Air-Derestricted", - name: "GLM 4.5 Air Derestricted", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 202600, input: 202600, output: 98304 }, - }, - "gemini-2.0-flash-thinking-exp-1219": { - id: "gemini-2.0-flash-thinking-exp-1219", - name: "Gemini 2.0 Flash Thinking 1219", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-19", - last_updated: "2024-12-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1003, output: 0.408 }, - limit: { context: 32767, input: 32767, output: 8192 }, - }, - "glm-4.1v-thinking-flashx": { - id: "glm-4.1v-thinking-flashx", - name: "GLM 4.1V Thinking FlashX", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.3 }, - limit: { context: 64000, input: 64000, output: 8192 }, - }, - "Llama-3.3-70B-StrawberryLemonade-v1.0": { - id: "Llama-3.3-70B-StrawberryLemonade-v1.0", - name: "Llama 3.3 70B StrawberryLemonade v1.0", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "Llama-3.3-70B-Fallen-v1": { - id: "Llama-3.3-70B-Fallen-v1", - name: "Llama 3.3 70B Fallen v1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "Gemma-3-27B-Nidum-Uncensored": { - id: "Gemma-3-27B-Nidum-Uncensored", - name: "Gemma 3 27B Nidum Uncensored", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-08-08", - last_updated: "2025-08-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 96000 }, - }, - "Llama-3.3-70B-Electranova-v1.0": { - id: "Llama-3.3-70B-Electranova-v1.0", - name: "Llama 3.3 70B Electranova v1.0", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "grok-3-fast-beta": { - id: "grok-3-fast-beta", - name: "Grok 3 Fast Beta", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25 }, - limit: { context: 131072, input: 131072, output: 131072 }, - }, - "qwen-turbo": { - id: "qwen-turbo", - name: "Qwen Turbo", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-11-01", - last_updated: "2024-11-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.04998, output: 0.2006 }, - limit: { context: 1000000, input: 1000000, output: 8192 }, - }, - "Llama-3.3-70B-Sapphira-0.1": { - id: "Llama-3.3-70B-Sapphira-0.1", - name: "Llama 3.3 70B Sapphira 0.1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "gemini-2.5-pro-preview-03-25": { - id: "gemini-2.5-pro-preview-03-25", - name: "Gemini 2.5 Pro Preview 0325", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-03-25", - last_updated: "2025-03-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10 }, - limit: { context: 1048756, input: 1048756, output: 65536 }, - }, - "step-2-16k-exp": { - id: "step-2-16k-exp", - name: "Step-2 16k Exp", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-05", - last_updated: "2024-07-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 7.004, output: 19.992 }, - limit: { context: 16000, input: 16000, output: 8192 }, - }, - chroma: { - id: "chroma", - name: "Chroma", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-08-12", - last_updated: "2025-08-12", - modalities: { input: ["text"], output: ["image"] }, - open_weights: false, - limit: { context: 0, output: 0 }, - }, - sonar: { - id: "sonar", - name: "Perplexity Simple", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.003, output: 1.003 }, - limit: { context: 127000, input: 127000, output: 128000 }, - }, - fastgpt: { - id: "fastgpt", - name: "Web Answer", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2023-08-01", - last_updated: "2024-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 7.5, output: 7.5 }, - limit: { context: 32768, input: 32768, output: 32768 }, - }, - "claude-sonnet-4-thinking:8192": { - id: "claude-sonnet-4-thinking:8192", - name: "Claude 4 Sonnet Thinking (8K)", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.992, output: 14.994 }, - limit: { context: 1000000, input: 1000000, output: 64000 }, - }, - "Llama-3.3-70B-Electra-R1": { - id: "Llama-3.3-70B-Electra-R1", - name: "Llama 3.3 70B Electra R1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "Llama-3.3-70B-Fallen-R1-v1": { - id: "Llama-3.3-70B-Fallen-R1-v1", - name: "Llama 3.3 70B Fallen R1 v1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "Gemma-3-27B-it-Abliterated": { - id: "Gemma-3-27B-it-Abliterated", - name: "Gemma 3 27B IT Abliterated", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-03", - last_updated: "2025-07-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.42, output: 0.42 }, - limit: { context: 32768, input: 32768, output: 96000 }, - }, - "doubao-1.5-pro-256k": { - id: "doubao-1.5-pro-256k", - name: "Doubao 1.5 Pro 256k", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-03-12", - last_updated: "2025-03-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.799, output: 1.445 }, - limit: { context: 256000, input: 256000, output: 16384 }, - }, - "claude-opus-4-thinking": { - id: "claude-opus-4-thinking", - name: "Claude 4 Opus Thinking", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-07-15", - last_updated: "2025-07-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 14.994, output: 75.004 }, - limit: { context: 200000, input: 200000, output: 32000 }, - }, - "deepseek-r1": { - id: "deepseek-r1", - name: "DeepSeek R1", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.7 }, - limit: { context: 128000, input: 128000, output: 8192 }, - }, - "doubao-1-5-thinking-vision-pro-250428": { - id: "doubao-1-5-thinking-vision-pro-250428", - name: "Doubao 1.5 Thinking Vision Pro", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-05-15", - last_updated: "2025-05-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.55, output: 1.43 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "doubao-seed-2-0-lite-260215": { - id: "doubao-seed-2-0-lite-260215", - name: "Doubao Seed 2.0 Lite", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2026-02-14", - last_updated: "2026-02-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1462, output: 0.8738 }, - limit: { context: 256000, input: 256000, output: 32000 }, - }, - "claude-opus-4-20250514": { - id: "claude-opus-4-20250514", - name: "Claude 4 Opus", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-05-14", - last_updated: "2025-05-14", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 14.994, output: 75.004 }, - limit: { context: 200000, input: 200000, output: 32000 }, - }, - "qwen25-vl-72b-instruct": { - id: "qwen25-vl-72b-instruct", - name: "Qwen25 VL 72b", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-05-10", - last_updated: "2025-05-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.69989, output: 0.69989 }, - limit: { context: 32000, input: 32000, output: 32768 }, - }, - "azure-gpt-4o": { - id: "azure-gpt-4o", - name: "Azure gpt-4o", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2024-05-13", - last_updated: "2024-05-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.499, output: 9.996 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "sonar-deep-research": { - id: "sonar-deep-research", - name: "Perplexity Deep Research", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-25", - last_updated: "2025-02-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3.4, output: 13.6 }, - limit: { context: 60000, input: 60000, output: 128000 }, - }, - "ernie-4.5-turbo-128k": { - id: "ernie-4.5-turbo-128k", - name: "Ernie 4.5 Turbo 128k", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-05-08", - last_updated: "2025-05-08", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.132, output: 0.55 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "azure-o1": { - id: "azure-o1", - name: "Azure o1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-17", - last_updated: "2024-12-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 14.994, output: 59.993 }, - limit: { context: 200000, input: 200000, output: 100000 }, - }, - "gemini-3-pro-preview-thinking": { - id: "gemini-3-pro-preview-thinking", - name: "Gemini 3 Pro Thinking", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 12 }, - limit: { context: 1048756, input: 1048756, output: 65536 }, - }, - "grok-3-mini-beta": { - id: "grok-3-mini-beta", - name: "Grok 3 Mini Beta", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.5 }, - limit: { context: 131072, input: 131072, output: 131072 }, - }, - "claude-opus-4-1-thinking": { - id: "claude-opus-4-1-thinking", - name: "Claude 4.1 Opus Thinking", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 14.994, output: 75.004 }, - limit: { context: 200000, input: 200000, output: 32000 }, - }, - "gemini-2.5-flash-nothinking": { - id: "gemini-2.5-flash-nothinking", - name: "Gemini 2.5 Flash (No Thinking)", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-06-05", - last_updated: "2025-06-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 2.5 }, - limit: { context: 1048756, input: 1048756, output: 65536 }, - }, - "doubao-seed-1-8-251215": { - id: "doubao-seed-1-8-251215", - name: "Doubao Seed 1.8", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-15", - last_updated: "2025-12-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.612, output: 6.12 }, - limit: { context: 128000, input: 128000, output: 8192 }, - }, - "claude-3-7-sonnet-thinking:8192": { - id: "claude-3-7-sonnet-thinking:8192", - name: "Claude 3.7 Sonnet Thinking (8K)", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-02-24", - last_updated: "2025-02-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.992, output: 14.994 }, - limit: { context: 200000, input: 200000, output: 64000 }, - }, - "qvq-max": { - id: "qvq-max", - name: "Qwen: QvQ Max", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-03-28", - last_updated: "2025-03-28", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.4, output: 5.3 }, - limit: { context: 128000, input: 128000, output: 8192 }, - }, - "claude-sonnet-4-5-20250929": { - id: "claude-sonnet-4-5-20250929", - name: "Claude Sonnet 4.5", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.992, output: 14.994 }, - limit: { context: 1000000, input: 1000000, output: 64000 }, - }, - "auto-model-basic": { - id: "auto-model-basic", - name: "Auto model (Basic)", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-06-01", - last_updated: "2024-06-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 9.996, output: 19.992 }, - limit: { context: 1000000, input: 1000000, output: 1000000 }, - }, - "Llama-3.3-70B-The-Omega-Directive-Unslop-v2.1": { - id: "Llama-3.3-70B-The-Omega-Directive-Unslop-v2.1", - name: "Llama 3.3 70B Omega Directive Unslop v2.1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "claude-3-5-haiku-20241022": { - id: "claude-3-5-haiku-20241022", - name: "Claude 3.5 Haiku", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2024-10-22", - last_updated: "2024-10-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8, output: 4 }, - limit: { context: 200000, input: 200000, output: 8192 }, - }, - "glm-4-plus-0111": { - id: "glm-4-plus-0111", - name: "GLM 4 Plus 0111", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 9.996, output: 9.996 }, - limit: { context: 128000, input: 128000, output: 4096 }, - }, - "Llama-3.3-70B-Bigger-Body": { - id: "Llama-3.3-70B-Bigger-Body", - name: "Llama 3.3 70B Bigger Body", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "gemini-2.5-flash-lite": { - id: "gemini-2.5-flash-lite", - name: "Gemini 2.5 Flash Lite", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-06-17", - last_updated: "2025-06-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 1048756, input: 1048756, output: 65536 }, - }, - "KAT-Coder-Air-V1": { - id: "KAT-Coder-Air-V1", - name: "KAT Coder Air V1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-10-28", - last_updated: "2025-10-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.2 }, - limit: { context: 128000, input: 128000, output: 32768 }, - }, - "MiniMax-M2": { - id: "MiniMax-M2", - name: "MiniMax M2", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-10-25", - last_updated: "2025-10-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.17, output: 1.53 }, - limit: { context: 200000, input: 200000, output: 131072 }, - }, - "doubao-seed-1-6-flash-250615": { - id: "doubao-seed-1-6-flash-250615", - name: "Doubao Seed 1.6 Flash", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-06-15", - last_updated: "2025-06-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.0374, output: 0.374 }, - limit: { context: 256000, input: 256000, output: 16384 }, - }, - "glm-4-air-0111": { - id: "glm-4-air-0111", - name: "GLM 4 Air 0111", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-01-11", - last_updated: "2025-01-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1394, output: 0.1394 }, - limit: { context: 128000, input: 128000, output: 4096 }, - }, - "phi-4-mini-instruct": { - id: "phi-4-mini-instruct", - name: "Phi 4 Mini", + "Llama-3.3-70B-MiraiFanfare": { + id: "Llama-3.3-70B-MiraiFanfare", + name: "Llama 3.3 70b Mirai Fanfare", attachment: false, reasoning: false, tool_call: false, @@ -50823,275 +2511,9 @@ export const snapshot = { last_updated: "2025-07-26", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 0.17, output: 0.68 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "jamba-mini-1.6": { - id: "jamba-mini-1.6", - name: "Jamba Mini 1.6", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-03-01", - last_updated: "2025-03-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1989, output: 0.408 }, - limit: { context: 256000, input: 256000, output: 4096 }, - }, - "v0-1.5-md": { - id: "v0-1.5-md", - name: "v0 1.5 MD", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-04", - last_updated: "2025-07-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 200000, input: 200000, output: 64000 }, - }, - "command-a-reasoning-08-2025": { - id: "command-a-reasoning-08-2025", - name: "Cohere Command A (08/2025)", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-08-22", - last_updated: "2025-08-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10 }, - limit: { context: 256000, input: 256000, output: 8192 }, - }, - "kimi-thinking-preview": { - id: "kimi-thinking-preview", - name: "Kimi Thinking Preview", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-05-07", - last_updated: "2025-05-07", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 31.46, output: 31.46 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "claude-3-5-sonnet-20240620": { - id: "claude-3-5-sonnet-20240620", - name: "Claude 3.5 Sonnet Old", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2024-06-20", - last_updated: "2024-06-20", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.992, output: 14.994 }, - limit: { context: 200000, input: 200000, output: 8192 }, - }, - "deepseek-v3-0324": { - id: "deepseek-v3-0324", - name: "DeepSeek Chat 0324", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-03-24", - last_updated: "2025-03-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 0.7 }, - limit: { context: 128000, input: 128000, output: 8192 }, - }, - "claude-sonnet-4-thinking:1024": { - id: "claude-sonnet-4-thinking:1024", - name: "Claude 4 Sonnet Thinking (1K)", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.992, output: 14.994 }, - limit: { context: 1000000, input: 1000000, output: 64000 }, - }, - "Llama-3.3-70B-Incandescent-Malevolence": { - id: "Llama-3.3-70B-Incandescent-Malevolence", - name: "Llama 3.3 70B Incandescent Malevolence", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, + cost: { input: 0.493, output: 0.493 }, limit: { context: 32768, input: 32768, output: 16384 }, }, - "doubao-1.5-pro-32k": { - id: "doubao-1.5-pro-32k", - name: "Doubao 1.5 Pro 32k", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-01-22", - last_updated: "2025-01-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1343, output: 0.3349 }, - limit: { context: 32000, input: 32000, output: 8192 }, - }, - "Llama-3.3-70B-Forgotten-Safeword-3.6": { - id: "Llama-3.3-70B-Forgotten-Safeword-3.6", - name: "Llama 3.3 70B Forgotten Safeword 3.6", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "step-2-mini": { - id: "step-2-mini", - name: "Step-2 Mini", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-05", - last_updated: "2024-07-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2006, output: 0.408 }, - limit: { context: 8000, input: 8000, output: 4096 }, - }, - "Mistral-Nemo-12B-Instruct-2407": { - id: "Mistral-Nemo-12B-Instruct-2407", - name: "Mistral Nemo 12B Instruct 2407", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.01, output: 0.01 }, - limit: { context: 16384, input: 16384, output: 16384 }, - }, - "Baichuan4-Turbo": { - id: "Baichuan4-Turbo", - name: "Baichuan 4 Turbo", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-08-19", - last_updated: "2025-08-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.42, output: 2.42 }, - limit: { context: 128000, input: 128000, output: 32768 }, - }, - "ernie-5.0-thinking-latest": { - id: "ernie-5.0-thinking-latest", - name: "Ernie 5.0 Thinking", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 2 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "qwen3-30b-a3b-instruct-2507": { - id: "qwen3-30b-a3b-instruct-2507", - name: "Qwen3 30B A3B Instruct 2507", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-20", - last_updated: "2025-02-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5 }, - limit: { context: 256000, input: 256000, output: 32768 }, - }, - "Gemma-3-27B-Glitter": { - id: "Gemma-3-27B-Glitter", - name: "Gemma 3 27B Glitter", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-03-10", - last_updated: "2025-03-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "claude-opus-4-thinking:32000": { - id: "claude-opus-4-thinking:32000", - name: "Claude 4 Opus Thinking (32K)", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 14.994, output: 75.004 }, - limit: { context: 200000, input: 200000, output: 32000 }, - }, - "auto-model-premium": { - id: "auto-model-premium", - name: "Auto model (Premium)", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-06-01", - last_updated: "2024-06-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 9.996, output: 19.992 }, - limit: { context: 1000000, input: 1000000, output: 1000000 }, - }, - "claude-3-7-sonnet-20250219": { - id: "claude-3-7-sonnet-20250219", - name: "Claude 3.7 Sonnet", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.992, output: 14.994 }, - limit: { context: 200000, input: 200000, output: 16000 }, - }, "gemini-2.0-flash-thinking-exp-01-21": { id: "gemini-2.0-flash-thinking-exp-01-21", name: "Gemini 2.0 Flash Thinking 0121", @@ -51106,75 +2528,33 @@ export const snapshot = { cost: { input: 0.306, output: 1.003 }, limit: { context: 1000000, input: 1000000, output: 8192 }, }, - "claude-sonnet-4-thinking:32768": { - id: "claude-sonnet-4-thinking:32768", - name: "Claude 4 Sonnet Thinking (32K)", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.992, output: 14.994 }, - limit: { context: 1000000, input: 1000000, output: 64000 }, - }, - "claude-opus-4-1-thinking:32768": { - id: "claude-opus-4-1-thinking:32768", - name: "Claude 4.1 Opus Thinking (32K)", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 14.994, output: 75.004 }, - limit: { context: 200000, input: 200000, output: 32000 }, - }, - "jamba-large": { - id: "jamba-large", - name: "Jamba Large", + "Magistral-Small-2506": { + id: "Magistral-Small-2506", + name: "Magistral Small 2506", attachment: false, reasoning: false, tool_call: false, structured_output: false, - release_date: "2025-07-09", - last_updated: "2025-07-09", + release_date: "2025-09-25", + last_updated: "2025-09-25", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 1.989, output: 7.99 }, - limit: { context: 256000, input: 256000, output: 4096 }, + cost: { input: 0.4, output: 1.4 }, + limit: { context: 32768, input: 32768, output: 32768 }, }, - "qwen3-coder-30b-a3b-instruct": { - id: "qwen3-coder-30b-a3b-instruct", - name: "Qwen3 Coder 30B A3B Instruct", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 128000, input: 128000, output: 65536 }, - }, - "Llama-3.3-70B-MiraiFanfare": { - id: "Llama-3.3-70B-MiraiFanfare", - name: "Llama 3.3 70b Mirai Fanfare", + "doubao-1.5-pro-32k": { + id: "doubao-1.5-pro-32k", + name: "Doubao 1.5 Pro 32k", attachment: false, reasoning: false, tool_call: false, structured_output: false, - release_date: "2025-07-26", - last_updated: "2025-07-26", + release_date: "2025-01-22", + last_updated: "2025-01-22", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 0.493, output: 0.493 }, - limit: { context: 32768, input: 32768, output: 16384 }, + cost: { input: 0.1343, output: 0.3349 }, + limit: { context: 32000, input: 32000, output: 8192 }, }, "venice-uncensored:web": { id: "venice-uncensored:web", @@ -51190,219 +2570,191 @@ export const snapshot = { cost: { input: 0.4, output: 0.4 }, limit: { context: 80000, input: 80000, output: 16384 }, }, - "qwen3-max-2026-01-23": { - id: "qwen3-max-2026-01-23", - name: "Qwen3 Max 2026-01-23", + "glm-4": { + id: "glm-4", + name: "GLM-4", attachment: false, reasoning: false, tool_call: false, structured_output: false, - release_date: "2026-01-26", - last_updated: "2026-01-26", + release_date: "2024-01-16", + last_updated: "2024-01-16", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 1.2002, output: 6.001 }, - limit: { context: 256000, input: 256000, output: 32768 }, + cost: { input: 14.994, output: 14.994 }, + limit: { context: 128000, input: 128000, output: 4096 }, }, - "gemini-2.5-flash-lite-preview-09-2025-thinking": { - id: "gemini-2.5-flash-lite-preview-09-2025-thinking", - name: "Gemini 2.5 Flash Lite Preview (09/2025) – Thinking", + "qwen-max": { + id: "qwen-max", + name: "Qwen 2.5 Max", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-04-03", + last_updated: "2024-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.5997, output: 6.392 }, + limit: { context: 32000, input: 32000, output: 8192 }, + }, + "qwen3-vl-235b-a22b-instruct-original": { + id: "qwen3-vl-235b-a22b-instruct-original", + name: "Qwen3 VL 235B A22B Instruct Original", attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, + reasoning: false, + tool_call: false, + structured_output: false, release_date: "2025-09-25", last_updated: "2025-09-25", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 1048756, input: 1048756, output: 65536 }, - }, - "ernie-x1-32k-preview": { - id: "ernie-x1-32k-preview", - name: "Ernie X1 32k", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-03", - last_updated: "2025-04-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.33, output: 1.32 }, - limit: { context: 32000, input: 32000, output: 16384 }, - }, - "glm-z1-airx": { - id: "glm-z1-airx", - name: "GLM Z1 AirX", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-04-15", - last_updated: "2025-04-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.7, output: 0.7 }, - limit: { context: 32000, input: 32000, output: 16384 }, - }, - "ernie-x1.1-preview": { - id: "ernie-x1.1-preview", - name: "ERNIE X1.1", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-09-10", - last_updated: "2025-09-10", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 64000, input: 64000, output: 8192 }, - }, - "claude-haiku-4-5-20251001": { - id: "claude-haiku-4-5-20251001", - name: "Claude Haiku 4.5", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5 }, - limit: { context: 200000, input: 200000, output: 64000 }, - }, - "exa-research": { - id: "exa-research", - name: "Exa (Research)", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-06-04", - last_updated: "2025-06-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 2.5 }, - limit: { context: 8192, input: 8192, output: 8192 }, - }, - "Llama-3.3-70B-Mokume-Gane-R1": { - id: "Llama-3.3-70B-Mokume-Gane-R1", - name: "Llama 3.3 70B Mokume Gane R1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "glm-4.1v-thinking-flash": { - id: "glm-4.1v-thinking-flash", - name: "GLM 4.1V Thinking Flash", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-09", - last_updated: "2025-07-09", modalities: { input: ["text", "image"], output: ["text"] }, open_weights: false, - cost: { input: 0.3, output: 0.3 }, - limit: { context: 64000, input: 64000, output: 8192 }, + cost: { input: 0.5, output: 1.2 }, + limit: { context: 32768, input: 32768, output: 32768 }, }, - "Llama-3.3-70B-GeneticLemonade-Unleashed-v3": { - id: "Llama-3.3-70B-GeneticLemonade-Unleashed-v3", - name: "Llama 3.3 70B GeneticLemonade Unleashed v3", + "jamba-large-1.6": { + id: "jamba-large-1.6", + name: "Jamba Large 1.6", attachment: false, reasoning: false, tool_call: false, structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", + release_date: "2025-03-12", + last_updated: "2025-03-12", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, + cost: { input: 1.989, output: 7.99 }, + limit: { context: 256000, input: 256000, output: 4096 }, }, - "Llama-3.3-70B-Predatorial-Extasy": { - id: "Llama-3.3-70B-Predatorial-Extasy", - name: "Llama 3.3 70B Predatorial Extasy", + "qwen-plus": { + id: "qwen-plus", + name: "Qwen Plus", attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "deepseek-chat": { - id: "deepseek-chat", - name: "DeepSeek V3/Deepseek Chat", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-02-27", - last_updated: "2025-02-27", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 0.7 }, - limit: { context: 128000, input: 128000, output: 8192 }, - }, - "glm-4-airx": { - id: "glm-4-airx", - name: "GLM-4 AirX", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-06-05", - last_updated: "2024-06-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.006, output: 2.006 }, - limit: { context: 8000, input: 8000, output: 4096 }, - }, - "gemini-2.5-flash-lite-preview-06-17": { - id: "gemini-2.5-flash-lite-preview-06-17", - name: "Gemini 2.5 Flash Lite Preview", - attachment: true, reasoning: true, tool_call: false, structured_output: false, - release_date: "2025-06-17", - last_updated: "2025-06-17", + release_date: "2024-01-25", + last_updated: "2024-01-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3995, output: 1.2002 }, + limit: { context: 995904, input: 995904, output: 32768 }, + }, + "qwen25-vl-72b-instruct": { + id: "qwen25-vl-72b-instruct", + name: "Qwen25 VL 72b", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-05-10", + last_updated: "2025-05-10", modalities: { input: ["text", "image"], output: ["text"] }, open_weights: false, - cost: { input: 0.15, output: 0.6 }, + cost: { input: 0.69989, output: 0.69989 }, + limit: { context: 32000, input: 32000, output: 32768 }, + }, + "claude-sonnet-4-thinking:64000": { + id: "claude-sonnet-4-thinking:64000", + name: "Claude 4 Sonnet Thinking (64K)", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.992, output: 14.994 }, + limit: { context: 1000000, input: 1000000, output: 64000 }, + }, + "gemini-3-pro-preview": { + id: "gemini-3-pro-preview", + name: "Gemini 3 Pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12 }, limit: { context: 1048756, input: 1048756, output: 65536 }, }, - "doubao-seed-1-6-thinking-250615": { - id: "doubao-seed-1-6-thinking-250615", - name: "Doubao Seed 1.6 Thinking", + "Llama-3.3+(3.1v3.3)-70B-New-Dawn-v1.1": { + id: "Llama-3.3+(3.1v3.3)-70B-New-Dawn-v1.1", + name: "Llama 3.3+ 70B New Dawn v1.1", attachment: false, reasoning: false, tool_call: false, structured_output: false, - release_date: "2025-06-15", - last_updated: "2025-06-15", + release_date: "2024-12-06", + last_updated: "2024-12-06", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 0.204, output: 2.04 }, - limit: { context: 256000, input: 256000, output: 16384 }, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, }, - "claude-3-7-sonnet-thinking": { - id: "claude-3-7-sonnet-thinking", - name: "Claude 3.7 Sonnet Thinking", + "GLM-4.5-Air-Derestricted-Iceblink-ReExtract": { + id: "GLM-4.5-Air-Derestricted-Iceblink-ReExtract", + name: "GLM 4.5 Air Derestricted Iceblink ReExtract", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-12", + last_updated: "2025-12-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 131072, input: 131072, output: 98304 }, + }, + "universal-summarizer": { + id: "universal-summarizer", + name: "Universal Summarizer", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2023-05-01", + last_updated: "2024-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 30, output: 30 }, + limit: { context: 32768, input: 32768, output: 32768 }, + }, + "claude-sonnet-4-thinking:32768": { + id: "claude-sonnet-4-thinking:32768", + name: "Claude 4 Sonnet Thinking (32K)", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.992, output: 14.994 }, + limit: { context: 1000000, input: 1000000, output: 64000 }, + }, + "sarvan-medium": { + id: "sarvan-medium", + name: "Sarvam Medium", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 0.75 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "claude-3-7-sonnet-thinking:8192": { + id: "claude-3-7-sonnet-thinking:8192", + name: "Claude 3.7 Sonnet Thinking (8K)", attachment: true, reasoning: true, tool_call: true, @@ -51412,179 +2764,39 @@ export const snapshot = { modalities: { input: ["text", "image", "pdf"], output: ["text"] }, open_weights: false, cost: { input: 2.992, output: 14.994 }, - limit: { context: 200000, input: 200000, output: 16000 }, + limit: { context: 200000, input: 200000, output: 64000 }, }, - "GLM-4.5-Air-Derestricted-Steam": { - id: "GLM-4.5-Air-Derestricted-Steam", - name: "GLM 4.5 Air Derestricted Steam", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 220600, input: 220600, output: 65536 }, - }, - "gemini-3-pro-image-preview": { - id: "gemini-3-pro-image-preview", - name: "Gemini 3 Pro Image", + "gemini-2.5-flash-preview-05-20": { + id: "gemini-2.5-flash-preview-05-20", + name: "Gemini 2.5 Flash 0520", attachment: true, reasoning: false, tool_call: false, structured_output: false, - release_date: "2025-11-18", - last_updated: "2025-11-18", + release_date: "2025-05-20", + last_updated: "2025-05-20", modalities: { input: ["text", "image"], output: ["text"] }, open_weights: false, - cost: { input: 2, output: 12 }, - limit: { context: 1048756, input: 1048756, output: 65536 }, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 1048000, input: 1048000, output: 65536 }, }, - "MiniMax-M1": { - id: "MiniMax-M1", - name: "MiniMax M1", + "GLM-4.5-Air-Derestricted-Iceblink-v2-ReExtract": { + id: "GLM-4.5-Air-Derestricted-Iceblink-v2-ReExtract", + name: "GLM 4.5 Air Derestricted Iceblink v2 ReExtract", attachment: false, reasoning: false, tool_call: false, structured_output: false, - release_date: "2025-06-16", - last_updated: "2025-06-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1394, output: 1.3328 }, - limit: { context: 1000000, input: 1000000, output: 131072 }, - }, - "ernie-5.0-thinking-preview": { - id: "ernie-5.0-thinking-preview", - name: "Ernie 5.0 Thinking Preview", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 2 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "claude-opus-4-thinking:1024": { - id: "claude-opus-4-thinking:1024", - name: "Claude 4 Opus Thinking (1K)", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 14.994, output: 75.004 }, - limit: { context: 200000, input: 200000, output: 32000 }, - }, - "Llama-3.3-70B-Strawberrylemonade-v1.2": { - id: "Llama-3.3-70B-Strawberrylemonade-v1.2", - name: "Llama 3.3 70B StrawberryLemonade v1.2", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", + release_date: "2025-12-12", + last_updated: "2025-12-12", modalities: { input: ["text"], output: ["text"] }, open_weights: false, cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, + limit: { context: 131072, input: 131072, output: 65536 }, }, - "Llama-3.3-70B-Vulpecula-R1": { - id: "Llama-3.3-70B-Vulpecula-R1", - name: "Llama 3.3 70B Vulpecula R1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "GLM-4.6-Derestricted-v5": { - id: "GLM-4.6-Derestricted-v5", - name: "GLM 4.6 Derestricted v5", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.5 }, - limit: { context: 131072, input: 131072, output: 8192 }, - }, - "Llama-3.3-70B-Cirrus-x1": { - id: "Llama-3.3-70B-Cirrus-x1", - name: "Llama 3.3 70B Cirrus x1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "Llama-3.3-70B-ArliAI-RPMax-v2": { - id: "Llama-3.3-70B-ArliAI-RPMax-v2", - name: "Llama 3.3 70B ArliAI RPMax v2", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-08-08", - last_updated: "2025-08-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "doubao-seed-code-preview-latest": { - id: "doubao-seed-code-preview-latest", - name: "Doubao Seed Code Preview", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 256000, input: 256000, output: 16384 }, - }, - "sonar-pro": { - id: "sonar-pro", - name: "Perplexity Pro", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-19", - last_updated: "2025-02-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.992, output: 14.994 }, - limit: { context: 200000, input: 200000, output: 128000 }, - }, - "Llama-3.3+(3.1v3.3)-70B-New-Dawn-v1.1": { - id: "Llama-3.3+(3.1v3.3)-70B-New-Dawn-v1.1", - name: "Llama 3.3+ 70B New Dawn v1.1", + "Llama-3.3-70B-Fallen-v1": { + id: "Llama-3.3-70B-Fallen-v1", + name: "Llama 3.3 70B Fallen v1", attachment: false, reasoning: false, tool_call: false, @@ -51610,9 +2822,23 @@ export const snapshot = { cost: { input: 0.5, output: 6 }, limit: { context: 32768, input: 32768, output: 32768 }, }, - "claude-sonnet-4-thinking": { - id: "claude-sonnet-4-thinking", - name: "Claude 4 Sonnet Thinking", + "claude-3-7-sonnet-thinking:32768": { + id: "claude-3-7-sonnet-thinking:32768", + name: "Claude 3.7 Sonnet Thinking (32K)", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-07-15", + last_updated: "2025-07-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.992, output: 14.994 }, + limit: { context: 200000, input: 200000, output: 64000 }, + }, + "claude-3-7-sonnet-thinking:1024": { + id: "claude-3-7-sonnet-thinking:1024", + name: "Claude 3.7 Sonnet Thinking (1K)", attachment: true, reasoning: true, tool_call: true, @@ -51622,109 +2848,25 @@ export const snapshot = { modalities: { input: ["text", "image", "pdf"], output: ["text"] }, open_weights: false, cost: { input: 2.992, output: 14.994 }, - limit: { context: 1000000, input: 1000000, output: 64000 }, + limit: { context: 200000, input: 200000, output: 64000 }, }, - "Qwen2.5-32B-EVA-v0.2": { - id: "Qwen2.5-32B-EVA-v0.2", - name: "Qwen 2.5 32b EVA", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-09-01", - last_updated: "2024-09-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.493, output: 0.493 }, - limit: { context: 24576, input: 24576, output: 8192 }, - }, - "v0-1.5-lg": { - id: "v0-1.5-lg", - name: "v0 1.5 LG", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-04", - last_updated: "2025-07-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 75 }, - limit: { context: 1000000, input: 1000000, output: 64000 }, - }, - "Llama-3.3-70B-Cu-Mai-R1": { - id: "Llama-3.3-70B-Cu-Mai-R1", - name: "Llama 3.3 70B Cu Mai R1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - hidream: { - id: "hidream", - name: "Hidream", + "claude-sonnet-4-5-20250929": { + id: "claude-sonnet-4-5-20250929", + name: "Claude Sonnet 4.5", attachment: true, reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2024-01-01", - last_updated: "2024-01-01", - modalities: { input: ["text"], output: ["image"] }, + tool_call: true, + structured_output: true, + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, open_weights: false, - limit: { context: 0, output: 0 }, + cost: { input: 2.992, output: 14.994 }, + limit: { context: 1000000, input: 1000000, output: 64000 }, }, - "auto-model": { - id: "auto-model", - name: "Auto model", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-06-01", - last_updated: "2024-06-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 1000000, input: 1000000, output: 1000000 }, - }, - "jamba-mini-1.7": { - id: "jamba-mini-1.7", - name: "Jamba Mini 1.7", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1989, output: 0.408 }, - limit: { context: 256000, input: 256000, output: 4096 }, - }, - "doubao-seed-2-0-pro-260215": { - id: "doubao-seed-2-0-pro-260215", - name: "Doubao Seed 2.0 Pro", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2026-02-14", - last_updated: "2026-02-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.782, output: 3.876 }, - limit: { context: 256000, input: 256000, output: 128000 }, - }, - "Llama-3.3-70B-Nova": { - id: "Llama-3.3-70B-Nova", - name: "Llama 3.3 70B Nova", + "Llama-3.3-70B-Vulpecula-R1": { + id: "Llama-3.3-70B-Vulpecula-R1", + name: "Llama 3.3 70B Vulpecula R1", attachment: false, reasoning: false, tool_call: false, @@ -51736,23 +2878,37 @@ export const snapshot = { cost: { input: 0.306, output: 0.306 }, limit: { context: 32768, input: 32768, output: 16384 }, }, - "gemini-2.5-flash-preview-09-2025-thinking": { - id: "gemini-2.5-flash-preview-09-2025-thinking", - name: "Gemini 2.5 Flash Preview (09/2025) – Thinking", + "claude-sonnet-4-thinking:8192": { + id: "claude-sonnet-4-thinking:8192", + name: "Claude 4 Sonnet Thinking (8K)", attachment: true, reasoning: true, tool_call: true, structured_output: true, - release_date: "2025-09-25", - last_updated: "2025-09-25", + release_date: "2025-05-22", + last_updated: "2025-05-22", modalities: { input: ["text", "image", "pdf"], output: ["text"] }, open_weights: false, - cost: { input: 0.3, output: 2.5 }, + cost: { input: 2.992, output: 14.994 }, + limit: { context: 1000000, input: 1000000, output: 64000 }, + }, + "gemini-2.5-pro": { + id: "gemini-2.5-pro", + name: "Gemini 2.5 Pro", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-06-05", + last_updated: "2025-06-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10 }, limit: { context: 1048756, input: 1048756, output: 65536 }, }, - "Llama-3.3-70B-Sapphira-0.2": { - id: "Llama-3.3-70B-Sapphira-0.2", - name: "Llama 3.3 70B Sapphira 0.2", + "Llama-3.3-70B-Ignition-v0.1": { + id: "Llama-3.3-70B-Ignition-v0.1", + name: "Llama 3.3 70B Ignition v0.1", attachment: false, reasoning: false, tool_call: false, @@ -51764,215 +2920,131 @@ export const snapshot = { cost: { input: 0.306, output: 0.306 }, limit: { context: 32768, input: 32768, output: 16384 }, }, - "auto-model-standard": { - id: "auto-model-standard", - name: "Auto model (Standard)", + "glm-4-plus-0111": { + id: "glm-4-plus-0111", + name: "GLM 4 Plus 0111", attachment: false, reasoning: false, tool_call: false, structured_output: false, - release_date: "2024-06-01", - last_updated: "2024-06-01", + release_date: "2025-02-19", + last_updated: "2025-02-19", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 9.996, output: 19.992 }, - limit: { context: 1000000, input: 1000000, output: 1000000 }, + cost: { input: 9.996, output: 9.996 }, + limit: { context: 128000, input: 128000, output: 4096 }, }, - "grok-3-mini-fast-beta": { - id: "grok-3-mini-fast-beta", - name: "Grok 3 Mini Fast Beta", + "KAT-Coder-Air-V1": { + id: "KAT-Coder-Air-V1", + name: "KAT Coder Air V1", attachment: false, reasoning: false, tool_call: false, structured_output: false, - release_date: "2025-02-17", - last_updated: "2025-02-17", + release_date: "2025-10-28", + last_updated: "2025-10-28", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 0.6, output: 4 }, - limit: { context: 131072, input: 131072, output: 131072 }, + cost: { input: 0.1, output: 0.2 }, + limit: { context: 128000, input: 128000, output: 32768 }, }, - "qwen-plus": { - id: "qwen-plus", - name: "Qwen Plus", + "deepseek-r1-sambanova": { + id: "deepseek-r1-sambanova", + name: "DeepSeek R1 Fast", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-20", + last_updated: "2025-02-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 4.998, output: 6.987 }, + limit: { context: 128000, input: 128000, output: 4096 }, + }, + "deepseek-r1": { + id: "deepseek-r1", + name: "DeepSeek R1", attachment: false, reasoning: true, tool_call: false, structured_output: false, - release_date: "2024-01-25", - last_updated: "2024-01-25", + release_date: "2025-01-20", + last_updated: "2025-01-20", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 0.3995, output: 1.2002 }, - limit: { context: 995904, input: 995904, output: 32768 }, + cost: { input: 0.4, output: 1.7 }, + limit: { context: 128000, input: 128000, output: 8192 }, }, - "Meta-Llama-3-1-8B-Instruct-FP8": { - id: "Meta-Llama-3-1-8B-Instruct-FP8", - name: "Llama 3.1 8B (decentralized)", - attachment: false, + "doubao-1-5-thinking-pro-250415": { + id: "doubao-1-5-thinking-pro-250415", + name: "Doubao 1.5 Thinking Pro", + attachment: true, reasoning: false, tool_call: false, structured_output: false, - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, + release_date: "2025-04-17", + last_updated: "2025-04-17", + modalities: { input: ["text", "pdf"], output: ["text"] }, open_weights: false, - cost: { input: 0.02, output: 0.03 }, + cost: { input: 0.6, output: 2.4 }, limit: { context: 128000, input: 128000, output: 16384 }, }, - "step-3": { - id: "step-3", - name: "Step-3", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-31", - last_updated: "2025-07-31", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2499, output: 0.6494 }, - limit: { context: 65536, input: 65536, output: 8192 }, - }, - "Gemma-3-27B-it": { - id: "Gemma-3-27B-it", - name: "Gemma 3 27B IT", + "sonar-pro": { + id: "sonar-pro", + name: "Perplexity Pro", attachment: false, reasoning: false, tool_call: false, structured_output: false, - release_date: "2025-03-10", - last_updated: "2025-03-10", + release_date: "2025-02-19", + last_updated: "2025-02-19", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, + cost: { input: 2.992, output: 14.994 }, + limit: { context: 200000, input: 200000, output: 128000 }, }, - "universal-summarizer": { - id: "universal-summarizer", - name: "Universal Summarizer", + "Gemma-3-27B-it-Abliterated": { + id: "Gemma-3-27B-it-Abliterated", + name: "Gemma 3 27B IT Abliterated", attachment: false, reasoning: false, tool_call: false, structured_output: false, - release_date: "2023-05-01", - last_updated: "2024-01-01", + release_date: "2025-07-03", + last_updated: "2025-07-03", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 30, output: 30 }, - limit: { context: 32768, input: 32768, output: 32768 }, + cost: { input: 0.42, output: 0.42 }, + limit: { context: 32768, input: 32768, output: 96000 }, }, - deepclaude: { - id: "deepclaude", - name: "DeepClaude", + "deepseek-chat-cheaper": { + id: "deepseek-chat-cheaper", + name: "DeepSeek V3/Chat Cheaper", attachment: true, reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-01", - last_updated: "2025-02-01", + tool_call: true, + structured_output: true, + release_date: "2025-04-15", + last_updated: "2025-04-15", modalities: { input: ["text", "pdf"], output: ["text"] }, open_weights: false, - cost: { input: 3, output: 15 }, + cost: { input: 0.25, output: 0.7 }, limit: { context: 128000, input: 128000, output: 8192 }, }, - "brave-pro": { - id: "brave-pro", - name: "Brave (Pro)", - attachment: false, + "gemini-2.0-pro-exp-02-05": { + id: "gemini-2.0-pro-exp-02-05", + name: "Gemini 2.0 Pro 0205", + attachment: true, reasoning: false, tool_call: false, structured_output: false, - release_date: "2023-03-02", - last_updated: "2024-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 5 }, - limit: { context: 8192, input: 8192, output: 8192 }, - }, - "gemini-3-pro-preview": { - id: "gemini-3-pro-preview", - name: "Gemini 3 Pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-11-18", - last_updated: "2025-11-18", + release_date: "2025-02-05", + last_updated: "2025-02-05", modalities: { input: ["text", "image"], output: ["text"] }, open_weights: false, - cost: { input: 2, output: 12 }, - limit: { context: 1048756, input: 1048756, output: 65536 }, - }, - "claude-3-7-sonnet-reasoner": { - id: "claude-3-7-sonnet-reasoner", - name: "Claude 3.7 Sonnet Reasoner", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-03-29", - last_updated: "2025-03-29", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 128000, input: 128000, output: 8192 }, - }, - "gemini-2.0-flash-lite": { - id: "gemini-2.0-flash-lite", - name: "Gemini 2.0 Flash Lite", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.0748, output: 0.306 }, - limit: { context: 1000000, input: 1000000, output: 8192 }, - }, - "claude-opus-4-thinking:8192": { - id: "claude-opus-4-thinking:8192", - name: "Claude 4 Opus Thinking (8K)", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 14.994, output: 75.004 }, - limit: { context: 200000, input: 200000, output: 32000 }, - }, - "claude-opus-4-thinking:32768": { - id: "claude-opus-4-thinking:32768", - name: "Claude 4 Opus Thinking (32K)", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 14.994, output: 75.004 }, - limit: { context: 200000, input: 200000, output: 32000 }, - }, - "glm-zero-preview": { - id: "glm-zero-preview", - name: "GLM Zero Preview", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.802, output: 1.802 }, - limit: { context: 8000, input: 8000, output: 4096 }, + cost: { input: 1.989, output: 7.956 }, + limit: { context: 2097152, input: 2097152, output: 8192 }, }, "azure-gpt-4o-mini": { id: "azure-gpt-4o-mini", @@ -51988,79 +3060,9 @@ export const snapshot = { cost: { input: 0.1496, output: 0.595 }, limit: { context: 128000, input: 128000, output: 16384 }, }, - "deepseek-math-v2": { - id: "deepseek-math-v2", - name: "DeepSeek Math V2", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-03", - last_updated: "2025-12-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 2.2 }, - limit: { context: 128000, input: 128000, output: 65536 }, - }, - "glm-4-long": { - id: "glm-4-long", - name: "GLM-4 Long", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-08-01", - last_updated: "2024-08-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2006, output: 0.2006 }, - limit: { context: 1000000, input: 1000000, output: 4096 }, - }, - "GLM-4.5-Air-Derestricted-Iceblink": { - id: "GLM-4.5-Air-Derestricted-Iceblink", - name: "GLM 4.5 Air Derestricted Iceblink", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 131072, input: 131072, output: 98304 }, - }, - "claude-opus-4-1-thinking:1024": { - id: "claude-opus-4-1-thinking:1024", - name: "Claude 4.1 Opus Thinking (1K)", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 14.994, output: 75.004 }, - limit: { context: 200000, input: 200000, output: 32000 }, - }, - "qwen3-vl-235b-a22b-instruct-original": { - id: "qwen3-vl-235b-a22b-instruct-original", - name: "Qwen3 VL 235B A22B Instruct Original", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 1.2 }, - limit: { context: 32768, input: 32768, output: 32768 }, - }, - "Llama-3.3+(3.1v3.3)-70B-Hanami-x1": { - id: "Llama-3.3+(3.1v3.3)-70B-Hanami-x1", - name: "Llama 3.3+ 70B Hanami x1", + "Llama-3.3-70B-MS-Nevoria": { + id: "Llama-3.3-70B-MS-Nevoria", + name: "Llama 3.3 70B MS Nevoria", attachment: false, reasoning: false, tool_call: false, @@ -52072,20 +3074,160 @@ export const snapshot = { cost: { input: 0.306, output: 0.306 }, limit: { context: 32768, input: 32768, output: 16384 }, }, - "claude-opus-4-1-thinking:8192": { - id: "claude-opus-4-1-thinking:8192", - name: "Claude 4.1 Opus Thinking (8K)", + "claude-opus-4-thinking": { + id: "claude-opus-4-thinking", + name: "Claude 4 Opus Thinking", attachment: true, reasoning: true, tool_call: true, structured_output: true, - release_date: "2025-05-22", - last_updated: "2025-05-22", + release_date: "2025-07-15", + last_updated: "2025-07-15", modalities: { input: ["text", "image", "pdf"], output: ["text"] }, open_weights: false, cost: { input: 14.994, output: 75.004 }, limit: { context: 200000, input: 200000, output: 32000 }, }, + "Llama-3.3-70B-Sapphira-0.1": { + id: "Llama-3.3-70B-Sapphira-0.1", + name: "Llama 3.3 70B Sapphira 0.1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "doubao-seed-code-preview-latest": { + id: "doubao-seed-code-preview-latest", + name: "Doubao Seed Code Preview", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 256000, input: 256000, output: 16384 }, + }, + "Llama-3.3-70B-ArliAI-RPMax-v1.4": { + id: "Llama-3.3-70B-ArliAI-RPMax-v1.4", + name: "Llama 3.3 70B RPMax v1.4", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "mistral-small-31-24b-instruct": { + id: "mistral-small-31-24b-instruct", + name: "Mistral Small 31 24b Instruct", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-04-15", + last_updated: "2025-04-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 128000, input: 128000, output: 131072 }, + }, + "glm-4.1v-thinking-flashx": { + id: "glm-4.1v-thinking-flashx", + name: "GLM 4.1V Thinking FlashX", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.3 }, + limit: { context: 64000, input: 64000, output: 8192 }, + }, + "hunyuan-t1-latest": { + id: "hunyuan-t1-latest", + name: "Hunyuan T1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-03-22", + last_updated: "2025-03-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.17, output: 0.66 }, + limit: { context: 256000, input: 256000, output: 16384 }, + }, + "doubao-1-5-thinking-vision-pro-250428": { + id: "doubao-1-5-thinking-vision-pro-250428", + name: "Doubao 1.5 Thinking Vision Pro", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-05-15", + last_updated: "2025-05-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.55, output: 1.43 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "asi1-mini": { + id: "asi1-mini", + name: "ASI1 Mini", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-03-25", + last_updated: "2025-03-25", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 1 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "ernie-5.0-thinking-latest": { + id: "ernie-5.0-thinking-latest", + name: "Ernie 5.0 Thinking", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 2 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "Llama-3.3-70B-Incandescent-Malevolence": { + id: "Llama-3.3-70B-Incandescent-Malevolence", + name: "Llama 3.3 70B Incandescent Malevolence", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, "Llama-3.3-70B-Damascus-R1": { id: "Llama-3.3-70B-Damascus-R1", name: "Damascus R1", @@ -52100,33 +3242,1265 @@ export const snapshot = { cost: { input: 0.306, output: 0.306 }, limit: { context: 32768, input: 32768, output: 16384 }, }, - "Gemma-3-27B-ArliAI-RPMax-v3": { - id: "Gemma-3-27B-ArliAI-RPMax-v3", - name: "Gemma 3 27B RPMax v3", + "Gemma-3-27B-Nidum-Uncensored": { + id: "Gemma-3-27B-Nidum-Uncensored", + name: "Gemma 3 27B Nidum Uncensored", attachment: false, reasoning: false, tool_call: false, structured_output: false, - release_date: "2025-07-03", - last_updated: "2025-07-03", + release_date: "2025-08-08", + last_updated: "2025-08-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 96000 }, + }, + "gemini-2.5-flash-lite-preview-09-2025-thinking": { + id: "gemini-2.5-flash-lite-preview-09-2025-thinking", + name: "Gemini 2.5 Flash Lite Preview (09/2025) – Thinking", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 1048756, input: 1048756, output: 65536 }, + }, + "doubao-seed-2-0-pro-260215": { + id: "doubao-seed-2-0-pro-260215", + name: "Doubao Seed 2.0 Pro", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2026-02-14", + last_updated: "2026-02-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.782, output: 3.876 }, + limit: { context: 256000, input: 256000, output: 128000 }, + }, + "gemini-3-pro-image-preview": { + id: "gemini-3-pro-image-preview", + name: "Gemini 3 Pro Image", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12 }, + limit: { context: 1048756, input: 1048756, output: 65536 }, + }, + "Gemma-3-27B-CardProjector-v4": { + id: "Gemma-3-27B-CardProjector-v4", + name: "Gemma 3 27B CardProjector v4", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-03-10", + last_updated: "2025-03-10", modalities: { input: ["text"], output: ["text"] }, open_weights: false, cost: { input: 0.306, output: 0.306 }, limit: { context: 32768, input: 32768, output: 16384 }, }, - "gemini-2.5-flash-preview-05-20:thinking": { - id: "gemini-2.5-flash-preview-05-20:thinking", - name: "Gemini 2.5 Flash 0520 Thinking", + "jamba-mini-1.7": { + id: "jamba-mini-1.7", + name: "Jamba Mini 1.7", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1989, output: 0.408 }, + limit: { context: 256000, input: 256000, output: 4096 }, + }, + "Llama-3.3-70B-Forgotten-Safeword-3.6": { + id: "Llama-3.3-70B-Forgotten-Safeword-3.6", + name: "Llama 3.3 70B Forgotten Safeword 3.6", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "doubao-1-5-thinking-pro-vision-250415": { + id: "doubao-1-5-thinking-pro-vision-250415", + name: "Doubao 1.5 Thinking Pro Vision", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-04-15", + last_updated: "2025-04-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 2.4 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "gemini-2.5-pro-preview-06-05": { + id: "gemini-2.5-pro-preview-06-05", + name: "Gemini 2.5 Pro Preview 0605", attachment: true, reasoning: true, tool_call: false, structured_output: false, - release_date: "2025-05-20", - last_updated: "2025-05-20", + release_date: "2025-06-05", + last_updated: "2025-06-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10 }, + limit: { context: 1048756, input: 1048756, output: 65536 }, + }, + "gemini-2.0-pro-reasoner": { + id: "gemini-2.0-pro-reasoner", + name: "Gemini 2.0 Pro Reasoner", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-05", + last_updated: "2025-02-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.292, output: 4.998 }, + limit: { context: 128000, input: 128000, output: 65536 }, + }, + "doubao-seed-2-0-lite-260215": { + id: "doubao-seed-2-0-lite-260215", + name: "Doubao Seed 2.0 Lite", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2026-02-14", + last_updated: "2026-02-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1462, output: 0.8738 }, + limit: { context: 256000, input: 256000, output: 32000 }, + }, + "gemini-2.5-flash-lite-preview-06-17": { + id: "gemini-2.5-flash-lite-preview-06-17", + name: "Gemini 2.5 Flash Lite Preview", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 1048756, input: 1048756, output: 65536 }, + }, + "sonar-deep-research": { + id: "sonar-deep-research", + name: "Perplexity Deep Research", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-25", + last_updated: "2025-02-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3.4, output: 13.6 }, + limit: { context: 60000, input: 60000, output: 128000 }, + }, + "Gemma-3-27B-it": { + id: "Gemma-3-27B-it", + name: "Gemma 3 27B IT", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-03-10", + last_updated: "2025-03-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "Llama-3.3-70B-GeneticLemonade-Unleashed-v3": { + id: "Llama-3.3-70B-GeneticLemonade-Unleashed-v3", + name: "Llama 3.3 70B GeneticLemonade Unleashed v3", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "Gemma-3-27B-Glitter": { + id: "Gemma-3-27B-Glitter", + name: "Gemma 3 27B Glitter", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-03-10", + last_updated: "2025-03-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "Llama-3.3-70B-The-Omega-Directive-Unslop-v2.1": { + id: "Llama-3.3-70B-The-Omega-Directive-Unslop-v2.1", + name: "Llama 3.3 70B Omega Directive Unslop v2.1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "qwen3-30b-a3b-instruct-2507": { + id: "qwen3-30b-a3b-instruct-2507", + name: "Qwen3 30B A3B Instruct 2507", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-20", + last_updated: "2025-02-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5 }, + limit: { context: 256000, input: 256000, output: 32768 }, + }, + "gemini-2.5-flash-preview-09-2025-thinking": { + id: "gemini-2.5-flash-preview-09-2025-thinking", + name: "Gemini 2.5 Flash Preview (09/2025) – Thinking", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5 }, + limit: { context: 1048756, input: 1048756, output: 65536 }, + }, + "gemini-2.5-flash": { + id: "gemini-2.5-flash", + name: "Gemini 2.5 Flash", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-06-05", + last_updated: "2025-06-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5 }, + limit: { context: 1048756, input: 1048756, output: 65536 }, + }, + deepclaude: { + id: "deepclaude", + name: "DeepClaude", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-01", + last_updated: "2025-02-01", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 128000, input: 128000, output: 8192 }, + }, + "ernie-4.5-8k-preview": { + id: "ernie-4.5-8k-preview", + name: "Ernie 4.5 8k Preview", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-03-25", + last_updated: "2025-03-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.66, output: 2.6 }, + limit: { context: 8000, input: 8000, output: 16384 }, + }, + "doubao-seed-2-0-mini-260215": { + id: "doubao-seed-2-0-mini-260215", + name: "Doubao Seed 2.0 Mini", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2026-02-14", + last_updated: "2026-02-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.0493, output: 0.4845 }, + limit: { context: 256000, input: 256000, output: 32000 }, + }, + "gemini-3-pro-preview-thinking": { + id: "gemini-3-pro-preview-thinking", + name: "Gemini 3 Pro Thinking", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12 }, + limit: { context: 1048756, input: 1048756, output: 65536 }, + }, + "Llama-3.3-70B-GeneticLemonade-Opus": { + id: "Llama-3.3-70B-GeneticLemonade-Opus", + name: "Llama 3.3 70B GeneticLemonade Opus", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "v0-1.5-lg": { + id: "v0-1.5-lg", + name: "v0 1.5 LG", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-04", + last_updated: "2025-07-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75 }, + limit: { context: 1000000, input: 1000000, output: 64000 }, + }, + "ernie-4.5-turbo-128k": { + id: "ernie-4.5-turbo-128k", + name: "Ernie 4.5 Turbo 128k", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-05-08", + last_updated: "2025-05-08", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.132, output: 0.55 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "KAT-Coder-Pro-V1": { + id: "KAT-Coder-Pro-V1", + name: "KAT Coder Pro V1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-10-28", + last_updated: "2025-10-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.5, output: 6 }, + limit: { context: 256000, input: 256000, output: 32768 }, + }, + "claude-3-5-sonnet-20240620": { + id: "claude-3-5-sonnet-20240620", + name: "Claude 3.5 Sonnet Old", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2024-06-20", + last_updated: "2024-06-20", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.992, output: 14.994 }, + limit: { context: 200000, input: 200000, output: 8192 }, + }, + "claude-opus-4-1-thinking:8192": { + id: "claude-opus-4-1-thinking:8192", + name: "Claude 4.1 Opus Thinking (8K)", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 14.994, output: 75.004 }, + limit: { context: 200000, input: 200000, output: 32000 }, + }, + "gemini-2.0-flash-exp-image-generation": { + id: "gemini-2.0-flash-exp-image-generation", + name: "Gemini Text + Image", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 32767, input: 32767, output: 8192 }, + }, + "Llama-3.3-70B-Magnum-v4-SE": { + id: "Llama-3.3-70B-Magnum-v4-SE", + name: "Llama 3.3 70B Magnum v4 SE", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "glm-zero-preview": { + id: "glm-zero-preview", + name: "GLM Zero Preview", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.802, output: 1.802 }, + limit: { context: 8000, input: 8000, output: 4096 }, + }, + "study_gpt-chatgpt-4o-latest": { + id: "study_gpt-chatgpt-4o-latest", + name: "Study Mode", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-05-13", + last_updated: "2024-05-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 4.998, output: 14.994 }, + limit: { context: 200000, input: 200000, output: 16384 }, + }, + "glm-4-airx": { + id: "glm-4-airx", + name: "GLM-4 AirX", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-06-05", + last_updated: "2024-06-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.006, output: 2.006 }, + limit: { context: 8000, input: 8000, output: 4096 }, + }, + "step-2-mini": { + id: "step-2-mini", + name: "Step-2 Mini", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-05", + last_updated: "2024-07-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2006, output: 0.408 }, + limit: { context: 8000, input: 8000, output: 4096 }, + }, + "gemini-2.5-flash-preview-04-17:thinking": { + id: "gemini-2.5-flash-preview-04-17:thinking", + name: "Gemini 2.5 Flash Preview Thinking", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-04-17", + last_updated: "2025-04-17", modalities: { input: ["text", "image"], output: ["text"] }, open_weights: false, cost: { input: 0.15, output: 3.5 }, - limit: { context: 1048000, input: 1048000, output: 65536 }, + limit: { context: 1048756, input: 1048756, output: 65536 }, + }, + "Llama-3.3-70B-Mokume-Gane-R1": { + id: "Llama-3.3-70B-Mokume-Gane-R1", + name: "Llama 3.3 70B Mokume Gane R1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "deepseek-reasoner": { + id: "deepseek-reasoner", + name: "DeepSeek Reasoner", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.7 }, + limit: { context: 64000, input: 64000, output: 65536 }, + }, + "glm-z1-airx": { + id: "glm-z1-airx", + name: "GLM Z1 AirX", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-04-15", + last_updated: "2025-04-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.7, output: 0.7 }, + limit: { context: 32000, input: 32000, output: 16384 }, + }, + "jamba-mini-1.6": { + id: "jamba-mini-1.6", + name: "Jamba Mini 1.6", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-03-01", + last_updated: "2025-03-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1989, output: 0.408 }, + limit: { context: 256000, input: 256000, output: 4096 }, + }, + "claude-opus-4-1-thinking": { + id: "claude-opus-4-1-thinking", + name: "Claude 4.1 Opus Thinking", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 14.994, output: 75.004 }, + limit: { context: 200000, input: 200000, output: 32000 }, + }, + "grok-3-beta": { + id: "grok-3-beta", + name: "Grok 3 Beta", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 131072, input: 131072, output: 131072 }, + }, + "Llama-3.3-70B-Legion-V2.1": { + id: "Llama-3.3-70B-Legion-V2.1", + name: "Llama 3.3 70B Legion V2.1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + sonar: { + id: "sonar", + name: "Perplexity Simple", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.003, output: 1.003 }, + limit: { context: 127000, input: 127000, output: 128000 }, + }, + "z-image-turbo": { + id: "z-image-turbo", + name: "Z Image Turbo", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-11-27", + last_updated: "2025-11-27", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 0, output: 0 }, + }, + "GLM-4.5-Air-Derestricted-Iceblink-v2": { + id: "GLM-4.5-Air-Derestricted-Iceblink-v2", + name: "GLM 4.5 Air Derestricted Iceblink v2", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 158600, input: 158600, output: 65536 }, + }, + "jamba-large": { + id: "jamba-large", + name: "Jamba Large", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.989, output: 7.99 }, + limit: { context: 256000, input: 256000, output: 4096 }, + }, + "claude-3-7-sonnet-reasoner": { + id: "claude-3-7-sonnet-reasoner", + name: "Claude 3.7 Sonnet Reasoner", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-03-29", + last_updated: "2025-03-29", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 128000, input: 128000, output: 8192 }, + }, + "ernie-4.5-turbo-vl-32k": { + id: "ernie-4.5-turbo-vl-32k", + name: "Ernie 4.5 Turbo VL 32k", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-05-08", + last_updated: "2025-05-08", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.495, output: 1.43 }, + limit: { context: 32000, input: 32000, output: 16384 }, + }, + "Mistral-Nemo-12B-Instruct-2407": { + id: "Mistral-Nemo-12B-Instruct-2407", + name: "Mistral Nemo 12B Instruct 2407", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.01, output: 0.01 }, + limit: { context: 16384, input: 16384, output: 16384 }, + }, + "doubao-seed-1-6-flash-250615": { + id: "doubao-seed-1-6-flash-250615", + name: "Doubao Seed 1.6 Flash", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-06-15", + last_updated: "2025-06-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.0374, output: 0.374 }, + limit: { context: 256000, input: 256000, output: 16384 }, + }, + "qwq-32b": { + id: "qwq-32b", + name: "Qwen: QwQ 32B", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-04-15", + last_updated: "2025-04-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25599999, output: 0.30499999 }, + limit: { context: 128000, input: 128000, output: 32768 }, + }, + "Llama-3.3-70B-Strawberrylemonade-v1.2": { + id: "Llama-3.3-70B-Strawberrylemonade-v1.2", + name: "Llama 3.3 70B StrawberryLemonade v1.2", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "gemini-2.5-flash-preview-04-17": { + id: "gemini-2.5-flash-preview-04-17", + name: "Gemini 2.5 Flash Preview", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-04-17", + last_updated: "2025-04-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 1048756, input: 1048756, output: 65536 }, + }, + "ernie-x1-turbo-32k": { + id: "ernie-x1-turbo-32k", + name: "Ernie X1 Turbo 32k", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-05-08", + last_updated: "2025-05-08", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.165, output: 0.66 }, + limit: { context: 32000, input: 32000, output: 16384 }, + }, + "deepseek-math-v2": { + id: "deepseek-math-v2", + name: "DeepSeek Math V2", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-03", + last_updated: "2025-12-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 2.2 }, + limit: { context: 128000, input: 128000, output: 65536 }, + }, + "Llama-3.3-70B-Electranova-v1.0": { + id: "Llama-3.3-70B-Electranova-v1.0", + name: "Llama 3.3 70B Electranova v1.0", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "Llama-3.3-70B-ArliAI-RPMax-v2": { + id: "Llama-3.3-70B-ArliAI-RPMax-v2", + name: "Llama 3.3 70B ArliAI RPMax v2", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-08-08", + last_updated: "2025-08-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "qwen-image": { + id: "qwen-image", + name: "Qwen Image", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["image"] }, + open_weights: false, + limit: { context: 0, output: 0 }, + }, + "Llama-3.3-70B-Cu-Mai-R1": { + id: "Llama-3.3-70B-Cu-Mai-R1", + name: "Llama 3.3 70B Cu Mai R1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "GLM-4.5-Air-Derestricted-Iceblink": { + id: "GLM-4.5-Air-Derestricted-Iceblink", + name: "GLM 4.5 Air Derestricted Iceblink", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 131072, input: 131072, output: 98304 }, + }, + "Llama-3.3-70B-Bigger-Body": { + id: "Llama-3.3-70B-Bigger-Body", + name: "Llama 3.3 70B Bigger Body", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "Llama-3.3+(3.1v3.3)-70B-Hanami-x1": { + id: "Llama-3.3+(3.1v3.3)-70B-Hanami-x1", + name: "Llama 3.3+ 70B Hanami x1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "hunyuan-turbos-20250226": { + id: "hunyuan-turbos-20250226", + name: "Hunyuan Turbo S", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-27", + last_updated: "2025-02-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.187, output: 0.374 }, + limit: { context: 24000, input: 24000, output: 8192 }, + }, + "gemini-2.5-flash-preview-09-2025": { + id: "gemini-2.5-flash-preview-09-2025", + name: "Gemini 2.5 Flash Preview (09/2025)", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5 }, + limit: { context: 1048756, input: 1048756, output: 65536 }, + }, + "GLM-4.6-Derestricted-v5": { + id: "GLM-4.6-Derestricted-v5", + name: "GLM 4.6 Derestricted v5", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.5 }, + limit: { context: 131072, input: 131072, output: 8192 }, + }, + "glm-4-plus": { + id: "glm-4-plus", + name: "GLM-4 Plus", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-08-01", + last_updated: "2024-08-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 7.497, output: 7.497 }, + limit: { context: 128000, input: 128000, output: 4096 }, + }, + "Gemma-3-27B-Big-Tiger-v3": { + id: "Gemma-3-27B-Big-Tiger-v3", + name: "Gemma 3 27B Big Tiger v3", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-08-08", + last_updated: "2025-08-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "brave-research": { + id: "brave-research", + name: "Brave (Research)", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2023-03-02", + last_updated: "2024-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 5 }, + limit: { context: 16384, input: 16384, output: 16384 }, + }, + hidream: { + id: "hidream", + name: "Hidream", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2024-01-01", + last_updated: "2024-01-01", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 0, output: 0 }, + }, + "qwen3-max-2026-01-23": { + id: "qwen3-max-2026-01-23", + name: "Qwen3 Max 2026-01-23", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2026-01-26", + last_updated: "2026-01-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.2002, output: 6.001 }, + limit: { context: 256000, input: 256000, output: 32768 }, + }, + "claude-opus-4-1-20250805": { + id: "claude-opus-4-1-20250805", + name: "Claude 4.1 Opus", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 14.994, output: 75.004 }, + limit: { context: 200000, input: 200000, output: 32000 }, + }, + "claude-haiku-4-5-20251001": { + id: "claude-haiku-4-5-20251001", + name: "Claude Haiku 4.5", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5 }, + limit: { context: 200000, input: 200000, output: 64000 }, + }, + "MiniMax-M1": { + id: "MiniMax-M1", + name: "MiniMax M1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-06-16", + last_updated: "2025-06-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1394, output: 1.3328 }, + limit: { context: 1000000, input: 1000000, output: 131072 }, + }, + "gemini-2.5-flash-nothinking": { + id: "gemini-2.5-flash-nothinking", + name: "Gemini 2.5 Flash (No Thinking)", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-06-05", + last_updated: "2025-06-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5 }, + limit: { context: 1048756, input: 1048756, output: 65536 }, + }, + "exa-research-pro": { + id: "exa-research-pro", + name: "Exa (Research Pro)", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-06-04", + last_updated: "2025-06-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 2.5 }, + limit: { context: 16384, input: 16384, output: 16384 }, + }, + "grok-3-fast-beta": { + id: "grok-3-fast-beta", + name: "Grok 3 Fast Beta", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25 }, + limit: { context: 131072, input: 131072, output: 131072 }, + }, + "claude-opus-4-5-20251101:thinking": { + id: "claude-opus-4-5-20251101:thinking", + name: "Claude 4.5 Opus Thinking", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-11-01", + last_updated: "2025-11-01", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 4.998, output: 25.007 }, + limit: { context: 200000, input: 200000, output: 32000 }, + }, + "gemini-2.5-pro-exp-03-25": { + id: "gemini-2.5-pro-exp-03-25", + name: "Gemini 2.5 Pro Experimental 0325", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-03-25", + last_updated: "2025-03-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10 }, + limit: { context: 1048756, input: 1048756, output: 65536 }, + }, + "claude-3-7-sonnet-thinking": { + id: "claude-3-7-sonnet-thinking", + name: "Claude 3.7 Sonnet Thinking", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-02-24", + last_updated: "2025-02-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.992, output: 14.994 }, + limit: { context: 200000, input: 200000, output: 16000 }, + }, + "claude-opus-4-thinking:8192": { + id: "claude-opus-4-thinking:8192", + name: "Claude 4 Opus Thinking (8K)", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 14.994, output: 75.004 }, + limit: { context: 200000, input: 200000, output: 32000 }, + }, + "claude-sonnet-4-thinking:1024": { + id: "claude-sonnet-4-thinking:1024", + name: "Claude 4 Sonnet Thinking (1K)", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.992, output: 14.994 }, + limit: { context: 1000000, input: 1000000, output: 64000 }, + }, + "Llama-3.3-70B-Magnum-v4-SE-Cirrus-x1-SLERP": { + id: "Llama-3.3-70B-Magnum-v4-SE-Cirrus-x1-SLERP", + name: "Llama 3.3 70B Magnum v4 SE Cirrus x1 SLERP", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-26", + last_updated: "2025-07-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "step-r1-v-mini": { + id: "step-r1-v-mini", + name: "Step R1 V Mini", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-04-08", + last_updated: "2025-04-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 11 }, + limit: { context: 128000, input: 128000, output: 65536 }, + }, + "ernie-x1-32k-preview": { + id: "ernie-x1-32k-preview", + name: "Ernie X1 32k", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.33, output: 1.32 }, + limit: { context: 32000, input: 32000, output: 16384 }, + }, + "Llama-3.3-70B-StrawberryLemonade-v1.0": { + id: "Llama-3.3-70B-StrawberryLemonade-v1.0", + name: "Llama 3.3 70B StrawberryLemonade v1.0", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "KAT-Coder-Exp-72B-1010": { + id: "KAT-Coder-Exp-72B-1010", + name: "KAT Coder Exp 72B 1010", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-10-28", + last_updated: "2025-10-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.2 }, + limit: { context: 128000, input: 128000, output: 32768 }, + }, + "gemini-2.5-pro-preview-03-25": { + id: "gemini-2.5-pro-preview-03-25", + name: "Gemini 2.5 Pro Preview 0325", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-03-25", + last_updated: "2025-03-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10 }, + limit: { context: 1048756, input: 1048756, output: 65536 }, + }, + "claude-opus-4-thinking:1024": { + id: "claude-opus-4-thinking:1024", + name: "Claude 4 Opus Thinking (1K)", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 14.994, output: 75.004 }, + limit: { context: 200000, input: 200000, output: 32000 }, }, "claude-sonnet-4-20250514": { id: "claude-sonnet-4-20250514", @@ -52142,37 +4516,191 @@ export const snapshot = { cost: { input: 2.992, output: 14.994 }, limit: { context: 200000, input: 200000, output: 64000 }, }, - "claude-opus-4-1-thinking:32000": { - id: "claude-opus-4-1-thinking:32000", - name: "Claude 4.1 Opus Thinking (32K)", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 14.994, output: 75.004 }, - limit: { context: 200000, input: 200000, output: 32000 }, - }, - "sarvan-medium": { - id: "sarvan-medium", - name: "Sarvam Medium", + "Llama-3.3-70B-Progenitor-V3.3": { + id: "Llama-3.3-70B-Progenitor-V3.3", + name: "Llama 3.3 70B Progenitor V3.3", attachment: false, reasoning: false, tool_call: false, structured_output: false, - release_date: "2025-01-01", - last_updated: "2025-01-01", + release_date: "2025-07-26", + last_updated: "2025-07-26", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 0.25, output: 0.75 }, - limit: { context: 128000, input: 128000, output: 16384 }, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, }, - "Llama-3.3-70B-Anthrobomination": { - id: "Llama-3.3-70B-Anthrobomination", - name: "Llama 3.3 70B Anthrobomination", + "Qwen2.5-32B-EVA-v0.2": { + id: "Qwen2.5-32B-EVA-v0.2", + name: "Qwen 2.5 32b EVA", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-09-01", + last_updated: "2024-09-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.493, output: 0.493 }, + limit: { context: 24576, input: 24576, output: 8192 }, + }, + "brave-pro": { + id: "brave-pro", + name: "Brave (Pro)", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2023-03-02", + last_updated: "2024-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 5 }, + limit: { context: 8192, input: 8192, output: 8192 }, + }, + "step-2-16k-exp": { + id: "step-2-16k-exp", + name: "Step-2 16k Exp", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-05", + last_updated: "2024-07-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 7.004, output: 19.992 }, + limit: { context: 16000, input: 16000, output: 8192 }, + }, + "Llama-3.3-70B-Fallen-R1-v1": { + id: "Llama-3.3-70B-Fallen-R1-v1", + name: "Llama 3.3 70B Fallen R1 v1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "claude-sonnet-4-thinking": { + id: "claude-sonnet-4-thinking", + name: "Claude 4 Sonnet Thinking", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-02-24", + last_updated: "2025-02-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.992, output: 14.994 }, + limit: { context: 1000000, input: 1000000, output: 64000 }, + }, + "doubao-1.5-pro-256k": { + id: "doubao-1.5-pro-256k", + name: "Doubao 1.5 Pro 256k", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-03-12", + last_updated: "2025-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.799, output: 1.445 }, + limit: { context: 256000, input: 256000, output: 16384 }, + }, + "claude-3-7-sonnet-20250219": { + id: "claude-3-7-sonnet-20250219", + name: "Claude 3.7 Sonnet", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.992, output: 14.994 }, + limit: { context: 200000, input: 200000, output: 16000 }, + }, + "learnlm-1.5-pro-experimental": { + id: "learnlm-1.5-pro-experimental", + name: "Gemini LearnLM Experimental", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-05-14", + last_updated: "2024-05-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3.502, output: 10.506 }, + limit: { context: 32767, input: 32767, output: 8192 }, + }, + "qwen3-coder-30b-a3b-instruct": { + id: "qwen3-coder-30b-a3b-instruct", + name: "Qwen3 Coder 30B A3B Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 128000, input: 128000, output: 65536 }, + }, + chroma: { + id: "chroma", + name: "Chroma", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-08-12", + last_updated: "2025-08-12", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 0, output: 0 }, + }, + "Llama-3.3-70B-Predatorial-Extasy": { + id: "Llama-3.3-70B-Predatorial-Extasy", + name: "Llama 3.3 70B Predatorial Extasy", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "Llama-3.3-70B-Aurora-Borealis": { + id: "Llama-3.3-70B-Aurora-Borealis", + name: "Llama 3.3 70B Aurora Borealis", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "Llama-3.3-70B-ArliAI-RPMax-v3": { + id: "Llama-3.3-70B-ArliAI-RPMax-v3", + name: "Llama 3.3 70B ArliAI RPMax v3", attachment: false, reasoning: false, tool_call: false, @@ -52198,6 +4726,76 @@ export const snapshot = { cost: { input: 0.4, output: 0.4 }, limit: { context: 128000, input: 128000, output: 16384 }, }, + "step-3": { + id: "step-3", + name: "Step-3", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-31", + last_updated: "2025-07-31", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2499, output: 0.6494 }, + limit: { context: 65536, input: 65536, output: 8192 }, + }, + "Llama-3.3-70B-The-Omega-Directive-Unslop-v2.0": { + id: "Llama-3.3-70B-The-Omega-Directive-Unslop-v2.0", + name: "Llama 3.3 70B Omega Directive Unslop v2.0", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "auto-model": { + id: "auto-model", + name: "Auto model", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-06-01", + last_updated: "2024-06-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 1000000, input: 1000000, output: 1000000 }, + }, + "claude-opus-4-1-thinking:32768": { + id: "claude-opus-4-1-thinking:32768", + name: "Claude 4.1 Opus Thinking (32K)", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 14.994, output: 75.004 }, + limit: { context: 200000, input: 200000, output: 32000 }, + }, + "Llama-3.3-70B-Shakudo": { + id: "Llama-3.3-70B-Shakudo", + name: "Llama 3.3 70B Shakudo", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, "Baichuan4-Air": { id: "Baichuan4-Air", name: "Baichuan 4 Air", @@ -52212,71 +4810,57 @@ export const snapshot = { cost: { input: 0.157, output: 0.157 }, limit: { context: 32768, input: 32768, output: 32768 }, }, - "jamba-mini": { - id: "jamba-mini", - name: "Jamba Mini", + "kimi-thinking-preview": { + id: "kimi-thinking-preview", + name: "Kimi Thinking Preview", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-05-07", + last_updated: "2025-05-07", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 31.46, output: 31.46 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "qwen-turbo": { + id: "qwen-turbo", + name: "Qwen Turbo", attachment: false, reasoning: false, tool_call: false, structured_output: false, - release_date: "2025-07-09", - last_updated: "2025-07-09", + release_date: "2024-11-01", + last_updated: "2024-11-01", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 0.1989, output: 0.408 }, - limit: { context: 256000, input: 256000, output: 4096 }, + cost: { input: 0.04998, output: 0.2006 }, + limit: { context: 1000000, input: 1000000, output: 8192 }, }, - "KAT-Coder-Exp-72B-1010": { - id: "KAT-Coder-Exp-72B-1010", - name: "KAT Coder Exp 72B 1010", + "Llama-3.3-70B-Mhnnn-x1": { + id: "Llama-3.3-70B-Mhnnn-x1", + name: "Llama 3.3 70B Mhnnn x1", attachment: false, reasoning: false, tool_call: false, structured_output: false, - release_date: "2025-10-28", - last_updated: "2025-10-28", + release_date: "2024-12-06", + last_updated: "2024-12-06", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 0.1, output: 0.2 }, - limit: { context: 128000, input: 128000, output: 32768 }, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, }, - "gemini-2.5-flash-preview-04-17:thinking": { - id: "gemini-2.5-flash-preview-04-17:thinking", - name: "Gemini 2.5 Flash Preview Thinking", + "claude-opus-4-thinking:32768": { + id: "claude-opus-4-thinking:32768", + name: "Claude 4 Opus Thinking (32K)", attachment: true, reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-04-17", - last_updated: "2025-04-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 3.5 }, - limit: { context: 1048756, input: 1048756, output: 65536 }, - }, - "brave-research": { - id: "brave-research", - name: "Brave (Research)", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2023-03-02", - last_updated: "2024-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 5 }, - limit: { context: 16384, input: 16384, output: 16384 }, - }, - "claude-opus-4-1-20250805": { - id: "claude-opus-4-1-20250805", - name: "Claude 4.1 Opus", - attachment: true, - reasoning: false, tool_call: true, structured_output: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", + release_date: "2025-05-22", + last_updated: "2025-05-22", modalities: { input: ["text", "image", "pdf"], output: ["text"] }, open_weights: false, cost: { input: 14.994, output: 75.004 }, @@ -52296,89 +4880,47 @@ export const snapshot = { cost: { input: 0.306, output: 0.306 }, limit: { context: 32768, input: 32768, output: 16384 }, }, - "claude-opus-4-5-20251101:thinking": { - id: "claude-opus-4-5-20251101:thinking", - name: "Claude 4.5 Opus Thinking", + "claude-opus-4-1-thinking:1024": { + id: "claude-opus-4-1-thinking:1024", + name: "Claude 4.1 Opus Thinking (1K)", attachment: true, reasoning: true, tool_call: true, structured_output: true, - release_date: "2025-11-01", - last_updated: "2025-11-01", + release_date: "2025-05-22", + last_updated: "2025-05-22", modalities: { input: ["text", "image", "pdf"], output: ["text"] }, open_weights: false, - cost: { input: 4.998, output: 25.007 }, + cost: { input: 14.994, output: 75.004 }, limit: { context: 200000, input: 200000, output: 32000 }, }, - "gemini-2.5-pro": { - id: "gemini-2.5-pro", - name: "Gemini 2.5 Pro", + "gemini-2.5-flash-lite": { + id: "gemini-2.5-flash-lite", + name: "Gemini 2.5 Flash Lite", attachment: true, reasoning: true, tool_call: false, structured_output: false, - release_date: "2025-06-05", - last_updated: "2025-06-05", + release_date: "2025-06-17", + last_updated: "2025-06-17", modalities: { input: ["text", "image"], output: ["text"] }, open_weights: false, - cost: { input: 2.5, output: 10 }, + cost: { input: 0.1, output: 0.4 }, limit: { context: 1048756, input: 1048756, output: 65536 }, }, - "grok-3-beta": { - id: "grok-3-beta", - name: "Grok 3 Beta", + "phi-4-multimodal-instruct": { + id: "phi-4-multimodal-instruct", + name: "Phi 4 Multimodal", attachment: false, reasoning: false, tool_call: false, structured_output: false, - release_date: "2025-09-29", - last_updated: "2025-09-29", + release_date: "2025-07-26", + last_updated: "2025-07-26", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 131072, input: 131072, output: 131072 }, - }, - "azure-o3-mini": { - id: "azure-o3-mini", - name: "Azure o3-mini", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-01-31", - last_updated: "2025-01-31", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.088, output: 4.3996 }, - limit: { context: 200000, input: 200000, output: 65536 }, - }, - "QwQ-32B-ArliAI-RpR-v1": { - id: "QwQ-32B-ArliAI-RpR-v1", - name: "QwQ 32b Arli V1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 32768, input: 32768, output: 32768 }, - }, - "Llama-3.3-70B-Forgotten-Abomination-v5.0": { - id: "Llama-3.3-70B-Forgotten-Abomination-v5.0", - name: "Llama 3.3 70B Forgotten Abomination v5.0", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, + cost: { input: 0.07, output: 0.11 }, + limit: { context: 128000, input: 128000, output: 16384 }, }, "doubao-seed-2-0-code-preview-260215": { id: "doubao-seed-2-0-code-preview-260215", @@ -52394,103 +4936,19 @@ export const snapshot = { cost: { input: 0.782, output: 3.893 }, limit: { context: 256000, input: 256000, output: 128000 }, }, - "Llama-3.3-70B-Mhnnn-x1": { - id: "Llama-3.3-70B-Mhnnn-x1", - name: "Llama 3.3 70B Mhnnn x1", + "deepseek-reasoner-cheaper": { + id: "deepseek-reasoner-cheaper", + name: "Deepseek R1 Cheaper", attachment: false, reasoning: false, tool_call: false, structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", + release_date: "2025-01-20", + last_updated: "2025-01-20", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "hunyuan-t1-latest": { - id: "hunyuan-t1-latest", - name: "Hunyuan T1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-03-22", - last_updated: "2025-03-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.17, output: 0.66 }, - limit: { context: 256000, input: 256000, output: 16384 }, - }, - "Gemma-3-27B-CardProjector-v4": { - id: "Gemma-3-27B-CardProjector-v4", - name: "Gemma 3 27B CardProjector v4", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-03-10", - last_updated: "2025-03-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "glm-4-flash": { - id: "glm-4-flash", - name: "GLM-4 Flash", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-08-01", - last_updated: "2024-08-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1003, output: 0.1003 }, - limit: { context: 128000, input: 128000, output: 4096 }, - }, - "learnlm-1.5-pro-experimental": { - id: "learnlm-1.5-pro-experimental", - name: "Gemini LearnLM Experimental", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-05-14", - last_updated: "2024-05-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3.502, output: 10.506 }, - limit: { context: 32767, input: 32767, output: 8192 }, - }, - "Llama-3.3-70B-Dark-Ages-v0.1": { - id: "Llama-3.3-70B-Dark-Ages-v0.1", - name: "Llama 3.3 70B Dark Ages v0.1", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "yi-large": { - id: "yi-large", - name: "Yi Large", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-05-13", - last_updated: "2024-05-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3.196, output: 3.196 }, - limit: { context: 32000, input: 32000, output: 4096 }, + cost: { input: 0.4, output: 1.7 }, + limit: { context: 128000, input: 128000, output: 65536 }, }, "exa-answer": { id: "exa-answer", @@ -52506,19 +4964,512 @@ export const snapshot = { cost: { input: 2.5, output: 2.5 }, limit: { context: 4096, input: 4096, output: 4096 }, }, - "gemini-2.5-pro-exp-03-25": { - id: "gemini-2.5-pro-exp-03-25", - name: "Gemini 2.5 Pro Experimental 0325", + "v0-1.0-md": { + id: "v0-1.0-md", + name: "v0 1.0 MD", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-04", + last_updated: "2025-07-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 200000, input: 200000, output: 64000 }, + }, + "glm-4.1v-thinking-flash": { + id: "glm-4.1v-thinking-flash", + name: "GLM 4.1V Thinking Flash", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.3 }, + limit: { context: 64000, input: 64000, output: 8192 }, + }, + "azure-o1": { + id: "azure-o1", + name: "Azure o1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-17", + last_updated: "2024-12-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 14.994, output: 59.993 }, + limit: { context: 200000, input: 200000, output: 100000 }, + }, + "GLM-4.5-Air-Derestricted": { + id: "GLM-4.5-Air-Derestricted", + name: "GLM 4.5 Air Derestricted", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 202600, input: 202600, output: 98304 }, + }, + "azure-o3-mini": { + id: "azure-o3-mini", + name: "Azure o3-mini", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-01-31", + last_updated: "2025-01-31", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.088, output: 4.3996 }, + limit: { context: 200000, input: 200000, output: 65536 }, + }, + "Llama-3.3-70B-Sapphira-0.2": { + id: "Llama-3.3-70B-Sapphira-0.2", + name: "Llama 3.3 70B Sapphira 0.2", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "Llama-3.3-70B-Anthrobomination": { + id: "Llama-3.3-70B-Anthrobomination", + name: "Llama 3.3 70B Anthrobomination", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "QwQ-32B-ArliAI-RpR-v1": { + id: "QwQ-32B-ArliAI-RpR-v1", + name: "QwQ 32b Arli V1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 32768, input: 32768, output: 32768 }, + }, + "claude-opus-4-20250514": { + id: "claude-opus-4-20250514", + name: "Claude 4 Opus", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-05-14", + last_updated: "2025-05-14", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 14.994, output: 75.004 }, + limit: { context: 200000, input: 200000, output: 32000 }, + }, + "yi-lightning": { + id: "yi-lightning", + name: "Yi Lightning", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-10-16", + last_updated: "2024-10-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2006, output: 0.2006 }, + limit: { context: 12000, input: 12000, output: 4096 }, + }, + "Llama-3.3-70B-Electra-R1": { + id: "Llama-3.3-70B-Electra-R1", + name: "Llama 3.3 70B Electra R1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "Llama-3.3-70B-Forgotten-Abomination-v5.0": { + id: "Llama-3.3-70B-Forgotten-Abomination-v5.0", + name: "Llama 3.3 70B Forgotten Abomination v5.0", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "Llama-3.3-70B-Cirrus-x1": { + id: "Llama-3.3-70B-Cirrus-x1", + name: "Llama 3.3 70B Cirrus x1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "grok-3-mini-beta": { + id: "grok-3-mini-beta", + name: "Grok 3 Mini Beta", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.5 }, + limit: { context: 131072, input: 131072, output: 131072 }, + }, + "auto-model-standard": { + id: "auto-model-standard", + name: "Auto model (Standard)", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-06-01", + last_updated: "2024-06-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 9.996, output: 19.992 }, + limit: { context: 1000000, input: 1000000, output: 1000000 }, + }, + "claude-sonnet-4-5-20250929-thinking": { + id: "claude-sonnet-4-5-20250929-thinking", + name: "Claude Sonnet 4.5 Thinking", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.992, output: 14.994 }, + limit: { context: 1000000, input: 1000000, output: 64000 }, + }, + "v0-1.5-md": { + id: "v0-1.5-md", + name: "v0 1.5 MD", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-04", + last_updated: "2025-07-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 200000, input: 200000, output: 64000 }, + }, + "kimi-k2-instruct-fast": { + id: "kimi-k2-instruct-fast", + name: "Kimi K2 0711 Fast", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-15", + last_updated: "2025-07-15", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 2 }, + limit: { context: 131072, input: 131072, output: 16384 }, + }, + "glm-4-long": { + id: "glm-4-long", + name: "GLM-4 Long", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-08-01", + last_updated: "2024-08-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2006, output: 0.2006 }, + limit: { context: 1000000, input: 1000000, output: 4096 }, + }, + "mercury-coder-small": { + id: "mercury-coder-small", + name: "Mercury Coder Small", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-26", + last_updated: "2025-02-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "jamba-large-1.7": { + id: "jamba-large-1.7", + name: "Jamba Large 1.7", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.989, output: 7.99 }, + limit: { context: 256000, input: 256000, output: 4096 }, + }, + "qvq-max": { + id: "qvq-max", + name: "Qwen: QvQ Max", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-03-28", + last_updated: "2025-03-28", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.4, output: 5.3 }, + limit: { context: 128000, input: 128000, output: 8192 }, + }, + "gemini-2.0-flash-thinking-exp-1219": { + id: "gemini-2.0-flash-thinking-exp-1219", + name: "Gemini 2.0 Flash Thinking 1219", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-19", + last_updated: "2024-12-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1003, output: 0.408 }, + limit: { context: 32767, input: 32767, output: 8192 }, + }, + "gemini-2.0-flash-lite": { + id: "gemini-2.0-flash-lite", + name: "Gemini 2.0 Flash Lite", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.0748, output: 0.306 }, + limit: { context: 1000000, input: 1000000, output: 8192 }, + }, + "azure-gpt-4-turbo": { + id: "azure-gpt-4-turbo", + name: "Azure gpt-4-turbo", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2023-11-06", + last_updated: "2024-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 9.996, output: 30.005 }, + limit: { context: 128000, input: 128000, output: 4096 }, + }, + "Baichuan-M2": { + id: "Baichuan-M2", + name: "Baichuan M2 32B Medical", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-08-19", + last_updated: "2025-08-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 15.73, output: 15.73 }, + limit: { context: 32768, input: 32768, output: 32768 }, + }, + "qwen-long": { + id: "qwen-long", + name: "Qwen Long 10M", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-01-25", + last_updated: "2025-01-25", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1003, output: 0.408 }, + limit: { context: 10000000, input: 10000000, output: 8192 }, + }, + "sonar-reasoning-pro": { + id: "sonar-reasoning-pro", + name: "Perplexity Reasoning Pro", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.006, output: 7.9985 }, + limit: { context: 127000, input: 127000, output: 128000 }, + }, + "gemini-2.5-flash-preview-05-20:thinking": { + id: "gemini-2.5-flash-preview-05-20:thinking", + name: "Gemini 2.5 Flash 0520 Thinking", attachment: true, reasoning: true, tool_call: false, structured_output: false, - release_date: "2025-03-25", - last_updated: "2025-03-25", + release_date: "2025-05-20", + last_updated: "2025-05-20", modalities: { input: ["text", "image"], output: ["text"] }, open_weights: false, - cost: { input: 2.5, output: 10 }, - limit: { context: 1048756, input: 1048756, output: 65536 }, + cost: { input: 0.15, output: 3.5 }, + limit: { context: 1048000, input: 1048000, output: 65536 }, + }, + "GLM-4.5-Air-Derestricted-Steam-ReExtract": { + id: "GLM-4.5-Air-Derestricted-Steam-ReExtract", + name: "GLM 4.5 Air Derestricted Steam ReExtract", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-12", + last_updated: "2025-12-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 131072, input: 131072, output: 65536 }, + }, + "Llama-3.3-70B-Dark-Ages-v0.1": { + id: "Llama-3.3-70B-Dark-Ages-v0.1", + name: "Llama 3.3 70B Dark Ages v0.1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 32768, input: 32768, output: 16384 }, + }, + "Baichuan4-Turbo": { + id: "Baichuan4-Turbo", + name: "Baichuan 4 Turbo", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-08-19", + last_updated: "2025-08-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.42, output: 2.42 }, + limit: { context: 128000, input: 128000, output: 32768 }, + }, + "doubao-1.5-vision-pro-32k": { + id: "doubao-1.5-vision-pro-32k", + name: "Doubao 1.5 Vision Pro 32k", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-01-22", + last_updated: "2025-01-22", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.459, output: 1.377 }, + limit: { context: 32000, input: 32000, output: 8192 }, + }, + "inflection/inflection-3-pi": { + id: "inflection/inflection-3-pi", + name: "Inflection 3 Pi", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-10-11", + last_updated: "2024-10-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.499, output: 9.996 }, + limit: { context: 8000, input: 8000, output: 4096 }, + }, + "inflection/inflection-3-productivity": { + id: "inflection/inflection-3-productivity", + name: "Inflection 3 Productivity", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-10-11", + last_updated: "2024-10-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.499, output: 9.996 }, + limit: { context: 8000, input: 8000, output: 4096 }, + }, + "essentialai/rnj-1-instruct": { + id: "essentialai/rnj-1-instruct", + name: "RNJ-1 Instruct 8B", + family: "rnj", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-13", + last_updated: "2025-12-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.15 }, + limit: { context: 128000, input: 128000, output: 8192 }, }, "LLM360/K2-Think": { id: "LLM360/K2-Think", @@ -52535,16 +5486,781 @@ export const snapshot = { cost: { input: 0.17, output: 0.68 }, limit: { context: 128000, input: 128000, output: 32768 }, }, - "abacusai/Dracarys-72B-Instruct": { - id: "abacusai/Dracarys-72B-Instruct", - name: "Llama 3.1 70B Dracarys 2", + "TEE/kimi-k2.5": { + id: "TEE/kimi-k2.5", + name: "Kimi K2.5 TEE", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2026-01-29", + last_updated: "2026-01-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.9 }, + limit: { context: 128000, input: 128000, output: 65535 }, + }, + "TEE/glm-4.7": { + id: "TEE/glm-4.7", + name: "GLM 4.7 TEE", + family: "glm", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2026-01-29", + last_updated: "2026-01-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.85, output: 3.3 }, + limit: { context: 131000, input: 131000, output: 65535 }, + }, + "TEE/qwen3.5-397b-a17b": { + id: "TEE/qwen3.5-397b-a17b", + name: "Qwen3.5 397B A17B TEE", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2026-02-28", + last_updated: "2026-02-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 3.6 }, + limit: { context: 258048, input: 258048, output: 65536 }, + }, + "TEE/glm-5": { + id: "TEE/glm-5", + name: "GLM 5 TEE", + family: "glm", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.2, output: 3.5 }, + limit: { context: 203000, input: 203000, output: 65535 }, + }, + "TEE/qwen2.5-vl-72b-instruct": { + id: "TEE/qwen2.5-vl-72b-instruct", + name: "Qwen2.5 VL 72B TEE", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-01", + last_updated: "2025-02-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.7, output: 0.7 }, + limit: { context: 65536, input: 65536, output: 8192 }, + }, + "TEE/minimax-m2.1": { + id: "TEE/minimax-m2.1", + name: "MiniMax M2.1 TEE", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 200000, input: 200000, output: 131072 }, + }, + "TEE/qwen3-30b-a3b-instruct-2507": { + id: "TEE/qwen3-30b-a3b-instruct-2507", + name: "Qwen3 30B A3B Instruct 2507 TEE", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-29", + last_updated: "2025-07-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.44999999999999996 }, + limit: { context: 262000, input: 262000, output: 32768 }, + }, + "TEE/deepseek-v3.1": { + id: "TEE/deepseek-v3.1", + name: "DeepSeek V3.1 TEE", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-08-21", + last_updated: "2025-08-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 2.5 }, + limit: { context: 164000, input: 164000, output: 8192 }, + }, + "TEE/llama3-3-70b": { + id: "TEE/llama3-3-70b", + name: "Llama 3.3 70B", family: "llama", attachment: false, reasoning: false, tool_call: false, structured_output: false, - release_date: "2025-08-02", - last_updated: "2025-08-02", + release_date: "2025-07-03", + last_updated: "2025-07-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 2 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "TEE/glm-4.6": { + id: "TEE/glm-4.6", + name: "GLM 4.6 TEE", + family: "glm", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.75, output: 2 }, + limit: { context: 203000, input: 203000, output: 65535 }, + }, + "TEE/kimi-k2.5-thinking": { + id: "TEE/kimi-k2.5-thinking", + name: "Kimi K2.5 Thinking TEE", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2026-01-29", + last_updated: "2026-01-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.9 }, + limit: { context: 128000, input: 128000, output: 65535 }, + }, + "TEE/gemma-3-27b-it": { + id: "TEE/gemma-3-27b-it", + name: "Gemma 3 27B TEE", + family: "gemma", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-03-10", + last_updated: "2025-03-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 131072, input: 131072, output: 8192 }, + }, + "TEE/deepseek-v3.2": { + id: "TEE/deepseek-v3.2", + name: "DeepSeek V3.2 TEE", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 1 }, + limit: { context: 164000, input: 164000, output: 65536 }, + }, + "TEE/gpt-oss-20b": { + id: "TEE/gpt-oss-20b", + name: "GPT-OSS 20B TEE", + family: "gpt-oss", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 131072, input: 131072, output: 8192 }, + }, + "TEE/qwen3-coder": { + id: "TEE/qwen3-coder", + name: "Qwen3 Coder 480B TEE", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.5, output: 2 }, + limit: { context: 128000, input: 128000, output: 32768 }, + }, + "TEE/glm-4.7-flash": { + id: "TEE/glm-4.7-flash", + name: "GLM 4.7 Flash TEE", + family: "glm-flash", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.5 }, + limit: { context: 203000, input: 203000, output: 65535 }, + }, + "TEE/gpt-oss-120b": { + id: "TEE/gpt-oss-120b", + name: "GPT-OSS 120B TEE", + family: "gpt-oss", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 2 }, + limit: { context: 131072, input: 131072, output: 16384 }, + }, + "TEE/deepseek-r1-0528": { + id: "TEE/deepseek-r1-0528", + name: "DeepSeek R1 0528 TEE", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-05-28", + last_updated: "2025-05-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 2 }, + limit: { context: 128000, input: 128000, output: 65536 }, + }, + "TEE/kimi-k2-thinking": { + id: "TEE/kimi-k2-thinking", + name: "Kimi K2 Thinking TEE", + family: "kimi-thinking", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-11-06", + last_updated: "2025-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 2 }, + limit: { context: 128000, input: 128000, output: 65535 }, + }, + "CrucibleLab/L3.3-70B-Loki-V2.0": { + id: "CrucibleLab/L3.3-70B-Loki-V2.0", + name: "L3.3 70B Loki v2.0", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2026-01-22", + last_updated: "2026-01-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, + limit: { context: 16384, input: 16384, output: 16384 }, + }, + "deepseek/deepseek-v3.2:thinking": { + id: "deepseek/deepseek-v3.2:thinking", + name: "DeepSeek V3.2 Thinking", + family: "deepseek", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27999999999999997, output: 0.42000000000000004 }, + limit: { context: 163000, input: 163000, output: 65536 }, + }, + "deepseek/deepseek-prover-v2-671b": { + id: "deepseek/deepseek-prover-v2-671b", + name: "DeepSeek Prover v2 671B", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-04-30", + last_updated: "2025-04-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 2.5 }, + limit: { context: 160000, input: 160000, output: 16384 }, + }, + "deepseek/deepseek-v3.2-speciale": { + id: "deepseek/deepseek-v3.2-speciale", + name: "DeepSeek V3.2 Speciale", + family: "deepseek", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-12-02", + last_updated: "2025-12-02", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27999999999999997, output: 0.42000000000000004 }, + limit: { context: 163000, input: 163000, output: 65536 }, + }, + "deepseek/deepseek-v3.2": { + id: "deepseek/deepseek-v3.2", + name: "DeepSeek V3.2", + family: "deepseek", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27999999999999997, output: 0.42000000000000004 }, + limit: { context: 163000, input: 163000, output: 65536 }, + }, + "Doctor-Shotgun/MS3.2-24B-Magnum-Diamond": { + id: "Doctor-Shotgun/MS3.2-24B-Magnum-Diamond", + name: "MS3.2 24B Magnum Diamond", + family: "mistral", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-11-24", + last_updated: "2025-11-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, + limit: { context: 16384, input: 16384, output: 32768 }, + }, + "NeverSleep/Llama-3-Lumimaid-70B-v0.1": { + id: "NeverSleep/Llama-3-Lumimaid-70B-v0.1", + name: "Lumimaid 70b", + family: "llama", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-01", + last_updated: "2024-07-01", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.006, output: 2.006 }, + limit: { context: 16384, input: 16384, output: 8192 }, + }, + "NeverSleep/Lumimaid-v0.2-70B": { + id: "NeverSleep/Lumimaid-v0.2-70B", + name: "Lumimaid v0.2", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-01", + last_updated: "2024-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 1.5 }, + limit: { context: 16384, input: 16384, output: 8192 }, + }, + "Steelskull/L3.3-Cu-Mai-R1-70b": { + id: "Steelskull/L3.3-Cu-Mai-R1-70b", + name: "Llama 3.3 70B Cu Mai", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, + limit: { context: 16384, input: 16384, output: 16384 }, + }, + "Steelskull/L3.3-Nevoria-R1-70b": { + id: "Steelskull/L3.3-Nevoria-R1-70b", + name: "Steelskull Nevoria R1 70b", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, + limit: { context: 16384, input: 16384, output: 16384 }, + }, + "Steelskull/L3.3-MS-Evayale-70B": { + id: "Steelskull/L3.3-MS-Evayale-70B", + name: "Evayale 70b ", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, + limit: { context: 16384, input: 16384, output: 16384 }, + }, + "Steelskull/L3.3-Electra-R1-70b": { + id: "Steelskull/L3.3-Electra-R1-70b", + name: "Steelskull Electra R1 70b", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.69989, output: 0.69989 }, + limit: { context: 16384, input: 16384, output: 16384 }, + }, + "Steelskull/L3.3-MS-Nevoria-70b": { + id: "Steelskull/L3.3-MS-Nevoria-70b", + name: "Steelskull Nevoria 70b", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, + limit: { context: 16384, input: 16384, output: 16384 }, + }, + "Steelskull/L3.3-MS-Evalebis-70b": { + id: "Steelskull/L3.3-MS-Evalebis-70b", + name: "MS Evalebis 70b", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, + limit: { context: 16384, input: 16384, output: 16384 }, + }, + "miromind-ai/mirothinker-v1.5-235b": { + id: "miromind-ai/mirothinker-v1.5-235b", + name: "MiroThinker v1.5 235B", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2026-01-07", + last_updated: "2026-01-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 32768, input: 32768, output: 4000 }, + }, + "pamanseau/OpenReasoning-Nemotron-32B": { + id: "pamanseau/OpenReasoning-Nemotron-32B", + name: "OpenReasoning Nemotron 32B", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-08-21", + last_updated: "2025-08-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 32768, input: 32768, output: 65536 }, + }, + "arcee-ai/trinity-mini": { + id: "arcee-ai/trinity-mini", + name: "Trinity Mini", + family: "trinity-mini", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.045000000000000005, output: 0.15 }, + limit: { context: 131072, input: 131072, output: 8192 }, + }, + "arcee-ai/trinity-large": { + id: "arcee-ai/trinity-large", + name: "Trinity Large", + family: "trinity", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1 }, + limit: { context: 131072, input: 131072, output: 8192 }, + }, + "cognitivecomputations/dolphin-2.9.2-qwen2-72b": { + id: "cognitivecomputations/dolphin-2.9.2-qwen2-72b", + name: "Dolphin 72b", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-27", + last_updated: "2025-02-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.306, output: 0.306 }, + limit: { context: 8192, input: 8192, output: 4096 }, + }, + "deepcogito/cogito-v1-preview-qwen-32B": { + id: "deepcogito/cogito-v1-preview-qwen-32B", + name: "Cogito v1 Preview Qwen 32B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-05-10", + last_updated: "2025-05-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.7999999999999998, output: 1.7999999999999998 }, + limit: { context: 128000, input: 128000, output: 32768 }, + }, + "deepcogito/cogito-v2.1-671b": { + id: "deepcogito/cogito-v2.1-671b", + name: "Cogito v2.1 671B MoE", + family: "cogito", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-11-19", + last_updated: "2025-11-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 1.25 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "Salesforce/Llama-xLAM-2-70b-fc-r": { + id: "Salesforce/Llama-xLAM-2-70b-fc-r", + name: "Llama-xLAM-2 70B fc-r", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-04-13", + last_updated: "2025-04-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 2.5 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "NousResearch 2/hermes-4-405b:thinking": { + id: "NousResearch 2/hermes-4-405b:thinking", + name: "Hermes 4 Large (Thinking)", + family: "nousresearch", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 128000, input: 128000, output: 8192 }, + }, + "NousResearch 2/DeepHermes-3-Mistral-24B-Preview": { + id: "NousResearch 2/DeepHermes-3-Mistral-24B-Preview", + name: "DeepHermes-3 Mistral 24B (Preview)", + family: "nousresearch", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-05-10", + last_updated: "2025-05-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.3 }, + limit: { context: 128000, input: 128000, output: 32768 }, + }, + "NousResearch 2/Hermes-4-70B:thinking": { + id: "NousResearch 2/Hermes-4-70B:thinking", + name: "Hermes 4 (Thinking)", + family: "nousresearch", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-09-17", + last_updated: "2025-09-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2006, output: 0.39949999999999997 }, + limit: { context: 128000, input: 128000, output: 8192 }, + }, + "NousResearch 2/hermes-4-405b": { + id: "NousResearch 2/hermes-4-405b", + name: "Hermes 4 Large", + family: "nousresearch", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-08-26", + last_updated: "2025-08-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 128000, input: 128000, output: 8192 }, + }, + "NousResearch 2/hermes-3-llama-3.1-70b": { + id: "NousResearch 2/hermes-3-llama-3.1-70b", + name: "Hermes 3 70B", + family: "nousresearch", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2026-01-07", + last_updated: "2026-01-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.408, output: 0.408 }, + limit: { context: 65536, input: 65536, output: 8192 }, + }, + "NousResearch 2/hermes-4-70b": { + id: "NousResearch 2/hermes-4-70b", + name: "Hermes 4 Medium", + family: "nousresearch", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-03", + last_updated: "2025-07-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2006, output: 0.39949999999999997 }, + limit: { context: 128000, input: 128000, output: 8192 }, + }, + "soob3123/Veiled-Calla-12B": { + id: "soob3123/Veiled-Calla-12B", + name: "Veiled Calla 12B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-04-13", + last_updated: "2025-04-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.3 }, + limit: { context: 32768, input: 32768, output: 8192 }, + }, + "soob3123/GrayLine-Qwen3-8B": { + id: "soob3123/GrayLine-Qwen3-8B", + name: "Grayline Qwen3 8B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.3 }, + limit: { context: 16384, input: 16384, output: 32768 }, + }, + "soob3123/amoral-gemma3-27B-v2": { + id: "soob3123/amoral-gemma3-27B-v2", + name: "Amoral Gemma3 27B v2", + family: "gemma", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-05-23", + last_updated: "2025-05-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.3 }, + limit: { context: 32768, input: 32768, output: 8192 }, + }, + "nex-agi/deepseek-v3.1-nex-n1": { + id: "nex-agi/deepseek-v3.1-nex-n1", + name: "DeepSeek V3.1 Nex N1", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-10", + last_updated: "2025-12-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27999999999999997, output: 0.42000000000000004 }, + limit: { context: 128000, input: 128000, output: 8192 }, + }, + "Envoid/Llama-3.05-NT-Storybreaker-Ministral-70B": { + id: "Envoid/Llama-3.05-NT-Storybreaker-Ministral-70B", + name: "Llama 3.05 Storybreaker Ministral 70b", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-01", + last_updated: "2024-12-01", modalities: { input: ["text"], output: ["text"] }, open_weights: false, cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, @@ -52565,9 +6281,54 @@ export const snapshot = { cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, limit: { context: 16384, input: 16384, output: 8192 }, }, - "Envoid/Llama-3.05-NT-Storybreaker-Ministral-70B": { - id: "Envoid/Llama-3.05-NT-Storybreaker-Ministral-70B", - name: "Llama 3.05 Storybreaker Ministral 70b", + "anthracite-org/magnum-v4-72b": { + id: "anthracite-org/magnum-v4-72b", + name: "Magnum v4 72B", + family: "llama", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.006, output: 2.992 }, + limit: { context: 16384, input: 16384, output: 8192 }, + }, + "anthracite-org/magnum-v2-72b": { + id: "anthracite-org/magnum-v2-72b", + name: "Magnum V2 72B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-01", + last_updated: "2024-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.006, output: 2.992 }, + limit: { context: 16384, input: 16384, output: 8192 }, + }, + "ReadyArt/MS3.2-The-Omega-Directive-24B-Unslop-v2.0": { + id: "ReadyArt/MS3.2-The-Omega-Directive-24B-Unslop-v2.0", + name: "Omega Directive 24B Unslop v2.0", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-08", + last_updated: "2025-12-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 0.5 }, + limit: { context: 16384, input: 16384, output: 32768 }, + }, + "ReadyArt/The-Omega-Abomination-L-70B-v1.0": { + id: "ReadyArt/The-Omega-Abomination-L-70B-v1.0", + name: "The Omega Abomination V1", family: "llama", attachment: false, reasoning: false, @@ -52577,23 +6338,38 @@ export const snapshot = { last_updated: "2024-12-01", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 16384, input: 16384, output: 8192 }, + cost: { input: 0.7, output: 0.95 }, + limit: { context: 16384, input: 16384, output: 16384 }, }, - "allenai/olmo-3-32b-think": { - id: "allenai/olmo-3-32b-think", - name: "Olmo 3 32B Think", - family: "allenai", - attachment: false, - reasoning: true, + "undi95/remm-slerp-l2-13b": { + id: "undi95/remm-slerp-l2-13b", + name: "ReMM SLERP 13B", + family: "llama", + attachment: true, + reasoning: false, tool_call: false, structured_output: false, - release_date: "2025-11-01", - last_updated: "2025-11-01", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.7989999999999999, output: 1.2069999999999999 }, + limit: { context: 6144, input: 6144, output: 4096 }, + }, + "MarinaraSpaghetti/NemoMix-Unleashed-12B": { + id: "MarinaraSpaghetti/NemoMix-Unleashed-12B", + name: "NemoMix 12B Unleashed", + family: "mistral-nemo", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-01", + last_updated: "2024-07-01", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 0.3, output: 0.44999999999999996 }, - limit: { context: 128000, input: 128000, output: 8192 }, + cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, + limit: { context: 32768, input: 32768, output: 8192 }, }, "allenai/molmo-2-8b": { id: "allenai/molmo-2-8b", @@ -52640,21 +6416,66 @@ export const snapshot = { cost: { input: 0.15, output: 0.5 }, limit: { context: 65536, input: 65536, output: 8192 }, }, - "nex-agi/deepseek-v3.1-nex-n1": { - id: "nex-agi/deepseek-v3.1-nex-n1", - name: "DeepSeek V3.1 Nex N1", - family: "deepseek", + "allenai/olmo-3-32b-think": { + id: "allenai/olmo-3-32b-think", + name: "Olmo 3 32B Think", + family: "allenai", attachment: false, - reasoning: false, + reasoning: true, tool_call: false, structured_output: false, - release_date: "2025-12-10", - last_updated: "2025-12-10", + release_date: "2025-11-01", + last_updated: "2025-11-01", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 0.27999999999999997, output: 0.42000000000000004 }, + cost: { input: 0.3, output: 0.44999999999999996 }, limit: { context: 128000, input: 128000, output: 8192 }, }, + "stepfun-ai/step-3.5-flash:thinking": { + id: "stepfun-ai/step-3.5-flash:thinking", + name: "Step 3.5 Flash Thinking", + family: "step", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2026-02-02", + last_updated: "2026-02-02", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5 }, + limit: { context: 256000, input: 256000, output: 256000 }, + }, + "stepfun-ai/step-3.5-flash": { + id: "stepfun-ai/step-3.5-flash", + name: "Step 3.5 Flash", + family: "step", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2026-02-02", + last_updated: "2026-02-02", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5 }, + limit: { context: 256000, input: 256000, output: 256000 }, + }, + "zai-org/glm-4.7": { + id: "zai-org/glm-4.7", + name: "GLM 4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2026-01-29", + last_updated: "2026-01-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.8 }, + limit: { context: 200000, input: 200000, output: 128000 }, + }, "zai-org/glm-5": { id: "zai-org/glm-5", name: "GLM 5", @@ -52670,6 +6491,51 @@ export const snapshot = { cost: { input: 0.3, output: 2.55 }, limit: { context: 200000, input: 200000, output: 128000 }, }, + "zai-org/glm-5.1": { + id: "zai-org/glm-5.1", + name: "GLM 5.1", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2026-03-27", + last_updated: "2026-03-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 2.55 }, + limit: { context: 200000, input: 200000, output: 131072 }, + }, + "zai-org/glm-5.1:thinking": { + id: "zai-org/glm-5.1:thinking", + name: "GLM 5.1 Thinking", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2026-03-27", + last_updated: "2026-03-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 2.55 }, + limit: { context: 200000, input: 200000, output: 131072 }, + }, + "zai-org/glm-5:thinking": { + id: "zai-org/glm-5:thinking", + name: "GLM 5 Thinking", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 2.55 }, + limit: { context: 200000, input: 200000, output: 128000 }, + }, "zai-org/glm-4.7-flash": { id: "zai-org/glm-4.7-flash", name: "GLM 4.7 Flash", @@ -52685,55 +6551,475 @@ export const snapshot = { cost: { input: 0.07, output: 0.4 }, limit: { context: 200000, input: 200000, output: 128000 }, }, - "zai-org/glm-4.7": { - id: "zai-org/glm-4.7", - name: "GLM 4.7", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2026-01-29", - last_updated: "2026-01-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.8 }, - limit: { context: 200000, input: 200000, output: 128000 }, - }, - "zai-org/glm-5:thinking": { - id: "zai-org/glm-5:thinking", - name: "GLM 5 Thinking", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 2.55 }, - limit: { context: 200000, input: 200000, output: 128000 }, - }, - "nvidia/Llama-3.1-Nemotron-70B-Instruct-HF": { - id: "nvidia/Llama-3.1-Nemotron-70B-Instruct-HF", - name: "Nvidia Nemotron 70b", - family: "nemotron", + "featherless-ai/Qwerky-72B": { + id: "featherless-ai/Qwerky-72B", + name: "Qwerky 72B", + family: "qwerky", attachment: false, reasoning: false, tool_call: false, structured_output: false, - release_date: "2025-04-15", - last_updated: "2025-04-15", + release_date: "2025-03-20", + last_updated: "2025-03-20", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 0.357, output: 0.408 }, + cost: { input: 0.5, output: 0.5 }, + limit: { context: 32000, input: 32000, output: 8192 }, + }, + "mlabonne/NeuralDaredevil-8B-abliterated": { + id: "mlabonne/NeuralDaredevil-8B-abliterated", + name: "Neural Daredevil 8B abliterated", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.44, output: 0.44 }, + limit: { context: 8192, input: 8192, output: 8192 }, + }, + "raifle/sorcererlm-8x22b": { + id: "raifle/sorcererlm-8x22b", + name: "SorcererLM 8x22B", + family: "mixtral", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 4.505, output: 4.505 }, + limit: { context: 16000, input: 16000, output: 8192 }, + }, + "mistralai/mixtral-8x7b-instruct-v0.1": { + id: "mistralai/mixtral-8x7b-instruct-v0.1", + name: "Mixtral 8x7B", + family: "mixtral", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 0.27 }, + limit: { context: 32768, input: 32768, output: 32768 }, + }, + "mistralai/mistral-saba": { + id: "mistralai/mistral-saba", + name: "Mistral Saba", + family: "mistral", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1989, output: 0.595 }, + limit: { context: 32000, input: 32000, output: 32768 }, + }, + "mistralai/mistral-large-3-675b-instruct-2512": { + id: "mistralai/mistral-large-3-675b-instruct-2512", + name: "Mistral Large 3 675B", + family: "mistral-large", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-02", + last_updated: "2025-12-02", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 3 }, + limit: { context: 262144, input: 262144, output: 256000 }, + }, + "mistralai/devstral-2-123b-instruct-2512": { + id: "mistralai/devstral-2-123b-instruct-2512", + name: "Devstral 2 123B", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-09", + last_updated: "2025-12-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.4 }, + limit: { context: 262144, input: 262144, output: 65536 }, + }, + "mistralai/codestral-2508": { + id: "mistralai/codestral-2508", + name: "Codestral 2508", + family: "codestral", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-08-01", + last_updated: "2025-08-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.8999999999999999 }, + limit: { context: 256000, input: 256000, output: 32768 }, + }, + "mistralai/ministral-14b-instruct-2512": { + id: "mistralai/ministral-14b-instruct-2512", + name: "Ministral 3 14B", + family: "ministral", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-02", + last_updated: "2025-12-02", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 262144, input: 262144, output: 32768 }, + }, + "mistralai/mistral-tiny": { + id: "mistralai/mistral-tiny", + name: "Mistral Tiny", + family: "mistral", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2023-12-11", + last_updated: "2024-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25499999999999995, output: 0.25499999999999995 }, + limit: { context: 32000, input: 32000, output: 8192 }, + }, + "mistralai/ministral-8b-2512": { + id: "mistralai/ministral-8b-2512", + name: "Ministral 8B", + family: "ministral", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-04", + last_updated: "2025-12-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.15 }, + limit: { context: 262144, input: 262144, output: 32768 }, + }, + "mistralai/mixtral-8x22b-instruct-v0.1": { + id: "mistralai/mixtral-8x22b-instruct-v0.1", + name: "Mixtral 8x22B", + family: "mixtral", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8999999999999999, output: 0.8999999999999999 }, + limit: { context: 65536, input: 65536, output: 32768 }, + }, + "mistralai/mistral-medium-3.1": { + id: "mistralai/mistral-medium-3.1", + name: "Mistral Medium 3.1", + family: "mistral-medium", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2 }, + limit: { context: 131072, input: 131072, output: 32768 }, + }, + "mistralai/ministral-3b-2512": { + id: "mistralai/ministral-3b-2512", + name: "Ministral 3B", + family: "ministral", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-04", + last_updated: "2025-12-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 131072, input: 131072, output: 32768 }, + }, + "mistralai/Mistral-Nemo-Instruct-2407": { + id: "mistralai/Mistral-Nemo-Instruct-2407", + name: "Mistral Nemo", + family: "mistral-nemo", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1003, output: 0.1207 }, limit: { context: 16384, input: 16384, output: 8192 }, }, - "nvidia/Llama-3.3-Nemotron-Super-49B-v1": { - id: "nvidia/Llama-3.3-Nemotron-Super-49B-v1", - name: "Nvidia Nemotron Super 49B", - family: "nemotron", + "mistralai/mistral-medium-3": { + id: "mistralai/mistral-medium-3", + name: "Mistral Medium 3", + family: "mistral-medium", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2 }, + limit: { context: 131072, input: 131072, output: 32768 }, + }, + "mistralai/mistral-7b-instruct": { + id: "mistralai/mistral-7b-instruct", + name: "Mistral 7B Instruct", + family: "mistral", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-05-27", + last_updated: "2024-05-27", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.0544, output: 0.0544 }, + limit: { context: 32768, input: 32768, output: 8192 }, + }, + "mistralai/Devstral-Small-2505": { + id: "mistralai/Devstral-Small-2505", + name: "Mistral Devstral Small 2505", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-08-02", + last_updated: "2025-08-02", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.060000000000000005, output: 0.060000000000000005 }, + limit: { context: 32768, input: 32768, output: 8192 }, + }, + "mistralai/mistral-small-creative": { + id: "mistralai/mistral-small-creative", + name: "Mistral Small Creative", + family: "mistral-small", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-12-16", + last_updated: "2025-12-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 32768, input: 32768, output: 32768 }, + }, + "mistralai/mistral-large": { + id: "mistralai/mistral-large", + name: "Mistral Large 2411", + family: "mistral-large", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-02-26", + last_updated: "2024-02-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.006, output: 6.001 }, + limit: { context: 128000, input: 128000, output: 256000 }, + }, + "mistralai/ministral-14b-2512": { + id: "mistralai/ministral-14b-2512", + name: "Ministral 14B", + family: "ministral", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-04", + last_updated: "2025-12-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 262144, input: 262144, output: 32768 }, + }, + "shisa-ai/shisa-v2.1-llama3.3-70b": { + id: "shisa-ai/shisa-v2.1-llama3.3-70b", + name: "Shisa V2.1 Llama 3.3 70B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 0.5 }, + limit: { context: 32768, input: 32768, output: 4096 }, + }, + "shisa-ai/shisa-v2-llama3.3-70b": { + id: "shisa-ai/shisa-v2-llama3.3-70b", + name: "Shisa V2 Llama 3.3 70B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-26", + last_updated: "2025-07-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 0.5 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "meta-llama/llama-3.3-70b-instruct": { + id: "meta-llama/llama-3.3-70b-instruct", + name: "Llama 3.3 70b Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-02-27", + last_updated: "2025-02-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.23 }, + limit: { context: 131072, input: 131072, output: 16384 }, + }, + "meta-llama/llama-4-scout": { + id: "meta-llama/llama-4-scout", + name: "Llama 4 Scout", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.085, output: 0.46 }, + limit: { context: 328000, input: 328000, output: 65536 }, + }, + "meta-llama/llama-4-maverick": { + id: "meta-llama/llama-4-maverick", + name: "Llama 4 Maverick", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.18000000000000002, output: 0.8 }, + limit: { context: 1048576, input: 1048576, output: 65536 }, + }, + "meta-llama/llama-3.2-90b-vision-instruct": { + id: "meta-llama/llama-3.2-90b-vision-instruct", + name: "Llama 3.2 Medium", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.9009999999999999, output: 0.9009999999999999 }, + limit: { context: 131072, input: 131072, output: 16384 }, + }, + "meta-llama/llama-3.2-3b-instruct": { + id: "meta-llama/llama-3.2-3b-instruct", + name: "Llama 3.2 3b Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-09-25", + last_updated: "2024-09-25", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.0306, output: 0.0493 }, + limit: { context: 131072, input: 131072, output: 8192 }, + }, + "meta-llama/llama-3.1-8b-instruct": { + id: "meta-llama/llama-3.1-8b-instruct", + name: "Llama 3.1 8b Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.0544, output: 0.0544 }, + limit: { context: 131072, input: 131072, output: 16384 }, + }, + "GalrionSoftworks/MN-LooseCannon-12B-v1": { + id: "GalrionSoftworks/MN-LooseCannon-12B-v1", + name: "MN-LooseCannon-12B-v1", + family: "mistral-nemo", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-01", + last_updated: "2024-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, + limit: { context: 16384, input: 16384, output: 8192 }, + }, + "baseten/Kimi-K2-Instruct-FP4": { + id: "baseten/Kimi-K2-Instruct-FP4", + name: "Kimi K2 0711 Instruct FP4", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-11", + last_updated: "2025-07-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 2 }, + limit: { context: 128000, input: 128000, output: 131072 }, + }, + "Gryphe/MythoMax-L2-13b": { + id: "Gryphe/MythoMax-L2-13b", + name: "MythoMax 13B", + family: "llama", attachment: false, reasoning: false, tool_call: false, @@ -52742,23 +7028,188 @@ export const snapshot = { last_updated: "2025-08-08", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 0.15, output: 0.15 }, - limit: { context: 128000, input: 128000, output: 16384 }, + cost: { input: 0.1003, output: 0.1003 }, + limit: { context: 4000, input: 4000, output: 4096 }, }, - "nvidia/nvidia-nemotron-nano-9b-v2": { - id: "nvidia/nvidia-nemotron-nano-9b-v2", - name: "Nvidia Nemotron Nano 9B v2", - family: "nemotron", + "x-ai/grok-4-fast:thinking": { + id: "x-ai/grok-4-fast:thinking", + name: "Grok 4 Fast Thinking", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5 }, + limit: { context: 2000000, input: 2000000, output: 131072 }, + }, + "x-ai/grok-4-07-09": { + id: "x-ai/grok-4-07-09", + name: "Grok 4", + family: "grok", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 256000, input: 256000, output: 131072 }, + }, + "x-ai/grok-4-fast": { + id: "x-ai/grok-4-fast", + name: "Grok 4 Fast", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-09-20", + last_updated: "2025-09-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5 }, + limit: { context: 2000000, input: 2000000, output: 131072 }, + }, + "x-ai/grok-code-fast-1": { + id: "x-ai/grok-code-fast-1", + name: "Grok Code Fast 1", + family: "grok", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-08-28", + last_updated: "2025-08-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.5 }, + limit: { context: 256000, input: 256000, output: 131072 }, + }, + "x-ai/grok-4.1-fast": { + id: "x-ai/grok-4.1-fast", + name: "Grok 4.1 Fast", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-11-20", + last_updated: "2025-11-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5 }, + limit: { context: 2000000, input: 2000000, output: 131072 }, + }, + "x-ai/grok-4.1-fast-reasoning": { + id: "x-ai/grok-4.1-fast-reasoning", + name: "Grok 4.1 Fast Reasoning", + family: "grok", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-11-20", + last_updated: "2025-11-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5 }, + limit: { context: 2000000, input: 2000000, output: 131072 }, + }, + "tencent/Hunyuan-MT-7B": { + id: "tencent/Hunyuan-MT-7B", + name: "Hunyuan MT 7B", + family: "hunyuan", attachment: false, reasoning: false, tool_call: false, structured_output: false, - release_date: "2025-08-18", - last_updated: "2025-08-18", + release_date: "2025-09-18", + last_updated: "2025-09-18", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 0.17, output: 0.68 }, - limit: { context: 128000, input: 128000, output: 16384 }, + cost: { input: 10, output: 20 }, + limit: { context: 8192, input: 8192, output: 8192 }, + }, + "microsoft/wizardlm-2-8x22b": { + id: "microsoft/wizardlm-2-8x22b", + name: "WizardLM-2 8x22B", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-04-15", + last_updated: "2025-04-15", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, + limit: { context: 65536, input: 65536, output: 8192 }, + }, + "microsoft/MAI-DS-R1-FP8": { + id: "microsoft/MAI-DS-R1-FP8", + name: "Microsoft DeepSeek R1", + family: "deepseek", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.3 }, + limit: { context: 128000, input: 128000, output: 8192 }, + }, + "cohere/command-r": { + id: "cohere/command-r", + name: "Cohere: Command R", + family: "command-r", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-03-11", + last_updated: "2024-03-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.476, output: 1.428 }, + limit: { context: 128000, input: 128000, output: 4096 }, + }, + "cohere/command-r-plus-08-2024": { + id: "cohere/command-r-plus-08-2024", + name: "Cohere: Command R+", + family: "command-r", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + release_date: "2024-08-30", + last_updated: "2024-08-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.856, output: 14.246 }, + limit: { context: 128000, input: 128000, output: 4096 }, + }, + "chutesai/Mistral-Small-3.2-24B-Instruct-2506": { + id: "chutesai/Mistral-Small-3.2-24B-Instruct-2506", + name: "Mistral Small 3.2 24b Instruct", + family: "chutesai", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-04-15", + last_updated: "2025-04-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.4 }, + limit: { context: 128000, input: 128000, output: 131072 }, }, "nvidia/Llama-3.1-Nemotron-Ultra-253B-v1": { id: "nvidia/Llama-3.1-Nemotron-Ultra-253B-v1", @@ -52790,6 +7241,51 @@ export const snapshot = { cost: { input: 0.17, output: 0.68 }, limit: { context: 256000, input: 256000, output: 262144 }, }, + "nvidia/nvidia-nemotron-nano-9b-v2": { + id: "nvidia/nvidia-nemotron-nano-9b-v2", + name: "Nvidia Nemotron Nano 9B v2", + family: "nemotron", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-08-18", + last_updated: "2025-08-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.17, output: 0.68 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "nvidia/Llama-3.1-Nemotron-70B-Instruct-HF": { + id: "nvidia/Llama-3.1-Nemotron-70B-Instruct-HF", + name: "Nvidia Nemotron 70b", + family: "nemotron", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-04-15", + last_updated: "2025-04-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.357, output: 0.408 }, + limit: { context: 16384, input: 16384, output: 8192 }, + }, + "nvidia/Llama-3.3-Nemotron-Super-49B-v1": { + id: "nvidia/Llama-3.3-Nemotron-Super-49B-v1", + name: "Nvidia Nemotron Super 49B", + family: "nemotron", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-08-08", + last_updated: "2025-08-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.15 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, "nvidia/Llama-3_3-Nemotron-Super-49B-v1_5": { id: "nvidia/Llama-3_3-Nemotron-Super-49B-v1_5", name: "Nvidia Nemotron Super 49B v1.5", @@ -52805,564 +7301,9 @@ export const snapshot = { cost: { input: 0.05, output: 0.25 }, limit: { context: 128000, input: 128000, output: 16384 }, }, - "Doctor-Shotgun/MS3.2-24B-Magnum-Diamond": { - id: "Doctor-Shotgun/MS3.2-24B-Magnum-Diamond", - name: "MS3.2 24B Magnum Diamond", - family: "mistral", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-11-24", - last_updated: "2025-11-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 16384, input: 16384, output: 32768 }, - }, - "arcee-ai/trinity-mini": { - id: "arcee-ai/trinity-mini", - name: "Trinity Mini", - family: "trinity-mini", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.045000000000000005, output: 0.15 }, - limit: { context: 131072, input: 131072, output: 8192 }, - }, - "arcee-ai/trinity-large": { - id: "arcee-ai/trinity-large", - name: "Trinity Large", - family: "trinity", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 1 }, - limit: { context: 131072, input: 131072, output: 8192 }, - }, - "meganova-ai/manta-flash-1.0": { - id: "meganova-ai/manta-flash-1.0", - name: "Manta Flash 1.0", - family: "nova", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-20", - last_updated: "2025-12-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.02, output: 0.16 }, - limit: { context: 16384, input: 16384, output: 16384 }, - }, - "meganova-ai/manta-pro-1.0": { - id: "meganova-ai/manta-pro-1.0", - name: "Manta Pro 1.0", - family: "nova", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-20", - last_updated: "2025-12-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.060000000000000005, output: 0.5 }, - limit: { context: 32768, input: 32768, output: 32768 }, - }, - "meganova-ai/manta-mini-1.0": { - id: "meganova-ai/manta-mini-1.0", - name: "Manta Mini 1.0", - family: "nova", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-20", - last_updated: "2025-12-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.02, output: 0.16 }, - limit: { context: 8192, input: 8192, output: 8192 }, - }, - "xiaomi/mimo-v2-flash-original": { - id: "xiaomi/mimo-v2-flash-original", - name: "MiMo V2 Flash Original", - family: "mimo", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.102, output: 0.306 }, - limit: { context: 256000, input: 256000, output: 32768 }, - }, - "xiaomi/mimo-v2-flash": { - id: "xiaomi/mimo-v2-flash", - name: "MiMo V2 Flash", - family: "mimo", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.102, output: 0.306 }, - limit: { context: 256000, input: 256000, output: 32768 }, - }, - "xiaomi/mimo-v2-flash-thinking": { - id: "xiaomi/mimo-v2-flash-thinking", - name: "MiMo V2 Flash (Thinking)", - family: "mimo", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.102, output: 0.306 }, - limit: { context: 256000, input: 256000, output: 32768 }, - }, - "xiaomi/mimo-v2-flash-thinking-original": { - id: "xiaomi/mimo-v2-flash-thinking-original", - name: "MiMo V2 Flash (Thinking) Original", - family: "mimo", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.102, output: 0.306 }, - limit: { context: 256000, input: 256000, output: 32768 }, - }, - "microsoft/MAI-DS-R1-FP8": { - id: "microsoft/MAI-DS-R1-FP8", - name: "Microsoft DeepSeek R1", - family: "deepseek", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.3 }, - limit: { context: 128000, input: 128000, output: 8192 }, - }, - "microsoft/wizardlm-2-8x22b": { - id: "microsoft/wizardlm-2-8x22b", - name: "WizardLM-2 8x22B", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-15", - last_updated: "2025-04-15", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 65536, input: 65536, output: 8192 }, - }, - "failspy/Meta-Llama-3-70B-Instruct-abliterated-v3.5": { - id: "failspy/Meta-Llama-3-70B-Instruct-abliterated-v3.5", - name: "Llama 3 70B abliterated", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-26", - last_updated: "2025-07-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.7, output: 0.7 }, - limit: { context: 8192, input: 8192, output: 8192 }, - }, - "featherless-ai/Qwerky-72B": { - id: "featherless-ai/Qwerky-72B", - name: "Qwerky 72B", - family: "qwerky", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-03-20", - last_updated: "2025-03-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 0.5 }, - limit: { context: 32000, input: 32000, output: 8192 }, - }, - "TEE/glm-5": { - id: "TEE/glm-5", - name: "GLM 5 TEE", - family: "glm", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.2, output: 3.5 }, - limit: { context: 203000, input: 203000, output: 65535 }, - }, - "TEE/deepseek-v3.1": { - id: "TEE/deepseek-v3.1", - name: "DeepSeek V3.1 TEE", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-08-21", - last_updated: "2025-08-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 2.5 }, - limit: { context: 164000, input: 164000, output: 8192 }, - }, - "TEE/glm-4.7-flash": { - id: "TEE/glm-4.7-flash", - name: "GLM 4.7 Flash TEE", - family: "glm-flash", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2026-01-19", - last_updated: "2026-01-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.5 }, - limit: { context: 203000, input: 203000, output: 65535 }, - }, - "TEE/qwen3-coder": { - id: "TEE/qwen3-coder", - name: "Qwen3 Coder 480B TEE", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-23", - last_updated: "2025-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.5, output: 2 }, - limit: { context: 128000, input: 128000, output: 32768 }, - }, - "TEE/glm-4.6": { - id: "TEE/glm-4.6", - name: "GLM 4.6 TEE", - family: "glm", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.75, output: 2 }, - limit: { context: 203000, input: 203000, output: 65535 }, - }, - "TEE/deepseek-r1-0528": { - id: "TEE/deepseek-r1-0528", - name: "DeepSeek R1 0528 TEE", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-05-28", - last_updated: "2025-05-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 2 }, - limit: { context: 128000, input: 128000, output: 65536 }, - }, - "TEE/minimax-m2.1": { - id: "TEE/minimax-m2.1", - name: "MiniMax M2.1 TEE", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-12-23", - last_updated: "2025-12-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 200000, input: 200000, output: 131072 }, - }, - "TEE/qwen3.5-397b-a17b": { - id: "TEE/qwen3.5-397b-a17b", - name: "Qwen3.5 397B A17B TEE", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2026-02-28", - last_updated: "2026-02-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 3.6 }, - limit: { context: 258048, input: 258048, output: 65536 }, - }, - "TEE/gpt-oss-120b": { - id: "TEE/gpt-oss-120b", - name: "GPT-OSS 120B TEE", - family: "gpt-oss", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 2 }, - limit: { context: 131072, input: 131072, output: 16384 }, - }, - "TEE/kimi-k2.5": { - id: "TEE/kimi-k2.5", - name: "Kimi K2.5 TEE", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2026-01-29", - last_updated: "2026-01-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.9 }, - limit: { context: 128000, input: 128000, output: 65535 }, - }, - "TEE/qwen3-30b-a3b-instruct-2507": { - id: "TEE/qwen3-30b-a3b-instruct-2507", - name: "Qwen3 30B A3B Instruct 2507 TEE", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-29", - last_updated: "2025-07-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.44999999999999996 }, - limit: { context: 262000, input: 262000, output: 32768 }, - }, - "TEE/kimi-k2.5-thinking": { - id: "TEE/kimi-k2.5-thinking", - name: "Kimi K2.5 Thinking TEE", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2026-01-29", - last_updated: "2026-01-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.9 }, - limit: { context: 128000, input: 128000, output: 65535 }, - }, - "TEE/qwen2.5-vl-72b-instruct": { - id: "TEE/qwen2.5-vl-72b-instruct", - name: "Qwen2.5 VL 72B TEE", - family: "qwen", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-01", - last_updated: "2025-02-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.7, output: 0.7 }, - limit: { context: 65536, input: 65536, output: 8192 }, - }, - "TEE/deepseek-v3.2": { - id: "TEE/deepseek-v3.2", - name: "DeepSeek V3.2 TEE", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 1 }, - limit: { context: 164000, input: 164000, output: 65536 }, - }, - "TEE/glm-4.7": { - id: "TEE/glm-4.7", - name: "GLM 4.7 TEE", - family: "glm", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2026-01-29", - last_updated: "2026-01-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.85, output: 3.3 }, - limit: { context: 131000, input: 131000, output: 65535 }, - }, - "TEE/kimi-k2-thinking": { - id: "TEE/kimi-k2-thinking", - name: "Kimi K2 Thinking TEE", - family: "kimi-thinking", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-11-06", - last_updated: "2025-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 2 }, - limit: { context: 128000, input: 128000, output: 65535 }, - }, - "TEE/llama3-3-70b": { - id: "TEE/llama3-3-70b", - name: "Llama 3.3 70B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-03", - last_updated: "2025-07-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 2 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "TEE/gemma-3-27b-it": { - id: "TEE/gemma-3-27b-it", - name: "Gemma 3 27B TEE", - family: "gemma", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-03-10", - last_updated: "2025-03-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 131072, input: 131072, output: 8192 }, - }, - "TEE/gpt-oss-20b": { - id: "TEE/gpt-oss-20b", - name: "GPT-OSS 20B TEE", - family: "gpt-oss", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.8 }, - limit: { context: 131072, input: 131072, output: 8192 }, - }, - "amazon/nova-micro-v1": { - id: "amazon/nova-micro-v1", - name: "Amazon Nova Micro 1.0", - family: "nova-micro", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-03", - last_updated: "2024-12-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.0357, output: 0.1394 }, - limit: { context: 128000, input: 128000, output: 5120 }, - }, - "amazon/nova-lite-v1": { - id: "amazon/nova-lite-v1", - name: "Amazon Nova Lite 1.0", - family: "nova-lite", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-03", - last_updated: "2024-12-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.0595, output: 0.238 }, - limit: { context: 300000, input: 300000, output: 5120 }, - }, - "amazon/nova-2-lite-v1": { - id: "amazon/nova-2-lite-v1", - name: "Amazon Nova 2 Lite", - family: "nova", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-03", - last_updated: "2024-12-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5099999999999999, output: 4.25 }, - limit: { context: 1000000, input: 1000000, output: 65535 }, - }, - "amazon/nova-pro-v1": { - id: "amazon/nova-pro-v1", - name: "Amazon Nova Pro 1.0", - family: "nova-pro", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-03", - last_updated: "2024-12-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.7989999999999999, output: 3.1959999999999997 }, - limit: { context: 300000, input: 300000, output: 32000 }, - }, - "anthracite-org/magnum-v2-72b": { - id: "anthracite-org/magnum-v2-72b", - name: "Magnum V2 72B", + "TheDrummer 2/Anubis-70B-v1": { + id: "TheDrummer 2/Anubis-70B-v1", + name: "Anubis 70B v1", family: "llama", attachment: false, reasoning: false, @@ -53372,188 +7313,143 @@ export const snapshot = { last_updated: "2024-07-01", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 2.006, output: 2.992 }, + cost: { input: 0.31, output: 0.31 }, + limit: { context: 65536, input: 65536, output: 16384 }, + }, + "TheDrummer 2/Cydonia-24B-v4.3": { + id: "TheDrummer 2/Cydonia-24B-v4.3", + name: "The Drummer Cydonia 24B v4.3", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-25", + last_updated: "2025-12-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1003, output: 0.1207 }, + limit: { context: 32768, input: 32768, output: 32768 }, + }, + "TheDrummer 2/Magidonia-24B-v4.3": { + id: "TheDrummer 2/Magidonia-24B-v4.3", + name: "The Drummer Magidonia 24B v4.3", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-25", + last_updated: "2025-12-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1003, output: 0.1207 }, + limit: { context: 32768, input: 32768, output: 32768 }, + }, + "TheDrummer 2/Cydonia-24B-v4": { + id: "TheDrummer 2/Cydonia-24B-v4", + name: "The Drummer Cydonia 24B v4", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-22", + last_updated: "2025-07-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2006, output: 0.2414 }, + limit: { context: 16384, input: 16384, output: 32768 }, + }, + "TheDrummer 2/Anubis-70B-v1.1": { + id: "TheDrummer 2/Anubis-70B-v1.1", + name: "Anubis 70B v1.1", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-01", + last_updated: "2024-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.31, output: 0.31 }, + limit: { context: 131072, input: 131072, output: 16384 }, + }, + "TheDrummer 2/Rocinante-12B-v1.1": { + id: "TheDrummer 2/Rocinante-12B-v1.1", + name: "Rocinante 12b", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-01", + last_updated: "2024-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.408, output: 0.595 }, limit: { context: 16384, input: 16384, output: 8192 }, }, - "anthracite-org/magnum-v4-72b": { - id: "anthracite-org/magnum-v4-72b", - name: "Magnum v4 72B", + "TheDrummer 2/Cydonia-24B-v4.1": { + id: "TheDrummer 2/Cydonia-24B-v4.1", + name: "The Drummer Cydonia 24B v4.1", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-08-19", + last_updated: "2025-08-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1003, output: 0.1207 }, + limit: { context: 16384, input: 16384, output: 32768 }, + }, + "TheDrummer 2/UnslopNemo-12B-v4.1": { + id: "TheDrummer 2/UnslopNemo-12B-v4.1", + name: "UnslopNemo 12b v4", family: "llama", attachment: true, reasoning: false, tool_call: false, structured_output: false, - release_date: "2025-01-01", - last_updated: "2025-01-01", + release_date: "2024-07-01", + last_updated: "2024-07-01", modalities: { input: ["text", "pdf"], output: ["text"] }, open_weights: false, - cost: { input: 2.006, output: 2.992 }, - limit: { context: 16384, input: 16384, output: 8192 }, + cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, + limit: { context: 32768, input: 32768, output: 8192 }, }, - "essentialai/rnj-1-instruct": { - id: "essentialai/rnj-1-instruct", - name: "RNJ-1 Instruct 8B", - family: "rnj", + "TheDrummer 2/Cydonia-24B-v2": { + id: "TheDrummer 2/Cydonia-24B-v2", + name: "The Drummer Cydonia 24B v2", + family: "llama", attachment: false, reasoning: false, tool_call: false, structured_output: false, - release_date: "2025-12-13", - last_updated: "2025-12-13", + release_date: "2025-02-17", + last_updated: "2025-02-17", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 0.15, output: 0.15 }, - limit: { context: 128000, input: 128000, output: 8192 }, + cost: { input: 0.1003, output: 0.1207 }, + limit: { context: 16384, input: 16384, output: 32768 }, }, - "NousResearch 2/hermes-4-405b": { - id: "NousResearch 2/hermes-4-405b", - name: "Hermes 4 Large", - family: "nousresearch", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-08-26", - last_updated: "2025-08-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 128000, input: 128000, output: 8192 }, - }, - "NousResearch 2/hermes-3-llama-3.1-70b": { - id: "NousResearch 2/hermes-3-llama-3.1-70b", - name: "Hermes 3 70B", - family: "nousresearch", - attachment: false, + "TheDrummer 2/skyfall-36b-v2": { + id: "TheDrummer 2/skyfall-36b-v2", + name: "TheDrummer Skyfall 36B V2", + family: "llama", + attachment: true, reasoning: false, tool_call: false, structured_output: false, - release_date: "2026-01-07", - last_updated: "2026-01-07", - modalities: { input: ["text"], output: ["text"] }, + release_date: "2025-03-10", + last_updated: "2025-03-10", + modalities: { input: ["text", "pdf"], output: ["text"] }, open_weights: false, - cost: { input: 0.408, output: 0.408 }, - limit: { context: 65536, input: 65536, output: 8192 }, - }, - "NousResearch 2/DeepHermes-3-Mistral-24B-Preview": { - id: "NousResearch 2/DeepHermes-3-Mistral-24B-Preview", - name: "DeepHermes-3 Mistral 24B (Preview)", - family: "nousresearch", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-05-10", - last_updated: "2025-05-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.3 }, - limit: { context: 128000, input: 128000, output: 32768 }, - }, - "NousResearch 2/hermes-4-70b": { - id: "NousResearch 2/hermes-4-70b", - name: "Hermes 4 Medium", - family: "nousresearch", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-03", - last_updated: "2025-07-03", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2006, output: 0.39949999999999997 }, - limit: { context: 128000, input: 128000, output: 8192 }, - }, - "NousResearch 2/hermes-4-405b:thinking": { - id: "NousResearch 2/hermes-4-405b:thinking", - name: "Hermes 4 Large (Thinking)", - family: "nousresearch", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 128000, input: 128000, output: 8192 }, - }, - "NousResearch 2/Hermes-4-70B:thinking": { - id: "NousResearch 2/Hermes-4-70B:thinking", - name: "Hermes 4 (Thinking)", - family: "nousresearch", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-09-17", - last_updated: "2025-09-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2006, output: 0.39949999999999997 }, - limit: { context: 128000, input: 128000, output: 8192 }, - }, - "pamanseau/OpenReasoning-Nemotron-32B": { - id: "pamanseau/OpenReasoning-Nemotron-32B", - name: "OpenReasoning Nemotron 32B", - family: "nemotron", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-08-21", - last_updated: "2025-08-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 32768, input: 32768, output: 65536 }, - }, - "MiniMaxAI/MiniMax-M1-80k": { - id: "MiniMaxAI/MiniMax-M1-80k", - name: "MiniMax M1 80K", - family: "minimax", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-06-16", - last_updated: "2025-06-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6052, output: 2.4225000000000003 }, - limit: { context: 1000000, input: 1000000, output: 131072 }, - }, - "deepseek-ai/deepseek-v3.2-exp-thinking": { - id: "deepseek-ai/deepseek-v3.2-exp-thinking", - name: "DeepSeek V3.2 Exp Thinking", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27999999999999997, output: 0.42000000000000004 }, - limit: { context: 163840, input: 163840, output: 65536 }, - }, - "deepseek-ai/DeepSeek-R1-0528": { - id: "deepseek-ai/DeepSeek-R1-0528", - name: "DeepSeek R1 0528", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-05-28", - last_updated: "2025-05-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.7 }, - limit: { context: 128000, input: 128000, output: 163840 }, + cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, + limit: { context: 64000, input: 64000, output: 32768 }, }, "deepseek-ai/DeepSeek-V3.1:thinking": { id: "deepseek-ai/DeepSeek-V3.1:thinking", @@ -53585,21 +7481,36 @@ export const snapshot = { cost: { input: 0.2, output: 0.7 }, limit: { context: 128000, input: 128000, output: 65536 }, }, - "deepseek-ai/DeepSeek-V3.1-Terminus": { - id: "deepseek-ai/DeepSeek-V3.1-Terminus", - name: "DeepSeek V3.1 Terminus", - family: "deepseek", + "deepseek-ai/DeepSeek-V3.1-Terminus:thinking": { + id: "deepseek-ai/DeepSeek-V3.1-Terminus:thinking", + name: "DeepSeek V3.1 Terminus (Thinking)", + family: "deepseek-thinking", attachment: false, reasoning: false, tool_call: true, structured_output: true, - release_date: "2025-08-02", - last_updated: "2025-08-02", + release_date: "2025-09-22", + last_updated: "2025-09-22", modalities: { input: ["text"], output: ["text"] }, open_weights: false, cost: { input: 0.25, output: 0.7 }, limit: { context: 128000, input: 128000, output: 65536 }, }, + "deepseek-ai/deepseek-v3.2-exp-thinking": { + id: "deepseek-ai/deepseek-v3.2-exp-thinking", + name: "DeepSeek V3.2 Exp Thinking", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27999999999999997, output: 0.42000000000000004 }, + limit: { context: 163840, input: 163840, output: 65536 }, + }, "deepseek-ai/deepseek-v3.2-exp": { id: "deepseek-ai/deepseek-v3.2-exp", name: "DeepSeek V3.2 Exp", @@ -53615,54 +7526,804 @@ export const snapshot = { cost: { input: 0.27999999999999997, output: 0.42000000000000004 }, limit: { context: 163840, input: 163840, output: 65536 }, }, - "deepseek-ai/DeepSeek-V3.1-Terminus:thinking": { - id: "deepseek-ai/DeepSeek-V3.1-Terminus:thinking", - name: "DeepSeek V3.1 Terminus (Thinking)", - family: "deepseek-thinking", + "deepseek-ai/DeepSeek-R1-0528": { + id: "deepseek-ai/DeepSeek-R1-0528", + name: "DeepSeek R1 0528", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-05-28", + last_updated: "2025-05-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.7 }, + limit: { context: 128000, input: 128000, output: 163840 }, + }, + "deepseek-ai/DeepSeek-V3.1-Terminus": { + id: "deepseek-ai/DeepSeek-V3.1-Terminus", + name: "DeepSeek V3.1 Terminus", + family: "deepseek", attachment: false, reasoning: false, tool_call: true, structured_output: true, - release_date: "2025-09-22", - last_updated: "2025-09-22", + release_date: "2025-08-02", + last_updated: "2025-08-02", modalities: { input: ["text"], output: ["text"] }, open_weights: false, cost: { input: 0.25, output: 0.7 }, limit: { context: 128000, input: 128000, output: 65536 }, }, - "raifle/sorcererlm-8x22b": { - id: "raifle/sorcererlm-8x22b", - name: "SorcererLM 8x22B", - family: "mixtral", + "openai/gpt-5.1-codex-max": { + id: "openai/gpt-5.1-codex-max", + name: "GPT 5.1 Codex Max", + family: "gpt-codex", attachment: true, - reasoning: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 20 }, + limit: { context: 400000, input: 400000, output: 128000 }, + }, + "openai/gpt-5.2-chat": { + id: "openai/gpt-5.2-chat", + name: "GPT 5.2 Chat", + family: "gpt", + attachment: true, + reasoning: true, tool_call: false, structured_output: false, - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "pdf"], output: ["text"] }, + release_date: "2026-01-01", + last_updated: "2026-01-01", + modalities: { input: ["text", "image"], output: ["text"] }, open_weights: false, - cost: { input: 4.505, output: 4.505 }, - limit: { context: 16000, input: 16000, output: 8192 }, + cost: { input: 1.75, output: 14 }, + limit: { context: 400000, input: 400000, output: 16384 }, }, - "aion-labs/aion-1.0-mini": { - id: "aion-labs/aion-1.0-mini", - name: "Aion 1.0 mini (DeepSeek)", - family: "deepseek", + "openai/gpt-4o-mini-search-preview": { + id: "openai/gpt-4o-mini-search-preview", + name: "GPT-4o mini Search Preview", + family: "gpt-mini", attachment: false, reasoning: false, tool_call: false, structured_output: false, - release_date: "2025-02-20", - last_updated: "2025-02-20", + release_date: "2024-07-18", + last_updated: "2024-07-18", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 0.7989999999999999, output: 1.394 }, - limit: { context: 131072, input: 131072, output: 8192 }, + cost: { input: 0.088, output: 0.35 }, + limit: { context: 128000, input: 128000, output: 16384 }, }, - "aion-labs/aion-rp-llama-3.1-8b": { - id: "aion-labs/aion-rp-llama-3.1-8b", - name: "Llama 3.1 8b (uncensored)", + "openai/chatgpt-4o-latest": { + id: "openai/chatgpt-4o-latest", + name: "ChatGPT 4o", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2024-05-13", + last_updated: "2024-05-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 4.998, output: 14.993999999999998 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "openai/gpt-5.2-pro": { + id: "openai/gpt-5.2-pro", + name: "GPT 5.2 Pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2026-01-01", + last_updated: "2026-01-01", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 21, output: 168 }, + limit: { context: 400000, input: 400000, output: 128000 }, + }, + "openai/gpt-5-mini": { + id: "openai/gpt-5-mini", + name: "GPT 5 Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2 }, + limit: { context: 400000, input: 400000, output: 128000 }, + }, + "openai/gpt-5-nano": { + id: "openai/gpt-5-nano", + name: "GPT 5 Nano", + family: "gpt-nano", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.4 }, + limit: { context: 400000, input: 400000, output: 128000 }, + }, + "openai/gpt-4-turbo": { + id: "openai/gpt-4-turbo", + name: "GPT-4 Turbo", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2023-11-06", + last_updated: "2024-01-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 10, output: 30 }, + limit: { context: 128000, input: 128000, output: 4096 }, + }, + "openai/gpt-5.2": { + id: "openai/gpt-5.2", + name: "GPT 5.2", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2026-01-01", + last_updated: "2026-01-01", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14 }, + limit: { context: 400000, input: 400000, output: 128000 }, + }, + "openai/o3-mini-high": { + id: "openai/o3-mini-high", + name: "OpenAI o3-mini (High)", + family: "o-mini", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-01-31", + last_updated: "2025-01-31", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.64, output: 2.588 }, + limit: { context: 200000, input: 200000, output: 100000 }, + }, + "openai/gpt-4o-mini": { + id: "openai/gpt-4o-mini", + name: "GPT-4o mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1496, output: 0.595 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "openai/o4-mini-deep-research": { + id: "openai/o4-mini-deep-research", + name: "OpenAI o4-mini Deep Research", + family: "o-mini", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 9.996, output: 19.992 }, + limit: { context: 200000, input: 200000, output: 100000 }, + }, + "openai/gpt-5.1-chat": { + id: "openai/gpt-5.1-chat", + name: "GPT 5.1 Chat", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 400000, input: 400000, output: 128000 }, + }, + "openai/o4-mini": { + id: "openai/o4-mini", + name: "OpenAI o4-mini", + family: "o-mini", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4 }, + limit: { context: 200000, input: 200000, output: 100000 }, + }, + "openai/gpt-5.2-codex": { + id: "openai/gpt-5.2-codex", + name: "GPT 5.2 Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2026-01-14", + last_updated: "2026-01-14", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14 }, + limit: { context: 400000, input: 400000, output: 128000 }, + }, + "openai/gpt-5.1-codex-mini": { + id: "openai/gpt-5.1-codex-mini", + name: "GPT 5.1 Codex Mini", + family: "gpt-codex-mini", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2 }, + limit: { context: 400000, input: 400000, output: 128000 }, + }, + "openai/o1-preview": { + id: "openai/o1-preview", + name: "OpenAI o1-preview", + family: "o", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2024-09-12", + last_updated: "2024-09-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 14.993999999999998, output: 59.993 }, + limit: { context: 128000, input: 128000, output: 32768 }, + }, + "openai/gpt-4o-2024-08-06": { + id: "openai/gpt-4o-2024-08-06", + name: "GPT-4o (2024-08-06)", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-08-06", + last_updated: "2024-08-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.499, output: 9.996 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "openai/gpt-5.1": { + id: "openai/gpt-5.1", + name: "GPT 5.1", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 400000, input: 400000, output: 128000 }, + }, + "openai/o1": { + id: "openai/o1", + name: "OpenAI o1", + family: "o", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2024-12-17", + last_updated: "2024-12-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 14.993999999999998, output: 59.993 }, + limit: { context: 200000, input: 200000, output: 100000 }, + }, + "openai/gpt-3.5-turbo": { + id: "openai/gpt-3.5-turbo", + name: "GPT-3.5 Turbo", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2022-11-30", + last_updated: "2024-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 1.5 }, + limit: { context: 16385, input: 16385, output: 4096 }, + }, + "openai/o3-deep-research": { + id: "openai/o3-deep-research", + name: "OpenAI o3 Deep Research", + family: "o", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 9.996, output: 19.992 }, + limit: { context: 200000, input: 200000, output: 100000 }, + }, + "openai/o3-mini": { + id: "openai/o3-mini", + name: "OpenAI o3-mini", + family: "o-mini", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-01-31", + last_updated: "2025-01-31", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4 }, + limit: { context: 200000, input: 200000, output: 100000 }, + }, + "openai/gpt-4-turbo-preview": { + id: "openai/gpt-4-turbo-preview", + name: "GPT-4 Turbo Preview", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2023-11-06", + last_updated: "2024-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 9.996, output: 30.004999999999995 }, + limit: { context: 128000, input: 128000, output: 4096 }, + }, + "openai/o1-pro": { + id: "openai/o1-pro", + name: "OpenAI o1 Pro", + family: "o-pro", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-01-25", + last_updated: "2025-01-25", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 150, output: 600 }, + limit: { context: 200000, input: 200000, output: 100000 }, + }, + "openai/gpt-5-codex": { + id: "openai/gpt-5-codex", + name: "GPT-5 Codex", + family: "gpt-codex", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 9.996, output: 19.992 }, + limit: { context: 256000, input: 256000, output: 32768 }, + }, + "openai/gpt-5.1-chat-latest": { + id: "openai/gpt-5.1-chat-latest", + name: "GPT 5.1 Chat (Latest)", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 400000, input: 400000, output: 16384 }, + }, + "openai/gpt-4o-search-preview": { + id: "openai/gpt-4o-search-preview", + name: "GPT-4o Search Preview", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-05-13", + last_updated: "2024-05-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.47, output: 5.88 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "openai/gpt-4.1-nano": { + id: "openai/gpt-4.1-nano", + name: "GPT 4.1 Nano", + family: "gpt-nano", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 1047576, input: 1047576, output: 32768 }, + }, + "openai/o4-mini-high": { + id: "openai/o4-mini-high", + name: "OpenAI o4-mini high", + family: "o-mini", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4 }, + limit: { context: 200000, input: 200000, output: 100000 }, + }, + "openai/o3": { + id: "openai/o3", + name: "OpenAI o3", + family: "o", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8 }, + limit: { context: 200000, input: 200000, output: 100000 }, + }, + "openai/gpt-oss-20b": { + id: "openai/gpt-oss-20b", + name: "GPT OSS 20B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.04, output: 0.15 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "openai/gpt-5-pro": { + id: "openai/gpt-5-pro", + name: "GPT 5 Pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 120 }, + limit: { context: 400000, input: 400000, output: 128000 }, + }, + "openai/gpt-5.1-2025-11-13": { + id: "openai/gpt-5.1-2025-11-13", + name: "GPT-5.1 (2025-11-13)", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 1000000, input: 1000000, output: 32768 }, + }, + "openai/gpt-4o": { + id: "openai/gpt-4o", + name: "GPT-4o", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-05-13", + last_updated: "2024-05-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.499, output: 9.996 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "openai/o3-mini-low": { + id: "openai/o3-mini-low", + name: "OpenAI o3-mini (Low)", + family: "o-mini", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-01-31", + last_updated: "2025-01-31", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 9.996, output: 19.992 }, + limit: { context: 200000, input: 200000, output: 100000 }, + }, + "openai/gpt-5": { + id: "openai/gpt-5", + name: "GPT 5", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 400000, input: 400000, output: 128000 }, + }, + "openai/gpt-oss-safeguard-20b": { + id: "openai/gpt-oss-safeguard-20b", + name: "GPT OSS Safeguard 20B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-10-29", + last_updated: "2025-10-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.075, output: 0.3 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "openai/o3-pro-2025-06-10": { + id: "openai/o3-pro-2025-06-10", + name: "OpenAI o3-pro (2025-06-10)", + family: "o-pro", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-06-10", + last_updated: "2025-06-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 9.996, output: 19.992 }, + limit: { context: 200000, input: 200000, output: 100000 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "GPT OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.25 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "openai/gpt-5-chat-latest": { + id: "openai/gpt-5-chat-latest", + name: "GPT 5 Chat", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 400000, input: 400000, output: 128000 }, + }, + "openai/gpt-4.1": { + id: "openai/gpt-4.1", + name: "GPT 4.1", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-09-10", + last_updated: "2025-09-10", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8 }, + limit: { context: 1047576, input: 1047576, output: 32768 }, + }, + "openai/gpt-4.1-mini": { + id: "openai/gpt-4.1-mini", + name: "GPT 4.1 Mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.6 }, + limit: { context: 1047576, input: 1047576, output: 32768 }, + }, + "openai/gpt-5.1-codex": { + id: "openai/gpt-5.1-codex", + name: "GPT 5.1 Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 400000, input: 400000, output: 128000 }, + }, + "openai/gpt-4o-2024-11-20": { + id: "openai/gpt-4o-2024-11-20", + name: "GPT-4o (2024-11-20)", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-11-20", + last_updated: "2024-11-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10 }, + limit: { context: 128000, input: 128000, output: 16384 }, + }, + "VongolaChouko/Starcannon-Unleashed-12B-v1.0": { + id: "VongolaChouko/Starcannon-Unleashed-12B-v1.0", + name: "Mistral Nemo Starcannon 12b v1", + family: "mistral-nemo", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-01", + last_updated: "2024-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, + limit: { context: 16384, input: 16384, output: 8192 }, + }, + "amazon/nova-lite-v1": { + id: "amazon/nova-lite-v1", + name: "Amazon Nova Lite 1.0", + family: "nova-lite", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-03", + last_updated: "2024-12-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.0595, output: 0.238 }, + limit: { context: 300000, input: 300000, output: 5120 }, + }, + "amazon/nova-pro-v1": { + id: "amazon/nova-pro-v1", + name: "Amazon Nova Pro 1.0", + family: "nova-pro", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-03", + last_updated: "2024-12-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.7989999999999999, output: 3.1959999999999997 }, + limit: { context: 300000, input: 300000, output: 32000 }, + }, + "amazon/nova-2-lite-v1": { + id: "amazon/nova-2-lite-v1", + name: "Amazon Nova 2 Lite", + family: "nova", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-03", + last_updated: "2024-12-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5099999999999999, output: 4.25 }, + limit: { context: 1000000, input: 1000000, output: 65535 }, + }, + "amazon/nova-micro-v1": { + id: "amazon/nova-micro-v1", + name: "Amazon Nova Micro 1.0", + family: "nova-micro", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-03", + last_updated: "2024-12-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.0357, output: 0.1394 }, + limit: { context: 128000, input: 128000, output: 5120 }, + }, + "Sao10K/L3.3-70B-Euryale-v2.3": { + id: "Sao10K/L3.3-70B-Euryale-v2.3", + name: "Llama 3.3 70B Euryale", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, + limit: { context: 20480, input: 20480, output: 16384 }, + }, + "Sao10K/L3.1-70B-Euryale-v2.2": { + id: "Sao10K/L3.1-70B-Euryale-v2.2", + name: "Llama 3.1 70B Euryale", family: "llama", attachment: false, reasoning: false, @@ -53672,39 +8333,339 @@ export const snapshot = { last_updated: "2024-07-23", modalities: { input: ["text"], output: ["text"] }, open_weights: false, + cost: { input: 0.306, output: 0.357 }, + limit: { context: 20480, input: 20480, output: 16384 }, + }, + "Sao10K/L3.1-70B-Hanami-x1": { + id: "Sao10K/L3.1-70B-Hanami-x1", + name: "Llama 3.1 70B Hanami", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, + limit: { context: 16384, input: 16384, output: 16384 }, + }, + "Sao10K/L3-8B-Stheno-v3.2": { + id: "Sao10K/L3-8B-Stheno-v3.2", + name: "Sao10K Stheno 8b", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-11-29", + last_updated: "2024-11-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, cost: { input: 0.2006, output: 0.2006 }, + limit: { context: 16384, input: 16384, output: 8192 }, + }, + "LatitudeGames/Wayfarer-Large-70B-Llama-3.3": { + id: "LatitudeGames/Wayfarer-Large-70B-Llama-3.3", + name: "Llama 3.3 70B Wayfarer", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-02-20", + last_updated: "2025-02-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.700000007, output: 0.700000007 }, + limit: { context: 16384, input: 16384, output: 16384 }, + }, + "z-ai/glm-4.6:thinking": { + id: "z-ai/glm-4.6:thinking", + name: "GLM 4.6 Thinking", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.5 }, + limit: { context: 200000, input: 200000, output: 65535 }, + }, + "z-ai/glm-4.5v": { + id: "z-ai/glm-4.5v", + name: "GLM 4.5V", + family: "glmv", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-11-22", + last_updated: "2025-11-22", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 1.7999999999999998 }, + limit: { context: 64000, input: 64000, output: 96000 }, + }, + "z-ai/glm-4.6": { + id: "z-ai/glm-4.6", + name: "GLM 4.6", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.5 }, + limit: { context: 200000, input: 200000, output: 65535 }, + }, + "z-ai/glm-4.5v:thinking": { + id: "z-ai/glm-4.5v:thinking", + name: "GLM 4.5V Thinking", + family: "glmv", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-11-22", + last_updated: "2025-11-22", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 1.7999999999999998 }, + limit: { context: 64000, input: 64000, output: 96000 }, + }, + "baidu/ernie-4.5-vl-28b-a3b": { + id: "baidu/ernie-4.5-vl-28b-a3b", + name: "ERNIE 4.5 VL 28B", + family: "ernie", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-06-30", + last_updated: "2025-06-30", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.13999999999999999, output: 0.5599999999999999 }, limit: { context: 32768, input: 32768, output: 16384 }, }, - "aion-labs/aion-1.0": { - id: "aion-labs/aion-1.0", - name: "Aion 1.0", - family: "llama", + "baidu/ernie-4.5-300b-a47b": { + id: "baidu/ernie-4.5-300b-a47b", + name: "ERNIE 4.5 300B", + family: "ernie", attachment: false, reasoning: false, tool_call: false, structured_output: false, - release_date: "2025-02-01", - last_updated: "2025-02-01", + release_date: "2025-06-30", + last_updated: "2025-06-30", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 3.995, output: 7.99 }, - limit: { context: 65536, input: 65536, output: 8192 }, + cost: { input: 0.35, output: 1.15 }, + limit: { context: 131072, input: 131072, output: 16384 }, }, - "mlabonne/NeuralDaredevil-8B-abliterated": { - id: "mlabonne/NeuralDaredevil-8B-abliterated", - name: "Neural Daredevil 8B abliterated", - family: "llama", + "dmind/dmind-1": { + id: "dmind/dmind-1", + name: "DMind-1", + family: "gpt", attachment: false, reasoning: false, tool_call: false, structured_output: false, - release_date: "2024-12-01", - last_updated: "2024-12-01", + release_date: "2025-06-01", + last_updated: "2025-06-01", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 0.44, output: 0.44 }, + cost: { input: 0.3, output: 0.6 }, + limit: { context: 32768, input: 32768, output: 8192 }, + }, + "dmind/dmind-1-mini": { + id: "dmind/dmind-1-mini", + name: "DMind-1-Mini", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-06-01", + last_updated: "2025-06-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.4 }, + limit: { context: 32768, input: 32768, output: 8192 }, + }, + "Infermatic/MN-12B-Inferor-v0.0": { + id: "Infermatic/MN-12B-Inferor-v0.0", + name: "Mistral Nemo Inferor 12B", + family: "mistral-nemo", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-01", + last_updated: "2024-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25499999999999995, output: 0.49299999999999994 }, + limit: { context: 16384, input: 16384, output: 8192 }, + }, + "meituan-longcat/LongCat-Flash-Chat-FP8": { + id: "meituan-longcat/LongCat-Flash-Chat-FP8", + name: "LongCat Flash", + family: "longcat", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2025-08-31", + last_updated: "2025-08-31", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.7 }, + limit: { context: 128000, input: 128000, output: 32768 }, + }, + "meganova-ai/manta-mini-1.0": { + id: "meganova-ai/manta-mini-1.0", + name: "Manta Mini 1.0", + family: "nova", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-20", + last_updated: "2025-12-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.02, output: 0.16 }, limit: { context: 8192, input: 8192, output: 8192 }, }, + "meganova-ai/manta-pro-1.0": { + id: "meganova-ai/manta-pro-1.0", + name: "Manta Pro 1.0", + family: "nova", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-20", + last_updated: "2025-12-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.060000000000000005, output: 0.5 }, + limit: { context: 32768, input: 32768, output: 32768 }, + }, + "meganova-ai/manta-flash-1.0": { + id: "meganova-ai/manta-flash-1.0", + name: "Manta Flash 1.0", + family: "nova", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-20", + last_updated: "2025-12-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.02, output: 0.16 }, + limit: { context: 16384, input: 16384, output: 16384 }, + }, + "minimax/minimax-m2.7": { + id: "minimax/minimax-m2.7", + name: "MiniMax M2.7", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 204800, input: 204800, output: 131072 }, + }, + "minimax/minimax-01": { + id: "minimax/minimax-01", + name: "MiniMax 01", + family: "minimax", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-01-15", + last_updated: "2025-01-15", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1394, output: 1.1219999999999999 }, + limit: { context: 1000192, input: 1000192, output: 16384 }, + }, + "minimax/minimax-m2.1": { + id: "minimax/minimax-m2.1", + name: "MiniMax M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-12-19", + last_updated: "2025-12-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.33, output: 1.32 }, + limit: { context: 200000, input: 200000, output: 131072 }, + }, + "minimax/minimax-m2-her": { + id: "minimax/minimax-m2-her", + name: "MiniMax M2-her", + family: "minimax", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2026-01-24", + last_updated: "2026-01-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.30200000000000005, output: 1.2069999999999999 }, + limit: { context: 65532, input: 65532, output: 2048 }, + }, + "minimax/minimax-m2.5": { + id: "minimax/minimax-m2.5", + name: "MiniMax M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 204800, input: 204800, output: 131072 }, + }, + "qwen/qwen3.5-397b-a17b": { + id: "qwen/qwen3.5-397b-a17b", + name: "Qwen3.5 397B A17B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2026-02-16", + last_updated: "2026-02-16", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3.6 }, + limit: { context: 258048, input: 258048, output: 65536 }, + }, "unsloth/gemma-3-1b-it": { id: "unsloth/gemma-3-1b-it", name: "Gemma 3 1B IT", @@ -53765,245 +8726,140 @@ export const snapshot = { cost: { input: 0.2992, output: 0.2992 }, limit: { context: 128000, input: 128000, output: 96000 }, }, - "meituan-longcat/LongCat-Flash-Chat-FP8": { - id: "meituan-longcat/LongCat-Flash-Chat-FP8", - name: "LongCat Flash", - family: "longcat", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-08-31", - last_updated: "2025-08-31", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.7 }, - limit: { context: 128000, input: 128000, output: 32768 }, - }, - "cognitivecomputations/dolphin-2.9.2-qwen2-72b": { - id: "cognitivecomputations/dolphin-2.9.2-qwen2-72b", - name: "Dolphin 72b", - family: "qwen", + "THUDM/GLM-Z1-9B-0414": { + id: "THUDM/GLM-Z1-9B-0414", + name: "GLM Z1 9B 0414", + family: "glm-z", attachment: false, reasoning: false, tool_call: false, structured_output: false, - release_date: "2025-02-27", - last_updated: "2025-02-27", + release_date: "2025-04-14", + last_updated: "2025-04-14", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 0.306, output: 0.306 }, - limit: { context: 8192, input: 8192, output: 4096 }, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 32000, input: 32000, output: 8000 }, }, - "Infermatic/MN-12B-Inferor-v0.0": { - id: "Infermatic/MN-12B-Inferor-v0.0", - name: "Mistral Nemo Inferor 12B", - family: "mistral-nemo", + "THUDM/GLM-4-9B-0414": { + id: "THUDM/GLM-4-9B-0414", + name: "GLM 4 9B 0414", + family: "glm", attachment: false, reasoning: false, tool_call: false, structured_output: false, - release_date: "2024-07-01", - last_updated: "2024-07-01", + release_date: "2025-04-14", + last_updated: "2025-04-14", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 0.25499999999999995, output: 0.49299999999999994 }, - limit: { context: 16384, input: 16384, output: 8192 }, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 32000, input: 32000, output: 8000 }, }, - "tencent/Hunyuan-MT-7B": { - id: "tencent/Hunyuan-MT-7B", - name: "Hunyuan MT 7B", - family: "hunyuan", + "THUDM/GLM-Z1-Rumination-32B-0414": { + id: "THUDM/GLM-Z1-Rumination-32B-0414", + name: "GLM Z1 Rumination 32B 0414", + family: "glm-z", attachment: false, reasoning: false, tool_call: false, structured_output: false, - release_date: "2025-09-18", - last_updated: "2025-09-18", + release_date: "2025-04-15", + last_updated: "2025-04-15", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 10, output: 20 }, - limit: { context: 8192, input: 8192, output: 8192 }, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 32000, input: 32000, output: 65536 }, }, - "Gryphe/MythoMax-L2-13b": { - id: "Gryphe/MythoMax-L2-13b", - name: "MythoMax 13B", - family: "llama", + "THUDM/GLM-4-32B-0414": { + id: "THUDM/GLM-4-32B-0414", + name: "GLM 4 32B 0414", + family: "glm", attachment: false, reasoning: false, tool_call: false, structured_output: false, - release_date: "2025-08-08", - last_updated: "2025-08-08", + release_date: "2025-04-14", + last_updated: "2025-04-14", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 0.1003, output: 0.1003 }, - limit: { context: 4000, input: 4000, output: 4096 }, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 128000, input: 128000, output: 65536 }, }, - "CrucibleLab/L3.3-70B-Loki-V2.0": { - id: "CrucibleLab/L3.3-70B-Loki-V2.0", - name: "L3.3 70B Loki v2.0", - family: "llama", + "THUDM/GLM-Z1-32B-0414": { + id: "THUDM/GLM-Z1-32B-0414", + name: "GLM Z1 32B 0414", + family: "glm-z", attachment: false, reasoning: false, tool_call: false, structured_output: false, - release_date: "2026-01-22", - last_updated: "2026-01-22", + release_date: "2025-04-15", + last_updated: "2025-04-15", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 16384, input: 16384, output: 16384 }, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 128000, input: 128000, output: 65536 }, }, - "soob3123/Veiled-Calla-12B": { - id: "soob3123/Veiled-Calla-12B", - name: "Veiled Calla 12B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-13", - last_updated: "2025-04-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.3 }, - limit: { context: 32768, input: 32768, output: 8192 }, - }, - "soob3123/amoral-gemma3-27B-v2": { - id: "soob3123/amoral-gemma3-27B-v2", - name: "Amoral Gemma3 27B v2", - family: "gemma", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-05-23", - last_updated: "2025-05-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.3 }, - limit: { context: 32768, input: 32768, output: 8192 }, - }, - "soob3123/GrayLine-Qwen3-8B": { - id: "soob3123/GrayLine-Qwen3-8B", - name: "Grayline Qwen3 8B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.3 }, - limit: { context: 16384, input: 16384, output: 32768 }, - }, - "NeverSleep/Llama-3-Lumimaid-70B-v0.1": { - id: "NeverSleep/Llama-3-Lumimaid-70B-v0.1", - name: "Lumimaid 70b", - family: "llama", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-01", - last_updated: "2024-07-01", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.006, output: 2.006 }, - limit: { context: 16384, input: 16384, output: 8192 }, - }, - "NeverSleep/Lumimaid-v0.2-70B": { - id: "NeverSleep/Lumimaid-v0.2-70B", - name: "Lumimaid v0.2", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-01", - last_updated: "2024-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 1.5 }, - limit: { context: 16384, input: 16384, output: 8192 }, - }, - "deepseek/deepseek-prover-v2-671b": { - id: "deepseek/deepseek-prover-v2-671b", - name: "DeepSeek Prover v2 671B", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-30", - last_updated: "2025-04-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 2.5 }, - limit: { context: 160000, input: 160000, output: 16384 }, - }, - "deepseek/deepseek-v3.2-speciale": { - id: "deepseek/deepseek-v3.2-speciale", - name: "DeepSeek V3.2 Speciale", - family: "deepseek", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-12-02", - last_updated: "2025-12-02", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27999999999999997, output: 0.42000000000000004 }, - limit: { context: 163000, input: 163000, output: 65536 }, - }, - "deepseek/deepseek-v3.2": { - id: "deepseek/deepseek-v3.2", - name: "DeepSeek V3.2", - family: "deepseek", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27999999999999997, output: 0.42000000000000004 }, - limit: { context: 163000, input: 163000, output: 65536 }, - }, - "deepseek/deepseek-v3.2:thinking": { - id: "deepseek/deepseek-v3.2:thinking", - name: "DeepSeek V3.2 Thinking", - family: "deepseek", + "google/gemini-3-flash-preview": { + id: "google/gemini-3-flash-preview", + name: "Gemini 3 Flash (Preview)", + family: "gemini-flash", attachment: true, reasoning: true, tool_call: true, structured_output: true, - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text", "pdf"], output: ["text"] }, + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text", "image"], output: ["text"] }, open_weights: false, - cost: { input: 0.27999999999999997, output: 0.42000000000000004 }, - limit: { context: 163000, input: 163000, output: 65536 }, + cost: { input: 0.5, output: 3 }, + limit: { context: 1048756, input: 1048756, output: 65536 }, }, - "MarinaraSpaghetti/NemoMix-Unleashed-12B": { - id: "MarinaraSpaghetti/NemoMix-Unleashed-12B", - name: "NemoMix 12B Unleashed", - family: "mistral-nemo", + "google/gemini-flash-1.5": { + id: "google/gemini-flash-1.5", + name: "Gemini 1.5 Flash", + family: "gemini-flash", attachment: false, reasoning: false, tool_call: false, structured_output: false, - release_date: "2024-07-01", - last_updated: "2024-07-01", + release_date: "2024-05-14", + last_updated: "2024-05-14", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 32768, input: 32768, output: 8192 }, + cost: { input: 0.0748, output: 0.306 }, + limit: { context: 2000000, input: 2000000, output: 8192 }, + }, + "google/gemini-3-flash-preview-thinking": { + id: "google/gemini-3-flash-preview-thinking", + name: "Gemini 3 Flash Thinking", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 3 }, + limit: { context: 1048756, input: 1048756, output: 65536 }, + }, + "moonshotai/kimi-k2.5": { + id: "moonshotai/kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + release_date: "2026-01-26", + last_updated: "2026-01-26", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.9 }, + limit: { context: 256000, input: 256000, output: 65536 }, }, "moonshotai/kimi-k2-instruct": { id: "moonshotai/kimi-k2-instruct", @@ -54020,24 +8876,9 @@ export const snapshot = { cost: { input: 0.1, output: 2 }, limit: { context: 256000, input: 256000, output: 8192 }, }, - "moonshotai/kimi-k2.5:thinking": { - id: "moonshotai/kimi-k2.5:thinking", - name: "Kimi K2.5 Thinking", - family: "kimi-thinking", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: false, - release_date: "2026-01-26", - last_updated: "2026-01-26", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.9 }, - limit: { context: 256000, input: 256000, output: 65536 }, - }, - "moonshotai/kimi-k2-thinking-turbo-original": { - id: "moonshotai/kimi-k2-thinking-turbo-original", - name: "Kimi K2 Thinking Turbo Original", + "moonshotai/kimi-k2-thinking-original": { + id: "moonshotai/kimi-k2-thinking-original", + name: "Kimi K2 Thinking Original", family: "kimi-thinking", attachment: false, reasoning: true, @@ -54047,24 +8888,9 @@ export const snapshot = { last_updated: "2025-11-06", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 1.15, output: 8 }, + cost: { input: 0.6, output: 2.5 }, limit: { context: 256000, input: 256000, output: 16384 }, }, - "moonshotai/Kimi-K2-Instruct-0905": { - id: "moonshotai/Kimi-K2-Instruct-0905", - name: "Kimi K2 0905", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2 }, - limit: { context: 256000, input: 256000, output: 262144 }, - }, "moonshotai/kimi-k2-instruct-0711": { id: "moonshotai/kimi-k2-instruct-0711", name: "Kimi K2 0711", @@ -54095,20 +8921,35 @@ export const snapshot = { cost: { input: 0.4, output: 0.4 }, limit: { context: 128000, input: 128000, output: 131072 }, }, - "moonshotai/kimi-k2.5": { - id: "moonshotai/kimi-k2.5", - name: "Kimi K2.5", + "moonshotai/kimi-k2-thinking-turbo-original": { + id: "moonshotai/kimi-k2-thinking-turbo-original", + name: "Kimi K2 Thinking Turbo Original", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-11-06", + last_updated: "2025-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.15, output: 8 }, + limit: { context: 256000, input: 256000, output: 16384 }, + }, + "moonshotai/Kimi-K2-Instruct-0905": { + id: "moonshotai/Kimi-K2-Instruct-0905", + name: "Kimi K2 0905", family: "kimi", - attachment: true, + attachment: false, reasoning: false, tool_call: true, - structured_output: false, - release_date: "2026-01-26", - last_updated: "2026-01-26", - modalities: { input: ["text", "image"], output: ["text"] }, + structured_output: true, + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 0.3, output: 1.9 }, - limit: { context: 256000, input: 256000, output: 65536 }, + cost: { input: 0.4, output: 2 }, + limit: { context: 256000, input: 256000, output: 262144 }, }, "moonshotai/kimi-k2-thinking": { id: "moonshotai/kimi-k2-thinking", @@ -54125,755 +8966,20 @@ export const snapshot = { cost: { input: 0.3, output: 1.2 }, limit: { context: 256000, input: 256000, output: 262144 }, }, - "moonshotai/kimi-k2-thinking-original": { - id: "moonshotai/kimi-k2-thinking-original", - name: "Kimi K2 Thinking Original", + "moonshotai/kimi-k2.5:thinking": { + id: "moonshotai/kimi-k2.5:thinking", + name: "Kimi K2.5 Thinking", family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-11-06", - last_updated: "2025-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 2.5 }, - limit: { context: 256000, input: 256000, output: 16384 }, - }, - "baidu/ernie-4.5-vl-28b-a3b": { - id: "baidu/ernie-4.5-vl-28b-a3b", - name: "ERNIE 4.5 VL 28B", - family: "ernie", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-06-30", - last_updated: "2025-06-30", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.13999999999999999, output: 0.5599999999999999 }, - limit: { context: 32768, input: 32768, output: 16384 }, - }, - "baidu/ernie-4.5-300b-a47b": { - id: "baidu/ernie-4.5-300b-a47b", - name: "ERNIE 4.5 300B", - family: "ernie", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-06-30", - last_updated: "2025-06-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.35, output: 1.15 }, - limit: { context: 131072, input: 131072, output: 16384 }, - }, - "google/gemini-flash-1.5": { - id: "google/gemini-flash-1.5", - name: "Gemini 1.5 Flash", - family: "gemini-flash", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-05-14", - last_updated: "2024-05-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.0748, output: 0.306 }, - limit: { context: 2000000, input: 2000000, output: 8192 }, - }, - "google/gemini-3-flash-preview": { - id: "google/gemini-3-flash-preview", - name: "Gemini 3 Flash (Preview)", - family: "gemini-flash", attachment: true, reasoning: true, tool_call: true, - structured_output: true, - release_date: "2025-12-17", - last_updated: "2025-12-17", + structured_output: false, + release_date: "2026-01-26", + last_updated: "2026-01-26", modalities: { input: ["text", "image"], output: ["text"] }, open_weights: false, - cost: { input: 0.5, output: 3 }, - limit: { context: 1048756, input: 1048756, output: 65536 }, - }, - "google/gemini-3-flash-preview-thinking": { - id: "google/gemini-3-flash-preview-thinking", - name: "Gemini 3 Flash Thinking", - family: "gemini-flash", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-12-17", - last_updated: "2025-12-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 3 }, - limit: { context: 1048756, input: 1048756, output: 65536 }, - }, - "z-ai/glm-4.6:thinking": { - id: "z-ai/glm-4.6:thinking", - name: "GLM 4.6 Thinking", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.5 }, - limit: { context: 200000, input: 200000, output: 65535 }, - }, - "z-ai/glm-4.5v:thinking": { - id: "z-ai/glm-4.5v:thinking", - name: "GLM 4.5V Thinking", - family: "glmv", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-11-22", - last_updated: "2025-11-22", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 1.7999999999999998 }, - limit: { context: 64000, input: 64000, output: 96000 }, - }, - "z-ai/glm-4.6": { - id: "z-ai/glm-4.6", - name: "GLM 4.6", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-09-30", - last_updated: "2025-09-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.5 }, - limit: { context: 200000, input: 200000, output: 65535 }, - }, - "z-ai/glm-4.5v": { - id: "z-ai/glm-4.5v", - name: "GLM 4.5V", - family: "glmv", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-11-22", - last_updated: "2025-11-22", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 1.7999999999999998 }, - limit: { context: 64000, input: 64000, output: 96000 }, - }, - "stepfun-ai/step-3.5-flash:thinking": { - id: "stepfun-ai/step-3.5-flash:thinking", - name: "Step 3.5 Flash Thinking", - family: "step", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2026-02-02", - last_updated: "2026-02-02", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5 }, - limit: { context: 256000, input: 256000, output: 256000 }, - }, - "stepfun-ai/step-3.5-flash": { - id: "stepfun-ai/step-3.5-flash", - name: "Step 3.5 Flash", - family: "step", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2026-02-02", - last_updated: "2026-02-02", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5 }, - limit: { context: 256000, input: 256000, output: 256000 }, - }, - "deepcogito/cogito-v2.1-671b": { - id: "deepcogito/cogito-v2.1-671b", - name: "Cogito v2.1 671B MoE", - family: "cogito", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-11-19", - last_updated: "2025-11-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 1.25 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "deepcogito/cogito-v1-preview-qwen-32B": { - id: "deepcogito/cogito-v1-preview-qwen-32B", - name: "Cogito v1 Preview Qwen 32B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-05-10", - last_updated: "2025-05-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.7999999999999998, output: 1.7999999999999998 }, - limit: { context: 128000, input: 128000, output: 32768 }, - }, - "undi95/remm-slerp-l2-13b": { - id: "undi95/remm-slerp-l2-13b", - name: "ReMM SLERP 13B", - family: "llama", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.7989999999999999, output: 1.2069999999999999 }, - limit: { context: 6144, input: 6144, output: 4096 }, - }, - "qwen/qwen3.5-397b-a17b": { - id: "qwen/qwen3.5-397b-a17b", - name: "Qwen3.5 397B A17B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2026-02-16", - last_updated: "2026-02-16", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3.6 }, - limit: { context: 258048, input: 258048, output: 65536 }, - }, - "inflatebot/MN-12B-Mag-Mell-R1": { - id: "inflatebot/MN-12B-Mag-Mell-R1", - name: "Mag Mell R1", - family: "mistral-nemo", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-01", - last_updated: "2024-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 16384, input: 16384, output: 8192 }, - }, - "nothingiisreal/L3.1-70B-Celeste-V0.1-BF16": { - id: "nothingiisreal/L3.1-70B-Celeste-V0.1-BF16", - name: "Llama 3.1 70B Celeste v0.1", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 16384, input: 16384, output: 16384 }, - }, - "x-ai/grok-4-fast:thinking": { - id: "x-ai/grok-4-fast:thinking", - name: "Grok 4 Fast Thinking", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5 }, - limit: { context: 2000000, input: 2000000, output: 131072 }, - }, - "x-ai/grok-code-fast-1": { - id: "x-ai/grok-code-fast-1", - name: "Grok Code Fast 1", - family: "grok", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-08-28", - last_updated: "2025-08-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.5 }, - limit: { context: 256000, input: 256000, output: 131072 }, - }, - "x-ai/grok-4.1-fast-reasoning": { - id: "x-ai/grok-4.1-fast-reasoning", - name: "Grok 4.1 Fast Reasoning", - family: "grok", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-11-20", - last_updated: "2025-11-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5 }, - limit: { context: 2000000, input: 2000000, output: 131072 }, - }, - "x-ai/grok-4-fast": { - id: "x-ai/grok-4-fast", - name: "Grok 4 Fast", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-09-20", - last_updated: "2025-09-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5 }, - limit: { context: 2000000, input: 2000000, output: 131072 }, - }, - "x-ai/grok-4.1-fast": { - id: "x-ai/grok-4.1-fast", - name: "Grok 4.1 Fast", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-11-20", - last_updated: "2025-11-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5 }, - limit: { context: 2000000, input: 2000000, output: 131072 }, - }, - "x-ai/grok-4-07-09": { - id: "x-ai/grok-4-07-09", - name: "Grok 4", - family: "grok", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15 }, - limit: { context: 256000, input: 256000, output: 131072 }, - }, - "meta-llama/llama-4-scout": { - id: "meta-llama/llama-4-scout", - name: "Llama 4 Scout", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.085, output: 0.46 }, - limit: { context: 328000, input: 328000, output: 65536 }, - }, - "meta-llama/llama-3.2-90b-vision-instruct": { - id: "meta-llama/llama-3.2-90b-vision-instruct", - name: "Llama 3.2 Medium", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.9009999999999999, output: 0.9009999999999999 }, - limit: { context: 131072, input: 131072, output: 16384 }, - }, - "meta-llama/llama-3.3-70b-instruct": { - id: "meta-llama/llama-3.3-70b-instruct", - name: "Llama 3.3 70b Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-02-27", - last_updated: "2025-02-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.23 }, - limit: { context: 131072, input: 131072, output: 16384 }, - }, - "meta-llama/llama-3.2-3b-instruct": { - id: "meta-llama/llama-3.2-3b-instruct", - name: "Llama 3.2 3b Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-09-25", - last_updated: "2024-09-25", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.0306, output: 0.0493 }, - limit: { context: 131072, input: 131072, output: 8192 }, - }, - "meta-llama/llama-4-maverick": { - id: "meta-llama/llama-4-maverick", - name: "Llama 4 Maverick", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.18000000000000002, output: 0.8 }, - limit: { context: 1048576, input: 1048576, output: 65536 }, - }, - "meta-llama/llama-3.1-8b-instruct": { - id: "meta-llama/llama-3.1-8b-instruct", - name: "Llama 3.1 8b Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.0544, output: 0.0544 }, - limit: { context: 131072, input: 131072, output: 16384 }, - }, - "tngtech/DeepSeek-TNG-R1T2-Chimera": { - id: "tngtech/DeepSeek-TNG-R1T2-Chimera", - name: "DeepSeek TNG R1T2 Chimera", - family: "tngtech", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.31, output: 0.31 }, - limit: { context: 128000, input: 128000, output: 8192 }, - }, - "tngtech/tng-r1t-chimera": { - id: "tngtech/tng-r1t-chimera", - name: "TNG R1T Chimera", - family: "tngtech", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-11-26", - last_updated: "2025-11-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 128000, input: 128000, output: 65536 }, - }, - "mistralai/ministral-3b-2512": { - id: "mistralai/ministral-3b-2512", - name: "Ministral 3B", - family: "ministral", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-04", - last_updated: "2025-12-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.1 }, - limit: { context: 131072, input: 131072, output: 32768 }, - }, - "mistralai/mistral-saba": { - id: "mistralai/mistral-saba", - name: "Mistral Saba", - family: "mistral", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1989, output: 0.595 }, - limit: { context: 32000, input: 32000, output: 32768 }, - }, - "mistralai/mistral-medium-3": { - id: "mistralai/mistral-medium-3", - name: "Mistral Medium 3", - family: "mistral-medium", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2 }, - limit: { context: 131072, input: 131072, output: 32768 }, - }, - "mistralai/Mistral-Nemo-Instruct-2407": { - id: "mistralai/Mistral-Nemo-Instruct-2407", - name: "Mistral Nemo", - family: "mistral-nemo", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1003, output: 0.1207 }, - limit: { context: 16384, input: 16384, output: 8192 }, - }, - "mistralai/codestral-2508": { - id: "mistralai/codestral-2508", - name: "Codestral 2508", - family: "codestral", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-08-01", - last_updated: "2025-08-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.8999999999999999 }, - limit: { context: 256000, input: 256000, output: 32768 }, - }, - "mistralai/mistral-large-3-675b-instruct-2512": { - id: "mistralai/mistral-large-3-675b-instruct-2512", - name: "Mistral Large 3 675B", - family: "mistral-large", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-02", - last_updated: "2025-12-02", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 3 }, - limit: { context: 262144, input: 262144, output: 256000 }, - }, - "mistralai/mistral-small-creative": { - id: "mistralai/mistral-small-creative", - name: "Mistral Small Creative", - family: "mistral-small", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-12-16", - last_updated: "2025-12-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 32768, input: 32768, output: 32768 }, - }, - "mistralai/ministral-8b-2512": { - id: "mistralai/ministral-8b-2512", - name: "Ministral 8B", - family: "ministral", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-04", - last_updated: "2025-12-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.15 }, - limit: { context: 262144, input: 262144, output: 32768 }, - }, - "mistralai/mixtral-8x22b-instruct-v0.1": { - id: "mistralai/mixtral-8x22b-instruct-v0.1", - name: "Mixtral 8x22B", - family: "mixtral", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.8999999999999999, output: 0.8999999999999999 }, - limit: { context: 65536, input: 65536, output: 32768 }, - }, - "mistralai/ministral-14b-2512": { - id: "mistralai/ministral-14b-2512", - name: "Ministral 14B", - family: "ministral", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-04", - last_updated: "2025-12-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 262144, input: 262144, output: 32768 }, - }, - "mistralai/ministral-14b-instruct-2512": { - id: "mistralai/ministral-14b-instruct-2512", - name: "Ministral 3 14B", - family: "ministral", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-02", - last_updated: "2025-12-02", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 262144, input: 262144, output: 32768 }, - }, - "mistralai/Devstral-Small-2505": { - id: "mistralai/Devstral-Small-2505", - name: "Mistral Devstral Small 2505", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-08-02", - last_updated: "2025-08-02", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.060000000000000005, output: 0.060000000000000005 }, - limit: { context: 32768, input: 32768, output: 8192 }, - }, - "mistralai/mistral-tiny": { - id: "mistralai/mistral-tiny", - name: "Mistral Tiny", - family: "mistral", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2023-12-11", - last_updated: "2024-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25499999999999995, output: 0.25499999999999995 }, - limit: { context: 32000, input: 32000, output: 8192 }, - }, - "mistralai/mistral-7b-instruct": { - id: "mistralai/mistral-7b-instruct", - name: "Mistral 7B Instruct", - family: "mistral", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-05-27", - last_updated: "2024-05-27", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.0544, output: 0.0544 }, - limit: { context: 32768, input: 32768, output: 8192 }, - }, - "mistralai/devstral-2-123b-instruct-2512": { - id: "mistralai/devstral-2-123b-instruct-2512", - name: "Devstral 2 123B", - family: "devstral", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-09", - last_updated: "2025-12-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.4 }, - limit: { context: 262144, input: 262144, output: 65536 }, - }, - "mistralai/mistral-large": { - id: "mistralai/mistral-large", - name: "Mistral Large 2411", - family: "mistral-large", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-02-26", - last_updated: "2024-02-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.006, output: 6.001 }, - limit: { context: 128000, input: 128000, output: 256000 }, - }, - "mistralai/mixtral-8x7b-instruct-v0.1": { - id: "mistralai/mixtral-8x7b-instruct-v0.1", - name: "Mixtral 8x7B", - family: "mixtral", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-11", - last_updated: "2025-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 0.27 }, - limit: { context: 32768, input: 32768, output: 32768 }, - }, - "mistralai/mistral-medium-3.1": { - id: "mistralai/mistral-medium-3.1", - name: "Mistral Medium 3.1", - family: "mistral-medium", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-09-05", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2 }, - limit: { context: 131072, input: 131072, output: 32768 }, + cost: { input: 0.3, output: 1.9 }, + limit: { context: 256000, input: 256000, output: 65536 }, }, "Tongyi-Zhiwen/QwenLong-L1-32B": { id: "Tongyi-Zhiwen/QwenLong-L1-32B", @@ -54890,950 +8996,65 @@ export const snapshot = { cost: { input: 0.13999999999999999, output: 0.6 }, limit: { context: 128000, input: 128000, output: 40960 }, }, - "ReadyArt/The-Omega-Abomination-L-70B-v1.0": { - id: "ReadyArt/The-Omega-Abomination-L-70B-v1.0", - name: "The Omega Abomination V1", + "nothingiisreal/L3.1-70B-Celeste-V0.1-BF16": { + id: "nothingiisreal/L3.1-70B-Celeste-V0.1-BF16", + name: "Llama 3.1 70B Celeste v0.1", family: "llama", attachment: false, reasoning: false, tool_call: false, structured_output: false, - release_date: "2024-12-01", - last_updated: "2024-12-01", + release_date: "2024-07-23", + last_updated: "2024-07-23", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 0.7, output: 0.95 }, + cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, limit: { context: 16384, input: 16384, output: 16384 }, }, - "ReadyArt/MS3.2-The-Omega-Directive-24B-Unslop-v2.0": { - id: "ReadyArt/MS3.2-The-Omega-Directive-24B-Unslop-v2.0", - name: "Omega Directive 24B Unslop v2.0", + "aion-labs/aion-1.0": { + id: "aion-labs/aion-1.0", + name: "Aion 1.0", family: "llama", attachment: false, reasoning: false, tool_call: false, structured_output: false, - release_date: "2025-12-08", - last_updated: "2025-12-08", + release_date: "2025-02-01", + last_updated: "2025-02-01", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 0.5, output: 0.5 }, - limit: { context: 16384, input: 16384, output: 32768 }, + cost: { input: 3.995, output: 7.99 }, + limit: { context: 65536, input: 65536, output: 8192 }, }, - "openai/gpt-4o-2024-11-20": { - id: "openai/gpt-4o-2024-11-20", - name: "GPT-4o (2024-11-20)", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-11-20", - last_updated: "2024-11-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "openai/gpt-5.1-2025-11-13": { - id: "openai/gpt-5.1-2025-11-13", - name: "GPT-5.1 (2025-11-13)", - family: "gpt", + "aion-labs/aion-rp-llama-3.1-8b": { + id: "aion-labs/aion-rp-llama-3.1-8b", + name: "Llama 3.1 8b (uncensored)", + family: "llama", attachment: false, reasoning: false, tool_call: false, structured_output: false, - release_date: "2025-11-13", - last_updated: "2025-11-13", + release_date: "2024-07-23", + last_updated: "2024-07-23", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 1000000, input: 1000000, output: 32768 }, + cost: { input: 0.2006, output: 0.2006 }, + limit: { context: 32768, input: 32768, output: 16384 }, }, - "openai/gpt-5-codex": { - id: "openai/gpt-5-codex", - name: "GPT-5 Codex", - family: "gpt-codex", + "aion-labs/aion-1.0-mini": { + id: "aion-labs/aion-1.0-mini", + name: "Aion 1.0 mini (DeepSeek)", + family: "deepseek", attachment: false, reasoning: false, tool_call: false, structured_output: false, - release_date: "2025-09-15", - last_updated: "2025-09-15", + release_date: "2025-02-20", + last_updated: "2025-02-20", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 9.996, output: 19.992 }, - limit: { context: 256000, input: 256000, output: 32768 }, - }, - "openai/gpt-5-pro": { - id: "openai/gpt-5-pro", - name: "GPT 5 Pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 120 }, - limit: { context: 400000, input: 400000, output: 128000 }, - }, - "openai/gpt-4o-mini": { - id: "openai/gpt-4o-mini", - name: "GPT-4o mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1496, output: 0.595 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "openai/gpt-5-chat-latest": { - id: "openai/gpt-5-chat-latest", - name: "GPT 5 Chat", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, input: 400000, output: 128000 }, - }, - "openai/gpt-4o-mini-search-preview": { - id: "openai/gpt-4o-mini-search-preview", - name: "GPT-4o mini Search Preview", - family: "gpt-mini", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.088, output: 0.35 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "openai/gpt-5.1-codex-max": { - id: "openai/gpt-5.1-codex-max", - name: "GPT 5.1 Codex Max", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 20 }, - limit: { context: 400000, input: 400000, output: 128000 }, - }, - "openai/gpt-5.2-codex": { - id: "openai/gpt-5.2-codex", - name: "GPT 5.2 Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2026-01-14", - last_updated: "2026-01-14", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14 }, - limit: { context: 400000, input: 400000, output: 128000 }, - }, - "openai/o3-deep-research": { - id: "openai/o3-deep-research", - name: "OpenAI o3 Deep Research", - family: "o", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 9.996, output: 19.992 }, - limit: { context: 200000, input: 200000, output: 100000 }, - }, - "openai/o1": { - id: "openai/o1", - name: "OpenAI o1", - family: "o", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2024-12-17", - last_updated: "2024-12-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 14.993999999999998, output: 59.993 }, - limit: { context: 200000, input: 200000, output: 100000 }, - }, - "openai/gpt-5.1": { - id: "openai/gpt-5.1", - name: "GPT 5.1", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, input: 400000, output: 128000 }, - }, - "openai/gpt-5.2-chat": { - id: "openai/gpt-5.2-chat", - name: "GPT 5.2 Chat", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2026-01-01", - last_updated: "2026-01-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14 }, - limit: { context: 400000, input: 400000, output: 16384 }, - }, - "openai/o4-mini-deep-research": { - id: "openai/o4-mini-deep-research", - name: "OpenAI o4-mini Deep Research", - family: "o-mini", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 9.996, output: 19.992 }, - limit: { context: 200000, input: 200000, output: 100000 }, - }, - "openai/gpt-5.1-chat": { - id: "openai/gpt-5.1-chat", - name: "GPT 5.1 Chat", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, input: 400000, output: 128000 }, - }, - "openai/o3": { - id: "openai/o3", - name: "OpenAI o3", - family: "o", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8 }, - limit: { context: 200000, input: 200000, output: 100000 }, - }, - "openai/gpt-4-turbo-preview": { - id: "openai/gpt-4-turbo-preview", - name: "GPT-4 Turbo Preview", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2023-11-06", - last_updated: "2024-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 9.996, output: 30.004999999999995 }, - limit: { context: 128000, input: 128000, output: 4096 }, - }, - "openai/gpt-4.1-nano": { - id: "openai/gpt-4.1-nano", - name: "GPT 4.1 Nano", - family: "gpt-nano", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4 }, - limit: { context: 1047576, input: 1047576, output: 32768 }, - }, - "openai/gpt-3.5-turbo": { - id: "openai/gpt-3.5-turbo", - name: "GPT-3.5 Turbo", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2022-11-30", - last_updated: "2024-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 1.5 }, - limit: { context: 16385, input: 16385, output: 4096 }, - }, - "openai/gpt-oss-120b": { - id: "openai/gpt-oss-120b", - name: "GPT OSS 120B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.25 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "openai/gpt-5.1-codex-mini": { - id: "openai/gpt-5.1-codex-mini", - name: "GPT 5.1 Codex Mini", - family: "gpt-codex-mini", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2 }, - limit: { context: 400000, input: 400000, output: 128000 }, - }, - "openai/gpt-5.2": { - id: "openai/gpt-5.2", - name: "GPT 5.2", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2026-01-01", - last_updated: "2026-01-01", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14 }, - limit: { context: 400000, input: 400000, output: 128000 }, - }, - "openai/gpt-4.1": { - id: "openai/gpt-4.1", - name: "GPT 4.1", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2025-09-10", - last_updated: "2025-09-10", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8 }, - limit: { context: 1047576, input: 1047576, output: 32768 }, - }, - "openai/o3-mini-low": { - id: "openai/o3-mini-low", - name: "OpenAI o3-mini (Low)", - family: "o-mini", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-01-31", - last_updated: "2025-01-31", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 9.996, output: 19.992 }, - limit: { context: 200000, input: 200000, output: 100000 }, - }, - "openai/gpt-4-turbo": { - id: "openai/gpt-4-turbo", - name: "GPT-4 Turbo", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2023-11-06", - last_updated: "2024-01-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 10, output: 30 }, - limit: { context: 128000, input: 128000, output: 4096 }, - }, - "openai/gpt-5": { - id: "openai/gpt-5", - name: "GPT 5", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, input: 400000, output: 128000 }, - }, - "openai/o4-mini": { - id: "openai/o4-mini", - name: "OpenAI o4-mini", - family: "o-mini", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4 }, - limit: { context: 200000, input: 200000, output: 100000 }, - }, - "openai/gpt-4.1-mini": { - id: "openai/gpt-4.1-mini", - name: "GPT 4.1 Mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 1.6 }, - limit: { context: 1047576, input: 1047576, output: 32768 }, - }, - "openai/o1-preview": { - id: "openai/o1-preview", - name: "OpenAI o1-preview", - family: "o", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2024-09-12", - last_updated: "2024-09-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 14.993999999999998, output: 59.993 }, - limit: { context: 128000, input: 128000, output: 32768 }, - }, - "openai/gpt-oss-safeguard-20b": { - id: "openai/gpt-oss-safeguard-20b", - name: "GPT OSS Safeguard 20B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-10-29", - last_updated: "2025-10-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.075, output: 0.3 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "openai/o1-pro": { - id: "openai/o1-pro", - name: "OpenAI o1 Pro", - family: "o-pro", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-01-25", - last_updated: "2025-01-25", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 150, output: 600 }, - limit: { context: 200000, input: 200000, output: 100000 }, - }, - "openai/gpt-5.1-codex": { - id: "openai/gpt-5.1-codex", - name: "GPT 5.1 Codex", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, input: 400000, output: 128000 }, - }, - "openai/chatgpt-4o-latest": { - id: "openai/chatgpt-4o-latest", - name: "ChatGPT 4o", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2024-05-13", - last_updated: "2024-05-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 4.998, output: 14.993999999999998 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "openai/gpt-5.2-pro": { - id: "openai/gpt-5.2-pro", - name: "GPT 5.2 Pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2026-01-01", - last_updated: "2026-01-01", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 21, output: 168 }, - limit: { context: 400000, input: 400000, output: 128000 }, - }, - "openai/o3-mini": { - id: "openai/o3-mini", - name: "OpenAI o3-mini", - family: "o-mini", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-01-31", - last_updated: "2025-01-31", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4 }, - limit: { context: 200000, input: 200000, output: 100000 }, - }, - "openai/gpt-4o-2024-08-06": { - id: "openai/gpt-4o-2024-08-06", - name: "GPT-4o (2024-08-06)", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-08-06", - last_updated: "2024-08-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.499, output: 9.996 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "openai/gpt-5-mini": { - id: "openai/gpt-5-mini", - name: "GPT 5 Mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2 }, - limit: { context: 400000, input: 400000, output: 128000 }, - }, - "openai/o3-pro-2025-06-10": { - id: "openai/o3-pro-2025-06-10", - name: "OpenAI o3-pro (2025-06-10)", - family: "o-pro", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-06-10", - last_updated: "2025-06-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 9.996, output: 19.992 }, - limit: { context: 200000, input: 200000, output: 100000 }, - }, - "openai/gpt-oss-20b": { - id: "openai/gpt-oss-20b", - name: "GPT OSS 20B", - family: "gpt-oss", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.04, output: 0.15 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "openai/gpt-5.1-chat-latest": { - id: "openai/gpt-5.1-chat-latest", - name: "GPT 5.1 Chat (Latest)", - family: "gpt", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-11-13", - last_updated: "2025-11-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10 }, - limit: { context: 400000, input: 400000, output: 16384 }, - }, - "openai/gpt-5-nano": { - id: "openai/gpt-5-nano", - name: "GPT 5 Nano", - family: "gpt-nano", - attachment: true, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.4 }, - limit: { context: 400000, input: 400000, output: 128000 }, - }, - "openai/o3-mini-high": { - id: "openai/o3-mini-high", - name: "OpenAI o3-mini (High)", - family: "o-mini", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-01-31", - last_updated: "2025-01-31", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.64, output: 2.588 }, - limit: { context: 200000, input: 200000, output: 100000 }, - }, - "openai/o4-mini-high": { - id: "openai/o4-mini-high", - name: "OpenAI o4-mini high", - family: "o-mini", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4 }, - limit: { context: 200000, input: 200000, output: 100000 }, - }, - "openai/gpt-4o": { - id: "openai/gpt-4o", - name: "GPT-4o", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-05-13", - last_updated: "2024-05-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.499, output: 9.996 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "openai/gpt-4o-search-preview": { - id: "openai/gpt-4o-search-preview", - name: "GPT-4o Search Preview", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-05-13", - last_updated: "2024-05-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.47, output: 5.88 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "VongolaChouko/Starcannon-Unleashed-12B-v1.0": { - id: "VongolaChouko/Starcannon-Unleashed-12B-v1.0", - name: "Mistral Nemo Starcannon 12b v1", - family: "mistral-nemo", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-01", - last_updated: "2024-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 16384, input: 16384, output: 8192 }, - }, - "cohere/command-r-plus-08-2024": { - id: "cohere/command-r-plus-08-2024", - name: "Cohere: Command R+", - family: "command-r", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - release_date: "2024-08-30", - last_updated: "2024-08-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.856, output: 14.246 }, - limit: { context: 128000, input: 128000, output: 4096 }, - }, - "cohere/command-r": { - id: "cohere/command-r", - name: "Cohere: Command R", - family: "command-r", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-03-11", - last_updated: "2024-03-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.476, output: 1.428 }, - limit: { context: 128000, input: 128000, output: 4096 }, - }, - "THUDM/GLM-4-32B-0414": { - id: "THUDM/GLM-4-32B-0414", - name: "GLM 4 32B 0414", - family: "glm", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 128000, input: 128000, output: 65536 }, - }, - "THUDM/GLM-4-9B-0414": { - id: "THUDM/GLM-4-9B-0414", - name: "GLM 4 9B 0414", - family: "glm", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 32000, input: 32000, output: 8000 }, - }, - "THUDM/GLM-Z1-32B-0414": { - id: "THUDM/GLM-Z1-32B-0414", - name: "GLM Z1 32B 0414", - family: "glm-z", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-15", - last_updated: "2025-04-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 128000, input: 128000, output: 65536 }, - }, - "THUDM/GLM-Z1-9B-0414": { - id: "THUDM/GLM-Z1-9B-0414", - name: "GLM Z1 9B 0414", - family: "glm-z", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 32000, input: 32000, output: 8000 }, - }, - "THUDM/GLM-Z1-Rumination-32B-0414": { - id: "THUDM/GLM-Z1-Rumination-32B-0414", - name: "GLM Z1 Rumination 32B 0414", - family: "glm-z", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-15", - last_updated: "2025-04-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.2 }, - limit: { context: 32000, input: 32000, output: 65536 }, - }, - "minimax/minimax-01": { - id: "minimax/minimax-01", - name: "MiniMax 01", - family: "minimax", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-01-15", - last_updated: "2025-01-15", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1394, output: 1.1219999999999999 }, - limit: { context: 1000192, input: 1000192, output: 16384 }, - }, - "minimax/minimax-m2.1": { - id: "minimax/minimax-m2.1", - name: "MiniMax M2.1", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2025-12-19", - last_updated: "2025-12-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.33, output: 1.32 }, - limit: { context: 200000, input: 200000, output: 131072 }, - }, - "minimax/minimax-m2.7": { - id: "minimax/minimax-m2.7", - name: "MiniMax M2.7", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2026-03-18", - last_updated: "2026-03-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 204800, input: 204800, output: 131072 }, - }, - "minimax/minimax-m2-her": { - id: "minimax/minimax-m2-her", - name: "MiniMax M2-her", - family: "minimax", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2026-01-24", - last_updated: "2026-01-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.30200000000000005, output: 1.2069999999999999 }, - limit: { context: 65532, input: 65532, output: 2048 }, - }, - "minimax/minimax-m2.5": { - id: "minimax/minimax-m2.5", - name: "MiniMax M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 204800, input: 204800, output: 131072 }, - }, - "chutesai/Mistral-Small-3.2-24B-Instruct-2506": { - id: "chutesai/Mistral-Small-3.2-24B-Instruct-2506", - name: "Mistral Small 3.2 24b Instruct", - family: "chutesai", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-15", - last_updated: "2025-04-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.4 }, - limit: { context: 128000, input: 128000, output: 131072 }, - }, - "baseten/Kimi-K2-Instruct-FP4": { - id: "baseten/Kimi-K2-Instruct-FP4", - name: "Kimi K2 0711 Instruct FP4", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-11", - last_updated: "2025-07-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 2 }, - limit: { context: 128000, input: 128000, output: 131072 }, - }, - "GalrionSoftworks/MN-LooseCannon-12B-v1": { - id: "GalrionSoftworks/MN-LooseCannon-12B-v1", - name: "MN-LooseCannon-12B-v1", - family: "mistral-nemo", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-01", - last_updated: "2024-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 16384, input: 16384, output: 8192 }, + cost: { input: 0.7989999999999999, output: 1.394 }, + limit: { context: 131072, input: 131072, output: 8192 }, }, "Alibaba-NLP/Tongyi-DeepResearch-30B-A3B": { id: "Alibaba-NLP/Tongyi-DeepResearch-30B-A3B", @@ -55850,320 +9071,20 @@ export const snapshot = { cost: { input: 0.08, output: 0.24000000000000002 }, limit: { context: 128000, input: 128000, output: 65536 }, }, - "Steelskull/L3.3-Electra-R1-70b": { - id: "Steelskull/L3.3-Electra-R1-70b", - name: "Steelskull Electra R1 70b", - family: "llama", + "MiniMaxAI/MiniMax-M1-80k": { + id: "MiniMaxAI/MiniMax-M1-80k", + name: "MiniMax M1 80K", + family: "minimax", attachment: false, reasoning: false, tool_call: false, structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", + release_date: "2025-06-16", + last_updated: "2025-06-16", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 0.69989, output: 0.69989 }, - limit: { context: 16384, input: 16384, output: 16384 }, - }, - "Steelskull/L3.3-MS-Evalebis-70b": { - id: "Steelskull/L3.3-MS-Evalebis-70b", - name: "MS Evalebis 70b", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 16384, input: 16384, output: 16384 }, - }, - "Steelskull/L3.3-Cu-Mai-R1-70b": { - id: "Steelskull/L3.3-Cu-Mai-R1-70b", - name: "Llama 3.3 70B Cu Mai", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 16384, input: 16384, output: 16384 }, - }, - "Steelskull/L3.3-Nevoria-R1-70b": { - id: "Steelskull/L3.3-Nevoria-R1-70b", - name: "Steelskull Nevoria R1 70b", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 16384, input: 16384, output: 16384 }, - }, - "Steelskull/L3.3-MS-Nevoria-70b": { - id: "Steelskull/L3.3-MS-Nevoria-70b", - name: "Steelskull Nevoria 70b", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 16384, input: 16384, output: 16384 }, - }, - "Steelskull/L3.3-MS-Evayale-70B": { - id: "Steelskull/L3.3-MS-Evayale-70B", - name: "Evayale 70b ", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 16384, input: 16384, output: 16384 }, - }, - "Salesforce/Llama-xLAM-2-70b-fc-r": { - id: "Salesforce/Llama-xLAM-2-70b-fc-r", - name: "Llama-xLAM-2 70B fc-r", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-04-13", - last_updated: "2025-04-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 2.5 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "LatitudeGames/Wayfarer-Large-70B-Llama-3.3": { - id: "LatitudeGames/Wayfarer-Large-70B-Llama-3.3", - name: "Llama 3.3 70B Wayfarer", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-20", - last_updated: "2025-02-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.700000007, output: 0.700000007 }, - limit: { context: 16384, input: 16384, output: 16384 }, - }, - "TheDrummer 2/Cydonia-24B-v4.3": { - id: "TheDrummer 2/Cydonia-24B-v4.3", - name: "The Drummer Cydonia 24B v4.3", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-25", - last_updated: "2025-12-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1003, output: 0.1207 }, - limit: { context: 32768, input: 32768, output: 32768 }, - }, - "TheDrummer 2/Anubis-70B-v1": { - id: "TheDrummer 2/Anubis-70B-v1", - name: "Anubis 70B v1", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-01", - last_updated: "2024-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.31, output: 0.31 }, - limit: { context: 65536, input: 65536, output: 16384 }, - }, - "TheDrummer 2/Cydonia-24B-v4": { - id: "TheDrummer 2/Cydonia-24B-v4", - name: "The Drummer Cydonia 24B v4", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-22", - last_updated: "2025-07-22", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2006, output: 0.2414 }, - limit: { context: 16384, input: 16384, output: 32768 }, - }, - "TheDrummer 2/Magidonia-24B-v4.3": { - id: "TheDrummer 2/Magidonia-24B-v4.3", - name: "The Drummer Magidonia 24B v4.3", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-12-25", - last_updated: "2025-12-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1003, output: 0.1207 }, - limit: { context: 32768, input: 32768, output: 32768 }, - }, - "TheDrummer 2/Anubis-70B-v1.1": { - id: "TheDrummer 2/Anubis-70B-v1.1", - name: "Anubis 70B v1.1", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-01", - last_updated: "2024-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.31, output: 0.31 }, - limit: { context: 131072, input: 131072, output: 16384 }, - }, - "TheDrummer 2/Rocinante-12B-v1.1": { - id: "TheDrummer 2/Rocinante-12B-v1.1", - name: "Rocinante 12b", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-01", - last_updated: "2024-07-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.408, output: 0.595 }, - limit: { context: 16384, input: 16384, output: 8192 }, - }, - "TheDrummer 2/Cydonia-24B-v2": { - id: "TheDrummer 2/Cydonia-24B-v2", - name: "The Drummer Cydonia 24B v2", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1003, output: 0.1207 }, - limit: { context: 16384, input: 16384, output: 32768 }, - }, - "TheDrummer 2/skyfall-36b-v2": { - id: "TheDrummer 2/skyfall-36b-v2", - name: "TheDrummer Skyfall 36B V2", - family: "llama", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-03-10", - last_updated: "2025-03-10", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 64000, input: 64000, output: 32768 }, - }, - "TheDrummer 2/UnslopNemo-12B-v4.1": { - id: "TheDrummer 2/UnslopNemo-12B-v4.1", - name: "UnslopNemo 12b v4", - family: "llama", - attachment: true, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-01", - last_updated: "2024-07-01", - modalities: { input: ["text", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 32768, input: 32768, output: 8192 }, - }, - "TheDrummer 2/Cydonia-24B-v4.1": { - id: "TheDrummer 2/Cydonia-24B-v4.1", - name: "The Drummer Cydonia 24B v4.1", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-08-19", - last_updated: "2025-08-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1003, output: 0.1207 }, - limit: { context: 16384, input: 16384, output: 32768 }, - }, - "shisa-ai/shisa-v2.1-llama3.3-70b": { - id: "shisa-ai/shisa-v2.1-llama3.3-70b", - name: "Shisa V2.1 Llama 3.3 70B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 0.5 }, - limit: { context: 32768, input: 32768, output: 4096 }, - }, - "shisa-ai/shisa-v2-llama3.3-70b": { - id: "shisa-ai/shisa-v2-llama3.3-70b", - name: "Shisa V2 Llama 3.3 70B", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-07-26", - last_updated: "2025-07-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 0.5 }, - limit: { context: 128000, input: 128000, output: 16384 }, - }, - "anthropic/claude-sonnet-4.6:thinking": { - id: "anthropic/claude-sonnet-4.6:thinking", - name: "Claude Sonnet 4.6 Thinking", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2026-02-17", - last_updated: "2026-02-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.992, output: 14.993999999999998 }, - limit: { context: 1000000, input: 1000000, output: 128000 }, + cost: { input: 0.6052, output: 2.4225000000000003 }, + limit: { context: 1000000, input: 1000000, output: 131072 }, }, "anthropic/claude-opus-4.6:thinking:low": { id: "anthropic/claude-opus-4.6:thinking:low", @@ -56180,66 +9101,6 @@ export const snapshot = { cost: { input: 4.998, output: 25.007 }, limit: { context: 1000000, input: 1000000, output: 128000 }, }, - "anthropic/claude-opus-4.6:thinking": { - id: "anthropic/claude-opus-4.6:thinking", - name: "Claude 4.6 Opus Thinking", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 4.998, output: 25.007 }, - limit: { context: 1000000, input: 1000000, output: 128000 }, - }, - "anthropic/claude-sonnet-4.6": { - id: "anthropic/claude-sonnet-4.6", - name: "Claude Sonnet 4.6", - family: "claude-sonnet", - attachment: true, - reasoning: false, - tool_call: true, - structured_output: true, - release_date: "2026-02-17", - last_updated: "2026-02-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 2.992, output: 14.993999999999998 }, - limit: { context: 1000000, input: 1000000, output: 128000 }, - }, - "anthropic/claude-opus-4.6:thinking:medium": { - id: "anthropic/claude-opus-4.6:thinking:medium", - name: "Claude 4.6 Opus Thinking Medium", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 4.998, output: 25.007 }, - limit: { context: 1000000, input: 1000000, output: 128000 }, - }, - "anthropic/claude-opus-4.6:thinking:max": { - id: "anthropic/claude-opus-4.6:thinking:max", - name: "Claude 4.6 Opus Thinking Max", - family: "claude-opus", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 4.998, output: 25.007 }, - limit: { context: 1000000, input: 1000000, output: 128000 }, - }, "anthropic/claude-opus-4.6": { id: "anthropic/claude-opus-4.6", name: "Claude 4.6 Opus", @@ -56255,229 +9116,94 @@ export const snapshot = { cost: { input: 4.998, output: 25.007 }, limit: { context: 1000000, input: 1000000, output: 128000 }, }, - "miromind-ai/mirothinker-v1.5-235b": { - id: "miromind-ai/mirothinker-v1.5-235b", - name: "MiroThinker v1.5 235B", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2026-01-07", - last_updated: "2026-01-07", - modalities: { input: ["text"], output: ["text"] }, + "anthropic/claude-sonnet-4.6:thinking": { + id: "anthropic/claude-sonnet-4.6:thinking", + name: "Claude Sonnet 4.6 Thinking", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2026-02-17", + last_updated: "2026-02-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, open_weights: false, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 32768, input: 32768, output: 4000 }, + cost: { input: 2.992, output: 14.993999999999998 }, + limit: { context: 1000000, input: 1000000, output: 128000 }, }, - "Sao10K/L3.1-70B-Hanami-x1": { - id: "Sao10K/L3.1-70B-Hanami-x1", - name: "Llama 3.1 70B Hanami", + "anthropic/claude-opus-4.6:thinking:max": { + id: "anthropic/claude-opus-4.6:thinking:max", + name: "Claude 4.6 Opus Thinking Max", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 4.998, output: 25.007 }, + limit: { context: 1000000, input: 1000000, output: 128000 }, + }, + "anthropic/claude-opus-4.6:thinking:medium": { + id: "anthropic/claude-opus-4.6:thinking:medium", + name: "Claude 4.6 Opus Thinking Medium", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 4.998, output: 25.007 }, + limit: { context: 1000000, input: 1000000, output: 128000 }, + }, + "anthropic/claude-sonnet-4.6": { + id: "anthropic/claude-sonnet-4.6", + name: "Claude Sonnet 4.6", + family: "claude-sonnet", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + release_date: "2026-02-17", + last_updated: "2026-02-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.992, output: 14.993999999999998 }, + limit: { context: 1000000, input: 1000000, output: 128000 }, + }, + "anthropic/claude-opus-4.6:thinking": { + id: "anthropic/claude-opus-4.6:thinking", + name: "Claude 4.6 Opus Thinking", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 4.998, output: 25.007 }, + limit: { context: 1000000, input: 1000000, output: 128000 }, + }, + "abacusai/Dracarys-72B-Instruct": { + id: "abacusai/Dracarys-72B-Instruct", + name: "Llama 3.1 70B Dracarys 2", family: "llama", attachment: false, reasoning: false, tool_call: false, structured_output: false, - release_date: "2024-07-23", - last_updated: "2024-07-23", + release_date: "2025-08-02", + last_updated: "2025-08-02", modalities: { input: ["text"], output: ["text"] }, open_weights: false, cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 16384, input: 16384, output: 16384 }, - }, - "Sao10K/L3.3-70B-Euryale-v2.3": { - id: "Sao10K/L3.3-70B-Euryale-v2.3", - name: "Llama 3.3 70B Euryale", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, - limit: { context: 20480, input: 20480, output: 16384 }, - }, - "Sao10K/L3.1-70B-Euryale-v2.2": { - id: "Sao10K/L3.1-70B-Euryale-v2.2", - name: "Llama 3.1 70B Euryale", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.306, output: 0.357 }, - limit: { context: 20480, input: 20480, output: 16384 }, - }, - "Sao10K/L3-8B-Stheno-v3.2": { - id: "Sao10K/L3-8B-Stheno-v3.2", - name: "Sao10K Stheno 8b", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-11-29", - last_updated: "2024-11-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2006, output: 0.2006 }, - limit: { context: 16384, input: 16384, output: 8192 }, - }, - "huihui-ai/DeepSeek-R1-Distill-Llama-70B-abliterated": { - id: "huihui-ai/DeepSeek-R1-Distill-Llama-70B-abliterated", - name: "DeepSeek R1 Llama 70B Abliterated", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.7, output: 0.7 }, - limit: { context: 16384, input: 16384, output: 8192 }, - }, - "huihui-ai/Qwen2.5-32B-Instruct-abliterated": { - id: "huihui-ai/Qwen2.5-32B-Instruct-abliterated", - name: "Qwen 2.5 32B Abliterated", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-01-06", - last_updated: "2025-01-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.7, output: 0.7 }, - limit: { context: 32768, input: 32768, output: 8192 }, - }, - "huihui-ai/DeepSeek-R1-Distill-Qwen-32B-abliterated": { - id: "huihui-ai/DeepSeek-R1-Distill-Qwen-32B-abliterated", - name: "DeepSeek R1 Qwen Abliterated", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: false, - structured_output: false, - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.4, output: 1.4 }, - limit: { context: 16384, input: 16384, output: 8192 }, - }, - "huihui-ai/Llama-3.3-70B-Instruct-abliterated": { - id: "huihui-ai/Llama-3.3-70B-Instruct-abliterated", - name: "Llama 3.3 70B Instruct abliterated", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-08-08", - last_updated: "2025-08-08", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.7, output: 0.7 }, - limit: { context: 16384, input: 16384, output: 16384 }, - }, - "huihui-ai/Llama-3.1-Nemotron-70B-Instruct-HF-abliterated": { - id: "huihui-ai/Llama-3.1-Nemotron-70B-Instruct-HF-abliterated", - name: "Nemotron 3.1 70B abliterated", - family: "nemotron", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.7, output: 0.7 }, - limit: { context: 16384, input: 16384, output: 16384 }, - }, - "inflection/inflection-3-productivity": { - id: "inflection/inflection-3-productivity", - name: "Inflection 3 Productivity", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-10-11", - last_updated: "2024-10-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.499, output: 9.996 }, - limit: { context: 8000, input: 8000, output: 4096 }, - }, - "inflection/inflection-3-pi": { - id: "inflection/inflection-3-pi", - name: "Inflection 3 Pi", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2024-10-11", - last_updated: "2024-10-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2.499, output: 9.996 }, - limit: { context: 8000, input: 8000, output: 4096 }, - }, - "dmind/dmind-1-mini": { - id: "dmind/dmind-1-mini", - name: "DMind-1-Mini", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-06-01", - last_updated: "2025-06-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.4 }, - limit: { context: 32768, input: 32768, output: 8192 }, - }, - "dmind/dmind-1": { - id: "dmind/dmind-1", - name: "DMind-1", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-06-01", - last_updated: "2025-06-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.6 }, - limit: { context: 32768, input: 32768, output: 8192 }, - }, - "EVA-UNIT-01/EVA-Qwen2.5-72B-v0.2": { - id: "EVA-UNIT-01/EVA-Qwen2.5-72B-v0.2", - name: "EVA-Qwen2.5-72B-v0.2", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - release_date: "2025-09-25", - last_updated: "2025-09-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.7989999999999999, output: 0.7989999999999999 }, limit: { context: 16384, input: 16384, output: 8192 }, }, "EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.0": { @@ -56495,6 +9221,21 @@ export const snapshot = { cost: { input: 2.006, output: 2.006 }, limit: { context: 16384, input: 16384, output: 16384 }, }, + "EVA-UNIT-01/EVA-Qwen2.5-72B-v0.2": { + id: "EVA-UNIT-01/EVA-Qwen2.5-72B-v0.2", + name: "EVA-Qwen2.5-72B-v0.2", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.7989999999999999, output: 0.7989999999999999 }, + limit: { context: 16384, input: 16384, output: 8192 }, + }, "EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.1": { id: "EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.1", name: "EVA-LLaMA-3.33-70B-v0.1", @@ -56525,201 +9266,215 @@ export const snapshot = { cost: { input: 0.7989999999999999, output: 0.7989999999999999 }, limit: { context: 16384, input: 16384, output: 8192 }, }, - }, - }, - cerebras: { - id: "cerebras", - env: ["CEREBRAS_API_KEY"], - npm: "@ai-sdk/cerebras", - name: "Cerebras", - doc: "https://inference-docs.cerebras.ai/models/overview", - models: { - "qwen-3-235b-a22b-instruct-2507": { - id: "qwen-3-235b-a22b-instruct-2507", - name: "Qwen 3 235B Instruct", + "huihui-ai/DeepSeek-R1-Distill-Qwen-32B-abliterated": { + id: "huihui-ai/DeepSeek-R1-Distill-Qwen-32B-abliterated", + name: "DeepSeek R1 Qwen Abliterated", family: "qwen", attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-22", - last_updated: "2025-07-22", + reasoning: true, + tool_call: false, + structured_output: false, + release_date: "2025-01-20", + last_updated: "2025-01-20", modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 1.2 }, - limit: { context: 131000, output: 32000 }, + open_weights: false, + cost: { input: 1.4, output: 1.4 }, + limit: { context: 16384, input: 16384, output: 8192 }, }, - "gpt-oss-120b": { - id: "gpt-oss-120b", - name: "GPT OSS 120B", - family: "gpt-oss", + "huihui-ai/DeepSeek-R1-Distill-Llama-70B-abliterated": { + id: "huihui-ai/DeepSeek-R1-Distill-Llama-70B-abliterated", + name: "DeepSeek R1 Llama 70B Abliterated", + family: "deepseek", attachment: false, reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-08-05", - last_updated: "2025-08-05", + tool_call: false, + structured_output: false, + release_date: "2025-01-20", + last_updated: "2025-01-20", modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.25, output: 0.69 }, - limit: { context: 131072, output: 32768 }, + open_weights: false, + cost: { input: 0.7, output: 0.7 }, + limit: { context: 16384, input: 16384, output: 8192 }, }, - "llama3.1-8b": { - id: "llama3.1-8b", - name: "Llama 3.1 8B", + "huihui-ai/Llama-3.3-70B-Instruct-abliterated": { + id: "huihui-ai/Llama-3.3-70B-Instruct-abliterated", + name: "Llama 3.3 70B Instruct abliterated", family: "llama", attachment: false, reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2025-01-01", - last_updated: "2025-01-01", + tool_call: false, + structured_output: false, + release_date: "2025-08-08", + last_updated: "2025-08-08", modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.1 }, - limit: { context: 32000, output: 8000 }, + open_weights: false, + cost: { input: 0.7, output: 0.7 }, + limit: { context: 16384, input: 16384, output: 16384 }, }, - "zai-glm-4.7": { - id: "zai-glm-4.7", - name: "Z.AI GLM-4.7", + "huihui-ai/Qwen2.5-32B-Instruct-abliterated": { + id: "huihui-ai/Qwen2.5-32B-Instruct-abliterated", + name: "Qwen 2.5 32B Abliterated", + family: "qwen", attachment: false, reasoning: false, - tool_call: true, - temperature: true, - release_date: "2026-01-10", - last_updated: "2026-01-10", + tool_call: false, + structured_output: false, + release_date: "2025-01-06", + last_updated: "2025-01-06", modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.25, output: 2.75, cache_read: 0, cache_write: 0 }, - limit: { context: 131072, output: 40000 }, + open_weights: false, + cost: { input: 0.7, output: 0.7 }, + limit: { context: 32768, input: 32768, output: 8192 }, + }, + "huihui-ai/Llama-3.1-Nemotron-70B-Instruct-HF-abliterated": { + id: "huihui-ai/Llama-3.1-Nemotron-70B-Instruct-HF-abliterated", + name: "Nemotron 3.1 70B abliterated", + family: "nemotron", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.7, output: 0.7 }, + limit: { context: 16384, input: 16384, output: 16384 }, + }, + "xiaomi/mimo-v2-flash-thinking-original": { + id: "xiaomi/mimo-v2-flash-thinking-original", + name: "MiMo V2 Flash (Thinking) Original", + family: "mimo", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.102, output: 0.306 }, + limit: { context: 256000, input: 256000, output: 32768 }, + }, + "xiaomi/mimo-v2-flash-thinking": { + id: "xiaomi/mimo-v2-flash-thinking", + name: "MiMo V2 Flash (Thinking)", + family: "mimo", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.102, output: 0.306 }, + limit: { context: 256000, input: 256000, output: 32768 }, + }, + "xiaomi/mimo-v2-flash": { + id: "xiaomi/mimo-v2-flash", + name: "MiMo V2 Flash", + family: "mimo", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.102, output: 0.306 }, + limit: { context: 256000, input: 256000, output: 32768 }, + }, + "xiaomi/mimo-v2-flash-original": { + id: "xiaomi/mimo-v2-flash-original", + name: "MiMo V2 Flash Original", + family: "mimo", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.102, output: 0.306 }, + limit: { context: 256000, input: 256000, output: 32768 }, + }, + "tngtech/DeepSeek-TNG-R1T2-Chimera": { + id: "tngtech/DeepSeek-TNG-R1T2-Chimera", + name: "DeepSeek TNG R1T2 Chimera", + family: "tngtech", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.31, output: 0.31 }, + limit: { context: 128000, input: 128000, output: 8192 }, + }, + "tngtech/tng-r1t-chimera": { + id: "tngtech/tng-r1t-chimera", + name: "TNG R1T Chimera", + family: "tngtech", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-11-26", + last_updated: "2025-11-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 128000, input: 128000, output: 65536 }, + }, + "inflatebot/MN-12B-Mag-Mell-R1": { + id: "inflatebot/MN-12B-Mag-Mell-R1", + name: "Mag Mell R1", + family: "mistral-nemo", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2024-07-01", + last_updated: "2024-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.49299999999999994, output: 0.49299999999999994 }, + limit: { context: 16384, input: 16384, output: 8192 }, + }, + "failspy/Meta-Llama-3-70B-Instruct-abliterated-v3.5": { + id: "failspy/Meta-Llama-3-70B-Instruct-abliterated-v3.5", + name: "Llama 3 70B abliterated", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + release_date: "2025-07-26", + last_updated: "2025-07-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.7, output: 0.7 }, + limit: { context: 8192, input: 8192, output: 8192 }, }, }, }, - azure: { - id: "azure", - env: ["AZURE_RESOURCE_NAME", "AZURE_API_KEY"], - npm: "@ai-sdk/azure", - name: "Azure", - doc: "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", + abacus: { + id: "abacus", + env: ["ABACUS_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://routellm.abacus.ai/v1", + name: "Abacus", + doc: "https://abacus.ai/help/api", models: { - "gpt-5.3-codex": { - id: "gpt-5.3-codex", - name: "GPT-5.3 Codex", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-02-24", - last_updated: "2026-02-24", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 400000, output: 128000 }, - }, - "gpt-5-codex": { - id: "gpt-5-codex", - name: "GPT-5-Codex", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.13 }, - limit: { context: 400000, output: 128000 }, - }, - "gpt-5-pro": { - id: "gpt-5-pro", - name: "GPT-5 Pro", - family: "gpt-pro", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-10-06", - last_updated: "2025-10-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 15, output: 120 }, - limit: { context: 400000, output: 272000 }, - }, - "phi-3-small-128k-instruct": { - id: "phi-3-small-128k-instruct", - name: "Phi-3-small-instruct (128k)", - family: "phi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-04-23", - last_updated: "2024-04-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 128000, output: 4096 }, - }, - "gpt-4o-mini": { - id: "gpt-4o-mini", - name: "GPT-4o mini", - family: "gpt-mini", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-09", - release_date: "2024-07-18", - last_updated: "2024-07-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.15, output: 0.6, cache_read: 0.08 }, - limit: { context: 128000, output: 16384 }, - }, - "text-embedding-ada-002": { - id: "text-embedding-ada-002", - name: "text-embedding-ada-002", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - release_date: "2022-12-15", - last_updated: "2022-12-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0 }, - limit: { context: 8192, output: 1536 }, - }, - "grok-4-fast-reasoning": { - id: "grok-4-fast-reasoning", - name: "Grok 4 Fast (Reasoning)", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-09-19", - last_updated: "2025-09-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 30000 }, - }, "gpt-5.1-codex-max": { id: "gpt-5.1-codex-max", name: "GPT-5.1 Codex Max", - family: "gpt-codex", + family: "gpt", attachment: true, reasoning: true, tool_call: true, @@ -56730,158 +9485,581 @@ export const snapshot = { last_updated: "2025-11-13", modalities: { input: ["text", "image"], output: ["text"] }, open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 400000, output: 128000 }, + cost: { input: 1.25, output: 10 }, + limit: { context: 400000, input: 272000, output: 128000 }, }, - "phi-3-medium-128k-instruct": { - id: "phi-3-medium-128k-instruct", - name: "Phi-3-medium-instruct (128k)", - family: "phi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-04-23", - last_updated: "2024-04-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.17, output: 0.68 }, - limit: { context: 128000, output: 4096 }, - }, - "phi-4-multimodal": { - id: "phi-4-multimodal", - name: "Phi-4-multimodal", - family: "phi", + "claude-opus-4-5-20251101": { + id: "claude-opus-4-5-20251101", + name: "Claude Opus 4.5", + family: "claude-opus", attachment: true, - reasoning: false, - tool_call: false, + reasoning: true, + tool_call: true, temperature: true, - knowledge: "2023-10", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text", "image", "audio"], output: ["text"] }, - open_weights: true, - cost: { input: 0.08, output: 0.32, input_audio: 4 }, - limit: { context: 128000, output: 4096 }, + knowledge: "2025-03-31", + release_date: "2025-11-01", + last_updated: "2025-11-01", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25 }, + limit: { context: 200000, output: 64000 }, }, - "mai-ds-r1": { - id: "mai-ds-r1", - name: "MAI-DS-R1", - family: "mai", + "kimi-k2.5": { + id: "kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", attachment: false, reasoning: true, - tool_call: false, + tool_call: true, + structured_output: true, temperature: true, - knowledge: "2024-06", - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.35, output: 5.4 }, - limit: { context: 128000, output: 8192 }, + knowledge: "2025-01", + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3 }, + limit: { context: 262144, output: 32768 }, }, - "claude-opus-4-1": { - id: "claude-opus-4-1", - name: "Claude Opus 4.1", - family: "claude-opus", + "gemini-3.1-flash-lite-preview": { + id: "gemini-3.1-flash-lite-preview", + name: "Gemini 3.1 Flash Lite Preview", + family: "gemini-flash", attachment: true, reasoning: true, tool_call: true, structured_output: true, temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-18", - last_updated: "2025-11-18", + release_date: "2026-03-01", + last_updated: "2026-03-01", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1.5, cache_read: 0.025, cache_write: 1 }, + limit: { context: 1048576, output: 65536 }, + }, + "claude-sonnet-4-6": { + id: "claude-sonnet-4-6", + name: "Claude Sonnet 4.6", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2026-02-17", + last_updated: "2026-02-17", modalities: { input: ["text", "image", "pdf"], output: ["text"] }, open_weights: false, - cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, - limit: { context: 200000, output: 32000 }, - provider: { - npm: "@ai-sdk/anthropic", - api: "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", - }, + cost: { input: 3, output: 15 }, + limit: { context: 200000, output: 64000 }, }, - "phi-3.5-moe-instruct": { - id: "phi-3.5-moe-instruct", - name: "Phi-3.5-MoE-instruct", - family: "phi", - attachment: false, - reasoning: false, - tool_call: false, + "gemini-3.1-pro-preview": { + id: "gemini-3.1-pro-preview", + name: "Gemini 3.1 Pro Preview", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, temperature: true, - knowledge: "2023-10", - release_date: "2024-08-20", - last_updated: "2024-08-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.16, output: 0.64 }, - limit: { context: 128000, output: 4096 }, + knowledge: "2025-01", + release_date: "2026-02-19", + last_updated: "2026-02-19", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12 }, + limit: { context: 1048576, output: 65536 }, }, - "gpt-4-turbo-vision": { - id: "gpt-4-turbo-vision", - name: "GPT-4 Turbo Vision", + "gpt-5.3-chat-latest": { + id: "gpt-5.3-chat-latest", + name: "GPT-5.3 Chat Latest", family: "gpt", attachment: true, - reasoning: false, + reasoning: true, tool_call: true, temperature: true, - knowledge: "2023-11", - release_date: "2023-11-06", - last_updated: "2024-04-09", + release_date: "2026-03-01", + last_updated: "2026-03-01", modalities: { input: ["text", "image"], output: ["text"] }, open_weights: false, - cost: { input: 10, output: 30 }, - limit: { context: 128000, output: 4096 }, + cost: { input: 1.75, output: 14 }, + limit: { context: 400000, output: 128000 }, }, - "ministral-3b": { - id: "ministral-3b", - name: "Ministral 3B", - family: "ministral", + "gemini-3-flash-preview": { + id: "gemini-3-flash-preview", + name: "Gemini 3 Flash Preview", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 3 }, + limit: { context: 1048576, output: 65536 }, + }, + "llama-3.3-70b-versatile": { + id: "llama-3.3-70b-versatile", + name: "Llama 3.3 70B Versatile", + family: "llama", attachment: false, reasoning: false, tool_call: true, temperature: true, - knowledge: "2024-03", - release_date: "2024-10-22", - last_updated: "2024-10-22", + release_date: "2024-12-06", + last_updated: "2024-12-06", modalities: { input: ["text"], output: ["text"] }, open_weights: true, - cost: { input: 0.04, output: 0.04 }, - limit: { context: 128000, output: 8192 }, + cost: { input: 0.59, output: 0.79 }, + limit: { context: 128000, output: 32768 }, }, - "gpt-5.2-codex": { - id: "gpt-5.2-codex", - name: "GPT-5.2 Codex", - family: "gpt-codex", - attachment: false, + "gpt-5-mini": { + id: "gpt-5-mini", + name: "GPT-5 Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2 }, + limit: { context: 400000, output: 128000 }, + }, + "gpt-5-nano": { + id: "gpt-5-nano", + name: "GPT-5 Nano", + family: "gpt-nano", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.4 }, + limit: { context: 400000, output: 128000 }, + }, + "gpt-5.3-codex": { + id: "gpt-5.3-codex", + name: "GPT-5.3 Codex", + family: "gpt", + attachment: true, reasoning: true, tool_call: true, structured_output: true, temperature: false, knowledge: "2025-08-31", - release_date: "2026-01-14", - last_updated: "2026-01-14", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "claude-sonnet-4-5-20250929": { + id: "claude-sonnet-4-5-20250929", + name: "Claude Sonnet 4.5", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 200000, output: 64000 }, + }, + "gemini-2.5-pro": { + id: "gemini-2.5-pro", + name: "Gemini 2.5 Pro", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-03-25", + last_updated: "2025-03-25", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 1048576, output: 65536 }, + }, + "grok-4-1-fast-non-reasoning": { + id: "grok-4-1-fast-non-reasoning", + name: "Grok 4.1 Fast (Non-Reasoning)", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-11-17", + last_updated: "2025-11-17", modalities: { input: ["text", "image"], output: ["text"] }, open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, + cost: { input: 0.2, output: 0.5 }, + limit: { context: 2000000, output: 16384 }, + }, + "gpt-5.2": { + id: "gpt-5.2", + name: "GPT-5.2", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14 }, limit: { context: 400000, output: 128000 }, }, - "grok-3": { - id: "grok-3", - name: "Grok 3", + "o3-pro": { + id: "o3-pro", + name: "o3-pro", + family: "o-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05", + release_date: "2025-06-10", + last_updated: "2025-06-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 20, output: 40 }, + limit: { context: 200000, output: 100000 }, + }, + "gpt-4o-mini": { + id: "gpt-4o-mini", + name: "GPT-4o Mini", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 128000, output: 16384 }, + }, + "qwen3-max": { + id: "qwen3-max", + name: "Qwen3 Max", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-05-28", + last_updated: "2025-05-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.2, output: 6 }, + limit: { context: 131072, output: 16384 }, + }, + "o4-mini": { + id: "o4-mini", + name: "o4-mini", + family: "o-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05", + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4 }, + limit: { context: 200000, output: 100000 }, + }, + "gpt-5.2-codex": { + id: "gpt-5.2-codex", + name: "GPT-5.2 Codex", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gemini-2.5-flash": { + id: "gemini-2.5-flash", + name: "Gemini 2.5 Flash", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-03-20", + last_updated: "2025-06-05", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5 }, + limit: { context: 1048576, output: 65536 }, + }, + "gpt-5.2-chat-latest": { + id: "gpt-5.2-chat-latest", + name: "GPT-5.2 Chat Latest", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-09-30", + release_date: "2026-01-01", + last_updated: "2026-01-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14 }, + limit: { context: 400000, output: 128000 }, + }, + "gpt-5.3-codex-xhigh": { + id: "gpt-5.3-codex-xhigh", + name: "GPT-5.3 Codex XHigh", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "grok-code-fast-1": { + id: "grok-code-fast-1", + name: "Grok Code Fast 1", family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-09-01", + last_updated: "2025-09-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.5 }, + limit: { context: 256000, output: 16384 }, + }, + "gpt-5.1": { + id: "gpt-5.1", + name: "GPT-5.1", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 400000, output: 128000 }, + }, + "o3-mini": { + id: "o3-mini", + name: "o3-mini", + family: "o-mini", + attachment: false, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05", + release_date: "2024-12-20", + last_updated: "2025-01-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4 }, + limit: { context: 200000, output: 100000 }, + }, + "grok-4-0709": { + id: "grok-4-0709", + name: "Grok 4", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 256000, output: 16384 }, + }, + "route-llm": { + id: "route-llm", + name: "Route LLM", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-01-01", + last_updated: "2024-01-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 128000, output: 16384 }, + }, + "qwen-2.5-coder-32b": { + id: "qwen-2.5-coder-32b", + name: "Qwen 2.5 Coder 32B", + family: "qwen", attachment: false, reasoning: false, tool_call: true, temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", + release_date: "2024-11-11", + last_updated: "2024-11-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.79, output: 0.79 }, + limit: { context: 128000, output: 8192 }, + }, + "gpt-5-codex": { + id: "gpt-5-codex", + name: "GPT-5 Codex", + family: "gpt", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "claude-opus-4-1-20250805": { + id: "claude-opus-4-1-20250805", + name: "Claude Opus 4.1", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75 }, + limit: { context: 200000, output: 32000 }, + }, + "gpt-5.4": { + id: "gpt-5.4", + name: "GPT-5.4", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 15 }, + limit: { context: 1050000, input: 922000, output: 128000 }, + }, + "gpt-5.1-chat-latest": { + id: "gpt-5.1-chat-latest", + name: "GPT-5.1 Chat Latest", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 400000, output: 128000 }, + }, + "claude-haiku-4-5-20251001": { + id: "claude-haiku-4-5-20251001", + name: "Claude Haiku 4.5", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-02-28", + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5 }, + limit: { context: 200000, output: 64000 }, + }, + "claude-sonnet-4-20250514": { + id: "claude-sonnet-4-20250514", + name: "Claude Sonnet 4", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-05-14", + last_updated: "2025-05-14", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 200000, output: 64000 }, + }, + "kimi-k2-turbo-preview": { + id: "kimi-k2-turbo-preview", + name: "Kimi K2 Turbo Preview", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-07-08", + last_updated: "2025-07-08", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.75 }, - limit: { context: 131072, output: 8192 }, + cost: { input: 0.15, output: 8 }, + limit: { context: 256000, output: 8192 }, }, "claude-opus-4-6": { id: "claude-opus-4-6", @@ -56896,182 +10074,123 @@ export const snapshot = { last_updated: "2026-02-05", modalities: { input: ["text", "image", "pdf"], output: ["text"] }, open_weights: false, - cost: { - input: 5, - output: 25, - cache_read: 0.5, - cache_write: 6.25, - context_over_200k: { input: 10, output: 37.5, cache_read: 1, cache_write: 12.5 }, - }, + cost: { input: 5, output: 25 }, limit: { context: 200000, output: 128000 }, - provider: { - npm: "@ai-sdk/anthropic", - api: "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", - }, }, - "llama-3.2-90b-vision-instruct": { - id: "llama-3.2-90b-vision-instruct", - name: "Llama-3.2-90B-Vision-Instruct", - family: "llama", + "gpt-4.1-nano": { + id: "gpt-4.1-nano", + name: "GPT-4.1 Nano", + family: "gpt", attachment: true, reasoning: false, tool_call: true, temperature: true, - knowledge: "2023-12", - release_date: "2024-09-25", - last_updated: "2024-09-25", + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 2.04, output: 2.04 }, - limit: { context: 128000, output: 8192 }, - }, - "grok-code-fast-1": { - id: "grok-code-fast-1", - name: "Grok Code Fast 1", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2025-08-28", - last_updated: "2025-08-28", - modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 0.2, output: 1.5, cache_read: 0.02 }, - limit: { context: 256000, output: 10000 }, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 1047576, output: 32768 }, }, - "llama-3.3-70b-instruct": { - id: "llama-3.3-70b-instruct", - name: "Llama-3.3-70B-Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-12-06", - last_updated: "2024-12-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.71, output: 0.71 }, - limit: { context: 128000, output: 32768 }, - }, - "grok-4-1-fast-reasoning": { - id: "grok-4-1-fast-reasoning", - name: "Grok 4.1 Fast (Reasoning)", - family: "grok", + "claude-3-7-sonnet-20250219": { + id: "claude-3-7-sonnet-20250219", + name: "Claude Sonnet 3.7", + family: "claude-sonnet", attachment: true, reasoning: true, tool_call: true, temperature: true, - release_date: "2025-06-27", - last_updated: "2025-06-27", - modalities: { input: ["text", "image"], output: ["text"] }, + knowledge: "2024-10-31", + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 128000, input: 128000, output: 8192 }, - status: "beta", + cost: { input: 3, output: 15 }, + limit: { context: 200000, output: 64000 }, }, - "phi-3.5-mini-instruct": { - id: "phi-3.5-mini-instruct", - name: "Phi-3.5-mini-instruct", - family: "phi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-08-20", - last_updated: "2024-08-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.13, output: 0.52 }, - limit: { context: 128000, output: 4096 }, - }, - "cohere-command-a": { - id: "cohere-command-a", - name: "Command A", - family: "command-a", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-06-01", - release_date: "2025-03-13", - last_updated: "2025-03-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.5, output: 10 }, - limit: { context: 256000, output: 8000 }, - }, - "mistral-medium-2505": { - id: "mistral-medium-2505", - name: "Mistral Medium 3", - family: "mistral-medium", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-05", - release_date: "2025-05-07", - last_updated: "2025-05-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.4, output: 2 }, - limit: { context: 128000, output: 128000 }, - }, - "deepseek-v3.1": { - id: "deepseek-v3.1", - name: "DeepSeek-V3.1", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-08-21", - last_updated: "2025-08-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.56, output: 1.68 }, - limit: { context: 131072, output: 131072 }, - }, - "grok-4-1-fast-non-reasoning": { - id: "grok-4-1-fast-non-reasoning", - name: "Grok 4.1 Fast (Non-Reasoning)", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-06-27", - last_updated: "2025-06-27", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 128000, input: 128000, output: 8192 }, - status: "beta", - }, - o1: { - id: "o1", - name: "o1", + o3: { + id: "o3", + name: "o3", family: "o", - attachment: false, + attachment: true, reasoning: true, tool_call: true, temperature: false, - knowledge: "2023-09", - release_date: "2024-12-05", - last_updated: "2024-12-05", + knowledge: "2024-05", + release_date: "2025-04-16", + last_updated: "2025-04-16", modalities: { input: ["text", "image"], output: ["text"] }, open_weights: false, - cost: { input: 15, output: 60, cache_read: 7.5 }, + cost: { input: 2, output: 8 }, limit: { context: 200000, output: 100000 }, }, - "gpt-5.1": { - id: "gpt-5.1", - name: "GPT-5.1", + "gpt-5": { + id: "gpt-5", + name: "GPT-5", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 400000, output: 128000 }, + }, + "claude-opus-4-20250514": { + id: "claude-opus-4-20250514", + name: "Claude Opus 4", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-05-14", + last_updated: "2025-05-14", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75 }, + limit: { context: 200000, output: 32000 }, + }, + "gpt-4.1": { + id: "gpt-4.1", + name: "GPT-4.1", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8 }, + limit: { context: 1047576, output: 32768 }, + }, + "gpt-4.1-mini": { + id: "gpt-4.1-mini", + name: "GPT-4.1 Mini", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.6 }, + limit: { context: 1047576, output: 32768 }, + }, + "gpt-5.1-codex": { + id: "gpt-5.1-codex", + name: "GPT-5.1 Codex", family: "gpt", attachment: true, reasoning: true, @@ -57079,16 +10198,212 @@ export const snapshot = { structured_output: true, temperature: false, knowledge: "2024-09-30", - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text", "image", "audio"], output: ["text", "image", "audio"] }, + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 272000, output: 128000 }, + cost: { input: 1.25, output: 10 }, + limit: { context: 400000, input: 272000, output: 128000 }, }, - "llama-4-scout-17b-16e-instruct": { - id: "llama-4-scout-17b-16e-instruct", - name: "Llama 4 Scout 17B 16E Instruct", + "gpt-4o-2024-11-20": { + id: "gpt-4o-2024-11-20", + name: "GPT-4o (2024-11-20)", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-11-20", + last_updated: "2024-11-20", + modalities: { input: ["text", "image", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10 }, + limit: { context: 128000, output: 16384 }, + }, + "grok-4-fast-non-reasoning": { + id: "grok-4-fast-non-reasoning", + name: "Grok 4 Fast (Non-Reasoning)", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5 }, + limit: { context: 2000000, output: 16384 }, + }, + "deepseek/deepseek-v3.1": { + id: "deepseek/deepseek-v3.1", + name: "DeepSeek V3.1", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 1.66 }, + limit: { context: 128000, output: 8192 }, + }, + "Qwen/QwQ-32B": { + id: "Qwen/QwQ-32B", + name: "QwQ 32B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2024-11-28", + last_updated: "2024-11-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 0.4 }, + limit: { context: 32768, output: 32768 }, + }, + "Qwen/Qwen3-235B-A22B-Instruct-2507": { + id: "Qwen/Qwen3-235B-A22B-Instruct-2507", + name: "Qwen3 235B A22B Instruct", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-07-01", + last_updated: "2025-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 0.6 }, + limit: { context: 262144, output: 8192 }, + }, + "Qwen/Qwen3-32B": { + id: "Qwen/Qwen3-32B", + name: "Qwen3 32B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-04-29", + last_updated: "2025-04-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.09, output: 0.29 }, + limit: { context: 128000, output: 8192 }, + }, + "Qwen/qwen3-coder-480b-a35b-instruct": { + id: "Qwen/qwen3-coder-480b-a35b-instruct", + name: "Qwen3 Coder 480B A35B Instruct", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-07-22", + last_updated: "2025-07-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.29, output: 1.2 }, + limit: { context: 262144, output: 65536 }, + }, + "Qwen/Qwen2.5-72B-Instruct": { + id: "Qwen/Qwen2.5-72B-Instruct", + name: "Qwen 2.5 72B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-09-19", + last_updated: "2024-09-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.11, output: 0.38 }, + limit: { context: 128000, output: 8192 }, + }, + "zai-org/glm-4.7": { + id: "zai-org/glm-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-06-01", + last_updated: "2025-06-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2 }, + limit: { context: 128000, output: 8192 }, + }, + "zai-org/glm-5": { + id: "zai-org/glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3.2 }, + limit: { context: 204800, output: 131072 }, + }, + "zai-org/glm-4.5": { + id: "zai-org/glm-4.5", + name: "GLM-4.5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2 }, + limit: { context: 128000, output: 8192 }, + }, + "zai-org/glm-4.6": { + id: "zai-org/glm-4.6", + name: "GLM-4.6", + family: "glm", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-03-01", + last_updated: "2025-03-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2 }, + limit: { context: 128000, output: 8192 }, + }, + "meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo": { + id: "meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo", + name: "Llama 3.1 405B Instruct Turbo", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 3.5, output: 3.5 }, + limit: { context: 128000, output: 4096 }, + }, + "meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8": { + id: "meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8", + name: "Llama 4 Maverick 17B 128E Instruct FP8", family: "llama", attachment: true, reasoning: false, @@ -57099,43 +10414,3082 @@ export const snapshot = { last_updated: "2025-04-05", modalities: { input: ["text", "image"], output: ["text"] }, open_weights: true, - cost: { input: 0.2, output: 0.78 }, - limit: { context: 128000, output: 8192 }, + cost: { input: 0.14, output: 0.59 }, + limit: { context: 1000000, output: 32768 }, }, - "meta-llama-3.1-405b-instruct": { - id: "meta-llama-3.1-405b-instruct", - name: "Meta-Llama-3.1-405B-Instruct", + "meta-llama/Meta-Llama-3.1-8B-Instruct": { + id: "meta-llama/Meta-Llama-3.1-8B-Instruct", + name: "Llama 3.1 8B Instruct", family: "llama", attachment: false, reasoning: false, tool_call: true, temperature: true, - knowledge: "2023-12", release_date: "2024-07-23", last_updated: "2024-07-23", modalities: { input: ["text"], output: ["text"] }, open_weights: true, - cost: { input: 5.33, output: 16 }, + cost: { input: 0.02, output: 0.05 }, + limit: { context: 128000, output: 4096 }, + }, + "deepseek-ai/DeepSeek-R1": { + id: "deepseek-ai/DeepSeek-R1", + name: "DeepSeek R1", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 3, output: 7 }, + limit: { context: 128000, output: 8192 }, + }, + "deepseek-ai/DeepSeek-V3.2": { + id: "deepseek-ai/DeepSeek-V3.2", + name: "DeepSeek V3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-06-15", + last_updated: "2025-06-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 0.4 }, + limit: { context: 128000, output: 8192 }, + }, + "deepseek-ai/DeepSeek-V3.1-Terminus": { + id: "deepseek-ai/DeepSeek-V3.1-Terminus", + name: "DeepSeek V3.1 Terminus", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-06-01", + last_updated: "2025-06-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 1 }, + limit: { context: 128000, output: 8192 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "GPT-OSS 120B", + family: "gpt-oss", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.08, output: 0.44 }, limit: { context: 128000, output: 32768 }, }, - "cohere-command-r-plus-08-2024": { - id: "cohere-command-r-plus-08-2024", - name: "Command R+", - family: "command-r", + }, + }, + "perplexity-agent": { + id: "perplexity-agent", + env: ["PERPLEXITY_API_KEY"], + npm: "@ai-sdk/openai", + api: "https://api.perplexity.ai/v1", + name: "Perplexity Agent", + doc: "https://docs.perplexity.ai/docs/agent-api/models", + models: { + "perplexity/sonar": { + id: "perplexity/sonar", + name: "Sonar", + family: "sonar", attachment: false, reasoning: false, tool_call: true, temperature: true, - knowledge: "2024-06-01", - release_date: "2024-08-30", - last_updated: "2024-08-30", + knowledge: "2025-09-01", + release_date: "2024-01-01", + last_updated: "2025-09-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2.5, cache_read: 0.0625 }, + limit: { context: 128000, output: 8192 }, + }, + "xai/grok-4-1-fast-non-reasoning": { + id: "xai/grok-4-1-fast-non-reasoning", + name: "Grok 4.1 Fast (Non-Reasoning)", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-11-19", + last_updated: "2025-11-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + "nvidia/nemotron-3-super-120b-a12b": { + id: "nvidia/nemotron-3-super-120b-a12b", + name: "Nemotron 3 Super 120B", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2026-02", + release_date: "2026-03-11", + last_updated: "2026-03-11", modalities: { input: ["text"], output: ["text"] }, open_weights: true, - cost: { input: 2.5, output: 10 }, - limit: { context: 128000, output: 4000 }, + cost: { input: 0.25, output: 2.5 }, + limit: { context: 1000000, output: 32000 }, }, - "gpt-5.2-chat": { - id: "gpt-5.2-chat", + "openai/gpt-5-mini": { + id: "openai/gpt-5-mini", + name: "GPT-5 Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.025 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "openai/gpt-5.2": { + id: "openai/gpt-5.2", + name: "GPT-5.2", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "openai/gpt-5.1": { + id: "openai/gpt-5.1", + name: "GPT-5.1", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "openai/gpt-5.4": { + id: "openai/gpt-5.4", + name: "GPT-5.4", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 15, cache_read: 0.25 }, + limit: { context: 1050000, input: 922000, output: 128000 }, + }, + "google/gemini-3.1-pro-preview": { + id: "google/gemini-3.1-pro-preview", + name: "Gemini 3.1 Pro Preview", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-02-19", + last_updated: "2026-02-19", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-3-flash-preview": { + id: "google/gemini-3-flash-preview", + name: "Gemini 3 Flash Preview", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 0.5, + output: 3, + cache_read: 0.05, + context_over_200k: { input: 0.5, output: 3, cache_read: 0.05 }, + }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-2.5-pro": { + id: "google/gemini-2.5-pro", + name: "Gemini 2.5 Pro", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-03-20", + last_updated: "2025-06-05", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 1.25, + output: 10, + cache_read: 0.125, + context_over_200k: { input: 2.5, output: 15, cache_read: 0.25 }, + }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-2.5-flash": { + id: "google/gemini-2.5-flash", + name: "Gemini 2.5 Flash", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-03-20", + last_updated: "2025-06-05", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5, cache_read: 0.03 }, + limit: { context: 1048576, output: 65536 }, + }, + "anthropic/claude-haiku-4-5": { + id: "anthropic/claude-haiku-4-5", + name: "Claude Haiku 4.5", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-02-28", + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-sonnet-4-6": { + id: "anthropic/claude-sonnet-4-6", + name: "Claude Sonnet 4.6", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2026-02-17", + last_updated: "2026-02-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-opus-4-5": { + id: "anthropic/claude-opus-4-5", + name: "Claude Opus 4.5", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-24", + last_updated: "2025-11-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-opus-4-6": { + id: "anthropic/claude-opus-4-6", + name: "Claude Opus 4.6", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5 }, + limit: { context: 200000, output: 128000 }, + }, + "anthropic/claude-sonnet-4-5": { + id: "anthropic/claude-sonnet-4-5", + name: "Claude Sonnet 4.5", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3 }, + limit: { context: 200000, output: 64000 }, + }, + }, + }, + "siliconflow-cn": { + id: "siliconflow-cn", + env: ["SILICONFLOW_CN_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.siliconflow.cn/v1", + name: "SiliconFlow (China)", + doc: "https://cloud.siliconflow.com/models", + models: { + "Kwaipilot/KAT-Dev": { + id: "Kwaipilot/KAT-Dev", + name: "Kwaipilot/KAT-Dev", + family: "kat-coder", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-27", + last_updated: "2026-01-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.6 }, + limit: { context: 128000, output: 128000 }, + }, + "Qwen/Qwen3.5-397B-A17B": { + id: "Qwen/Qwen3.5-397B-A17B", + name: "Qwen/Qwen3.5-397B-A17B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02-16", + last_updated: "2026-02-16", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.29, output: 1.74 }, + limit: { context: 262144, output: 65536 }, + }, + "Qwen/Qwen3.5-35B-A3B": { + id: "Qwen/Qwen3.5-35B-A3B", + name: "Qwen/Qwen3.5-35B-A3B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02-25", + last_updated: "2026-02-25", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.23, output: 1.86 }, + limit: { context: 262144, output: 65536 }, + }, + "Qwen/Qwen3.5-122B-A10B": { + id: "Qwen/Qwen3.5-122B-A10B", + name: "Qwen/Qwen3.5-122B-A10B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02-26", + last_updated: "2026-02-26", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.29, output: 2.32 }, + limit: { context: 262144, output: 65536 }, + }, + "Qwen/Qwen3.5-9B": { + id: "Qwen/Qwen3.5-9B", + name: "Qwen/Qwen3.5-9B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-03-03", + last_updated: "2026-03-03", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.22, output: 1.74 }, + limit: { context: 262144, output: 65536 }, + }, + "Qwen/Qwen3.5-27B": { + id: "Qwen/Qwen3.5-27B", + name: "Qwen/Qwen3.5-27B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02-25", + last_updated: "2026-02-25", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.26, output: 2.09 }, + limit: { context: 262144, output: 65536 }, + }, + "Qwen/Qwen3.5-4B": { + id: "Qwen/Qwen3.5-4B", + name: "Qwen/Qwen3.5-4B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-03-03", + last_updated: "2026-03-03", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 65536 }, + }, + "Qwen/Qwen2.5-72B-Instruct": { + id: "Qwen/Qwen2.5-72B-Instruct", + name: "Qwen/Qwen2.5-72B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-09-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.59, output: 0.59 }, + limit: { context: 33000, output: 4000 }, + }, + "Qwen/Qwen3-Coder-480B-A35B-Instruct": { + id: "Qwen/Qwen3-Coder-480B-A35B-Instruct", + name: "Qwen/Qwen3-Coder-480B-A35B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-31", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-VL-8B-Instruct": { + id: "Qwen/Qwen3-VL-8B-Instruct", + name: "Qwen/Qwen3-VL-8B-Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-15", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.18, output: 0.68 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-VL-32B-Instruct": { + id: "Qwen/Qwen3-VL-32B-Instruct", + name: "Qwen/Qwen3-VL-32B-Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-21", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.6 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-VL-30B-A3B-Thinking": { + id: "Qwen/Qwen3-VL-30B-A3B-Thinking", + name: "Qwen/Qwen3-VL-30B-A3B-Thinking", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-11", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.29, output: 1 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen2.5-14B-Instruct": { + id: "Qwen/Qwen2.5-14B-Instruct", + name: "Qwen/Qwen2.5-14B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-09-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 33000, output: 4000 }, + }, + "Qwen/Qwen3-VL-235B-A22B-Instruct": { + id: "Qwen/Qwen3-VL-235B-A22B-Instruct", + name: "Qwen/Qwen3-VL-235B-A22B-Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-04", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.5 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-Next-80B-A3B-Thinking": { + id: "Qwen/Qwen3-Next-80B-A3B-Thinking", + name: "Qwen/Qwen3-Next-80B-A3B-Thinking", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-25", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.57 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen2.5-VL-32B-Instruct": { + id: "Qwen/Qwen2.5-VL-32B-Instruct", + name: "Qwen/Qwen2.5-VL-32B-Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-03-24", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 0.27 }, + limit: { context: 131000, output: 131000 }, + }, + "Qwen/Qwen3-Omni-30B-A3B-Thinking": { + id: "Qwen/Qwen3-Omni-30B-A3B-Thinking", + name: "Qwen/Qwen3-Omni-30B-A3B-Thinking", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-04", + last_updated: "2025-11-25", + modalities: { input: ["text", "image", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 66000, output: 66000 }, + }, + "Qwen/Qwen3-235B-A22B-Thinking-2507": { + id: "Qwen/Qwen3-235B-A22B-Thinking-2507", + name: "Qwen/Qwen3-235B-A22B-Thinking-2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-28", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.13, output: 0.6 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen2.5-32B-Instruct": { + id: "Qwen/Qwen2.5-32B-Instruct", + name: "Qwen/Qwen2.5-32B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-09-19", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.18, output: 0.18 }, + limit: { context: 33000, output: 4000 }, + }, + "Qwen/Qwen2.5-72B-Instruct-128K": { + id: "Qwen/Qwen2.5-72B-Instruct-128K", + name: "Qwen/Qwen2.5-72B-Instruct-128K", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-09-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.59, output: 0.59 }, + limit: { context: 131000, output: 4000 }, + }, + "Qwen/Qwen3-14B": { + id: "Qwen/Qwen3-14B", + name: "Qwen/Qwen3-14B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-30", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.07, output: 0.28 }, + limit: { context: 131000, output: 131000 }, + }, + "Qwen/Qwen3-Omni-30B-A3B-Instruct": { + id: "Qwen/Qwen3-Omni-30B-A3B-Instruct", + name: "Qwen/Qwen3-Omni-30B-A3B-Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-04", + last_updated: "2025-11-25", + modalities: { input: ["text", "image", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 66000, output: 66000 }, + }, + "Qwen/Qwen3-Coder-30B-A3B-Instruct": { + id: "Qwen/Qwen3-Coder-30B-A3B-Instruct", + name: "Qwen/Qwen3-Coder-30B-A3B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-01", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.07, output: 0.28 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-32B": { + id: "Qwen/Qwen3-32B", + name: "Qwen/Qwen3-32B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-30", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.57 }, + limit: { context: 131000, output: 131000 }, + }, + "Qwen/Qwen3-235B-A22B-Instruct-2507": { + id: "Qwen/Qwen3-235B-A22B-Instruct-2507", + name: "Qwen/Qwen3-235B-A22B-Instruct-2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-23", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.09, output: 0.6 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-30B-A3B-Instruct-2507": { + id: "Qwen/Qwen3-30B-A3B-Instruct-2507", + name: "Qwen/Qwen3-30B-A3B-Instruct-2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-30", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.09, output: 0.3 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-8B": { + id: "Qwen/Qwen3-8B", + name: "Qwen/Qwen3-8B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-30", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.06, output: 0.06 }, + limit: { context: 131000, output: 131000 }, + }, + "Qwen/Qwen3-Next-80B-A3B-Instruct": { + id: "Qwen/Qwen3-Next-80B-A3B-Instruct", + name: "Qwen/Qwen3-Next-80B-A3B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 1.4 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-VL-8B-Thinking": { + id: "Qwen/Qwen3-VL-8B-Thinking", + name: "Qwen/Qwen3-VL-8B-Thinking", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-15", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.18, output: 2 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-Omni-30B-A3B-Captioner": { + id: "Qwen/Qwen3-Omni-30B-A3B-Captioner", + name: "Qwen/Qwen3-Omni-30B-A3B-Captioner", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-04", + last_updated: "2025-11-25", + modalities: { input: ["audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 66000, output: 66000 }, + }, + "Qwen/QwQ-32B": { + id: "Qwen/QwQ-32B", + name: "Qwen/QwQ-32B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-03-06", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.58 }, + limit: { context: 131000, output: 131000 }, + }, + "Qwen/Qwen3-VL-30B-A3B-Instruct": { + id: "Qwen/Qwen3-VL-30B-A3B-Instruct", + name: "Qwen/Qwen3-VL-30B-A3B-Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-05", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.29, output: 1 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen2.5-Coder-32B-Instruct": { + id: "Qwen/Qwen2.5-Coder-32B-Instruct", + name: "Qwen/Qwen2.5-Coder-32B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-11-11", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.18, output: 0.18 }, + limit: { context: 33000, output: 4000 }, + }, + "Qwen/Qwen2.5-7B-Instruct": { + id: "Qwen/Qwen2.5-7B-Instruct", + name: "Qwen/Qwen2.5-7B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-09-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.05 }, + limit: { context: 33000, output: 4000 }, + }, + "Qwen/Qwen3-VL-235B-A22B-Thinking": { + id: "Qwen/Qwen3-VL-235B-A22B-Thinking", + name: "Qwen/Qwen3-VL-235B-A22B-Thinking", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-04", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.45, output: 3.5 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-30B-A3B-Thinking-2507": { + id: "Qwen/Qwen3-30B-A3B-Thinking-2507", + name: "Qwen/Qwen3-30B-A3B-Thinking-2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-31", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.09, output: 0.3 }, + limit: { context: 262000, output: 131000 }, + }, + "Qwen/Qwen3-VL-32B-Thinking": { + id: "Qwen/Qwen3-VL-32B-Thinking", + name: "Qwen/Qwen3-VL-32B-Thinking", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-21", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.5 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen2.5-VL-72B-Instruct": { + id: "Qwen/Qwen2.5-VL-72B-Instruct", + name: "Qwen/Qwen2.5-VL-72B-Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-01-28", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.59, output: 0.59 }, + limit: { context: 131000, output: 4000 }, + }, + "stepfun-ai/Step-3.5-Flash": { + id: "stepfun-ai/Step-3.5-Flash", + name: "stepfun-ai/Step-3.5-Flash", + family: "step", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 262000, output: 262000 }, + }, + "zai-org/GLM-4.5V": { + id: "zai-org/GLM-4.5V", + name: "zai-org/GLM-4.5V", + family: "glm", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-13", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.86 }, + limit: { context: 66000, output: 66000 }, + }, + "zai-org/GLM-4.6": { + id: "zai-org/GLM-4.6", + name: "zai-org/GLM-4.6", + family: "glm", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-04", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 1.9 }, + limit: { context: 205000, output: 205000 }, + }, + "zai-org/GLM-4.6V": { + id: "zai-org/GLM-4.6V", + name: "zai-org/GLM-4.6V", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-12-07", + last_updated: "2025-12-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.9 }, + limit: { context: 131000, output: 131000 }, + }, + "zai-org/GLM-4.5-Air": { + id: "zai-org/GLM-4.5-Air", + name: "zai-org/GLM-4.5-Air", + family: "glm-air", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-28", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.86 }, + limit: { context: 131000, output: 131000 }, + }, + "inclusionAI/Ling-flash-2.0": { + id: "inclusionAI/Ling-flash-2.0", + name: "inclusionAI/Ling-flash-2.0", + family: "ling", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.57 }, + limit: { context: 131000, output: 131000 }, + }, + "inclusionAI/Ling-mini-2.0": { + id: "inclusionAI/Ling-mini-2.0", + name: "inclusionAI/Ling-mini-2.0", + family: "ling", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-10", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.07, output: 0.28 }, + limit: { context: 131000, output: 131000 }, + }, + "inclusionAI/Ring-flash-2.0": { + id: "inclusionAI/Ring-flash-2.0", + name: "inclusionAI/Ring-flash-2.0", + family: "ring", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-29", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.57 }, + limit: { context: 131000, output: 131000 }, + }, + "ascend-tribe/pangu-pro-moe": { + id: "ascend-tribe/pangu-pro-moe", + name: "ascend-tribe/pangu-pro-moe", + family: "pangu", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-07-02", + last_updated: "2026-01-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.6 }, + limit: { context: 128000, output: 128000 }, + }, + "tencent/Hunyuan-MT-7B": { + id: "tencent/Hunyuan-MT-7B", + name: "tencent/Hunyuan-MT-7B", + family: "hunyuan", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 33000, output: 33000 }, + }, + "tencent/Hunyuan-A13B-Instruct": { + id: "tencent/Hunyuan-A13B-Instruct", + name: "tencent/Hunyuan-A13B-Instruct", + family: "hunyuan", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-06-30", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.57 }, + limit: { context: 131000, output: 131000 }, + }, + "Pro/zai-org/GLM-4.7": { + id: "Pro/zai-org/GLM-4.7", + name: "Pro/zai-org/GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 2.2 }, + limit: { context: 205000, output: 205000 }, + }, + "Pro/zai-org/GLM-5.1": { + id: "Pro/zai-org/GLM-5.1", + name: "Pro/zai-org/GLM-5.1", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-04-08", + last_updated: "2026-04-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.4, output: 4.4, cache_write: 0 }, + limit: { context: 205000, output: 205000 }, + }, + "Pro/zai-org/GLM-5": { + id: "Pro/zai-org/GLM-5", + name: "Pro/zai-org/GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3.2 }, + limit: { context: 205000, output: 205000 }, + }, + "Pro/deepseek-ai/DeepSeek-V3": { + id: "Pro/deepseek-ai/DeepSeek-V3", + name: "Pro/deepseek-ai/DeepSeek-V3", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-12-26", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1 }, + limit: { context: 164000, output: 164000 }, + }, + "Pro/deepseek-ai/DeepSeek-R1": { + id: "Pro/deepseek-ai/DeepSeek-R1", + name: "Pro/deepseek-ai/DeepSeek-R1", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-05-28", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 2.18 }, + limit: { context: 164000, output: 164000 }, + }, + "Pro/deepseek-ai/DeepSeek-V3.2": { + id: "Pro/deepseek-ai/DeepSeek-V3.2", + name: "Pro/deepseek-ai/DeepSeek-V3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-03", + last_updated: "2025-12-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 0.42 }, + limit: { context: 164000, output: 164000 }, + }, + "Pro/deepseek-ai/DeepSeek-V3.1-Terminus": { + id: "Pro/deepseek-ai/DeepSeek-V3.1-Terminus", + name: "Pro/deepseek-ai/DeepSeek-V3.1-Terminus", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-29", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 1 }, + limit: { context: 164000, output: 164000 }, + }, + "Pro/moonshotai/Kimi-K2-Thinking": { + id: "Pro/moonshotai/Kimi-K2-Thinking", + name: "Pro/moonshotai/Kimi-K2-Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-11-07", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.55, output: 2.5 }, + limit: { context: 262000, output: 262000 }, + }, + "Pro/moonshotai/Kimi-K2-Instruct-0905": { + id: "Pro/moonshotai/Kimi-K2-Instruct-0905", + name: "Pro/moonshotai/Kimi-K2-Instruct-0905", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-08", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2 }, + limit: { context: 262000, output: 262000 }, + }, + "Pro/moonshotai/Kimi-K2.5": { + id: "Pro/moonshotai/Kimi-K2.5", + name: "Pro/moonshotai/Kimi-K2.5", + family: "kimi", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.55, output: 3 }, + limit: { context: 262000, output: 262000 }, + }, + "Pro/MiniMaxAI/MiniMax-M2.5": { + id: "Pro/MiniMaxAI/MiniMax-M2.5", + name: "Pro/MiniMaxAI/MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: false, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-02-13", + last_updated: "2026-02-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.22 }, + limit: { context: 192000, output: 131000 }, + }, + "Pro/MiniMaxAI/MiniMax-M2.1": { + id: "Pro/MiniMaxAI/MiniMax-M2.1", + name: "Pro/MiniMaxAI/MiniMax-M2.1", + family: "minimax", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 197000, output: 131000 }, + }, + "PaddlePaddle/PaddleOCR-VL": { + id: "PaddlePaddle/PaddleOCR-VL", + name: "PaddlePaddle/PaddleOCR-VL", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-10-16", + last_updated: "2025-10-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 16384, output: 16384 }, + }, + "PaddlePaddle/PaddleOCR-VL-1.5": { + id: "PaddlePaddle/PaddleOCR-VL-1.5", + name: "PaddlePaddle/PaddleOCR-VL-1.5", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2026-01-29", + last_updated: "2026-01-29", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 16384, output: 16384 }, + }, + "deepseek-ai/DeepSeek-OCR": { + id: "deepseek-ai/DeepSeek-OCR", + name: "deepseek-ai/DeepSeek-OCR", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-10-20", + last_updated: "2025-10-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 8192, output: 8192 }, + }, + "deepseek-ai/DeepSeek-V3.1-Terminus": { + id: "deepseek-ai/DeepSeek-V3.1-Terminus", + name: "deepseek-ai/DeepSeek-V3.1-Terminus", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-29", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 1 }, + limit: { context: 164000, output: 164000 }, + }, + "deepseek-ai/DeepSeek-V3.2": { + id: "deepseek-ai/DeepSeek-V3.2", + name: "deepseek-ai/DeepSeek-V3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-03", + last_updated: "2025-12-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 0.42 }, + limit: { context: 164000, output: 164000 }, + }, + "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B": { + id: "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B", + name: "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-01-20", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 131000, output: 131000 }, + }, + "deepseek-ai/DeepSeek-R1": { + id: "deepseek-ai/DeepSeek-R1", + name: "deepseek-ai/DeepSeek-R1", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-05-28", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 2.18 }, + limit: { context: 164000, output: 164000 }, + }, + "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B": { + id: "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", + name: "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-01-20", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.18, output: 0.18 }, + limit: { context: 131000, output: 131000 }, + }, + "deepseek-ai/DeepSeek-V3": { + id: "deepseek-ai/DeepSeek-V3", + name: "deepseek-ai/DeepSeek-V3", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-12-26", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1 }, + limit: { context: 164000, output: 164000 }, + }, + "deepseek-ai/deepseek-vl2": { + id: "deepseek-ai/deepseek-vl2", + name: "deepseek-ai/deepseek-vl2", + family: "deepseek", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-12-13", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.15 }, + limit: { context: 4000, output: 4000 }, + }, + "baidu/ERNIE-4.5-300B-A47B": { + id: "baidu/ERNIE-4.5-300B-A47B", + name: "baidu/ERNIE-4.5-300B-A47B", + family: "ernie", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-02", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.28, output: 1.1 }, + limit: { context: 131000, output: 131000 }, + }, + "THUDM/GLM-Z1-32B-0414": { + id: "THUDM/GLM-Z1-32B-0414", + name: "THUDM/GLM-Z1-32B-0414", + family: "glm-z", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.57 }, + limit: { context: 131000, output: 131000 }, + }, + "THUDM/GLM-4-32B-0414": { + id: "THUDM/GLM-4-32B-0414", + name: "THUDM/GLM-4-32B-0414", + family: "glm", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 0.27 }, + limit: { context: 33000, output: 33000 }, + }, + "THUDM/GLM-4-9B-0414": { + id: "THUDM/GLM-4-9B-0414", + name: "THUDM/GLM-4-9B-0414", + family: "glm", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.086, output: 0.086 }, + limit: { context: 33000, output: 33000 }, + }, + "THUDM/GLM-Z1-9B-0414": { + id: "THUDM/GLM-Z1-9B-0414", + name: "THUDM/GLM-Z1-9B-0414", + family: "glm-z", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.086, output: 0.086 }, + limit: { context: 131000, output: 131000 }, + }, + "moonshotai/Kimi-K2-Instruct-0905": { + id: "moonshotai/Kimi-K2-Instruct-0905", + name: "moonshotai/Kimi-K2-Instruct-0905", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-08", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2 }, + limit: { context: 262000, output: 262000 }, + }, + "moonshotai/Kimi-K2-Thinking": { + id: "moonshotai/Kimi-K2-Thinking", + name: "moonshotai/Kimi-K2-Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-11-07", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.55, output: 2.5 }, + limit: { context: 262000, output: 262000 }, + }, + "ByteDance-Seed/Seed-OSS-36B-Instruct": { + id: "ByteDance-Seed/Seed-OSS-36B-Instruct", + name: "ByteDance-Seed/Seed-OSS-36B-Instruct", + family: "seed", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-04", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.21, output: 0.57 }, + limit: { context: 262000, output: 262000 }, + }, + }, + }, + submodel: { + id: "submodel", + env: ["SUBMODEL_INSTAGEN_ACCESS_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://llm.submodel.ai/v1", + name: "submodel", + doc: "https://submodel.gitbook.io", + models: { + "Qwen/Qwen3-235B-A22B-Instruct-2507": { + id: "Qwen/Qwen3-235B-A22B-Instruct-2507", + name: "Qwen3 235B A22B Instruct 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-08-23", + last_updated: "2025-08-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.3 }, + limit: { context: 262144, output: 131072 }, + }, + "Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8": { + id: "Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8", + name: "Qwen3 Coder 480B A35B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-08-23", + last_updated: "2025-08-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 262144, output: 262144 }, + }, + "Qwen/Qwen3-235B-A22B-Thinking-2507": { + id: "Qwen/Qwen3-235B-A22B-Thinking-2507", + name: "Qwen3 235B A22B Thinking 2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-23", + last_updated: "2025-08-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.6 }, + limit: { context: 262144, output: 131072 }, + }, + "zai-org/GLM-4.5-Air": { + id: "zai-org/GLM-4.5-Air", + name: "GLM 4.5 Air", + family: "glm-air", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.5 }, + limit: { context: 131072, output: 131072 }, + }, + "zai-org/GLM-4.5-FP8": { + id: "zai-org/GLM-4.5-FP8", + name: "GLM 4.5 FP8", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 131072, output: 131072 }, + }, + "deepseek-ai/DeepSeek-V3.1": { + id: "deepseek-ai/DeepSeek-V3.1", + name: "DeepSeek V3.1", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-23", + last_updated: "2025-08-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 75000, output: 163840 }, + }, + "deepseek-ai/DeepSeek-V3-0324": { + id: "deepseek-ai/DeepSeek-V3-0324", + name: "DeepSeek V3 0324", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-08-23", + last_updated: "2025-08-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 75000, output: 163840 }, + }, + "deepseek-ai/DeepSeek-R1-0528": { + id: "deepseek-ai/DeepSeek-R1-0528", + name: "DeepSeek R1 0528", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-23", + last_updated: "2025-08-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 2.15 }, + limit: { context: 75000, output: 163840 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "GPT OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-23", + last_updated: "2025-08-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.5 }, + limit: { context: 131072, output: 32768 }, + }, + }, + }, + "minimax-coding-plan": { + id: "minimax-coding-plan", + env: ["MINIMAX_API_KEY"], + npm: "@ai-sdk/anthropic", + api: "https://api.minimax.io/anthropic/v1", + name: "MiniMax Coding Plan (minimax.io)", + doc: "https://platform.minimax.io/docs/coding-plan/intro", + models: { + "MiniMax-M2": { + id: "MiniMax-M2", + name: "MiniMax-M2", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-10-27", + last_updated: "2025-10-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 196608, output: 128000 }, + }, + "MiniMax-M2.5": { + id: "MiniMax-M2.5", + name: "MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMax-M2.7": { + id: "MiniMax-M2.7", + name: "MiniMax-M2.7", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMax-M2.7-highspeed": { + id: "MiniMax-M2.7-highspeed", + name: "MiniMax-M2.7-highspeed", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMax-M2.1": { + id: "MiniMax-M2.1", + name: "MiniMax-M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMax-M2.5-highspeed": { + id: "MiniMax-M2.5-highspeed", + name: "MiniMax-M2.5-highspeed", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-13", + last_updated: "2026-02-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + }, + }, + perplexity: { + id: "perplexity", + env: ["PERPLEXITY_API_KEY"], + npm: "@ai-sdk/perplexity", + name: "Perplexity", + doc: "https://docs.perplexity.ai", + models: { + "sonar-pro": { + id: "sonar-pro", + name: "Sonar Pro", + family: "sonar-pro", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-09-01", + release_date: "2024-01-01", + last_updated: "2025-09-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 200000, output: 8192 }, + }, + "sonar-deep-research": { + id: "sonar-deep-research", + name: "Perplexity Sonar Deep Research", + attachment: false, + reasoning: true, + tool_call: false, + temperature: false, + knowledge: "2025-01", + release_date: "2025-02-01", + last_updated: "2025-09-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, reasoning: 3 }, + limit: { context: 128000, output: 32768 }, + }, + sonar: { + id: "sonar", + name: "Sonar", + family: "sonar", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-09-01", + release_date: "2024-01-01", + last_updated: "2025-09-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 1 }, + limit: { context: 128000, output: 4096 }, + }, + "sonar-reasoning-pro": { + id: "sonar-reasoning-pro", + name: "Sonar Reasoning Pro", + family: "sonar-reasoning", + attachment: true, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2025-09-01", + release_date: "2024-01-01", + last_updated: "2025-09-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8 }, + limit: { context: 128000, output: 4096 }, + }, + }, + }, + deepseek: { + id: "deepseek", + env: ["DEEPSEEK_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.deepseek.com", + name: "DeepSeek", + doc: "https://api-docs.deepseek.com/quick_start/pricing", + models: { + "deepseek-chat": { + id: "deepseek-chat", + name: "DeepSeek Chat", + family: "deepseek", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-09", + release_date: "2025-12-01", + last_updated: "2026-02-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.28, output: 0.42, cache_read: 0.028 }, + limit: { context: 131072, output: 8192 }, + }, + "deepseek-reasoner": { + id: "deepseek-reasoner", + name: "DeepSeek Reasoner", + family: "deepseek-thinking", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-09", + release_date: "2025-12-01", + last_updated: "2026-02-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.28, output: 0.42, cache_read: 0.028 }, + limit: { context: 128000, output: 64000 }, + }, + }, + }, + llama: { + id: "llama", + env: ["LLAMA_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.llama.com/compat/v1/", + name: "Llama", + doc: "https://llama.developer.meta.com/docs/models", + models: { + "llama-3.3-70b-instruct": { + id: "llama-3.3-70b-instruct", + name: "Llama-3.3-70B-Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "cerebras-llama-4-maverick-17b-128e-instruct": { + id: "cerebras-llama-4-maverick-17b-128e-instruct", + name: "Cerebras-Llama-4-Maverick-17B-128E-Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "llama-3.3-8b-instruct": { + id: "llama-3.3-8b-instruct", + name: "Llama-3.3-8B-Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "cerebras-llama-4-scout-17b-16e-instruct": { + id: "cerebras-llama-4-scout-17b-16e-instruct", + name: "Cerebras-Llama-4-Scout-17B-16E-Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "groq-llama-4-maverick-17b-128e-instruct": { + id: "groq-llama-4-maverick-17b-128e-instruct", + name: "Groq-Llama-4-Maverick-17B-128E-Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "llama-4-scout-17b-16e-instruct-fp8": { + id: "llama-4-scout-17b-16e-instruct-fp8", + name: "Llama-4-Scout-17B-16E-Instruct-FP8", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "llama-4-maverick-17b-128e-instruct-fp8": { + id: "llama-4-maverick-17b-128e-instruct-fp8", + name: "Llama-4-Maverick-17B-128E-Instruct-FP8", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + }, + }, + openrouter: { + id: "openrouter", + env: ["OPENROUTER_API_KEY"], + npm: "@openrouter/ai-sdk-provider", + api: "https://openrouter.ai/api/v1", + name: "OpenRouter", + doc: "https://openrouter.ai/models", + models: { + "liquid/lfm-2.5-1.2b-instruct:free": { + id: "liquid/lfm-2.5-1.2b-instruct:free", + name: "LFM2.5-1.2B-Instruct (free)", + family: "liquid", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-06", + release_date: "2026-01-20", + last_updated: "2026-01-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 32768 }, + }, + "liquid/lfm-2.5-1.2b-thinking:free": { + id: "liquid/lfm-2.5-1.2b-thinking:free", + name: "LFM2.5-1.2B-Thinking (free)", + family: "liquid", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2025-06", + release_date: "2026-01-20", + last_updated: "2026-01-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 32768 }, + }, + "deepseek/deepseek-chat-v3.1": { + id: "deepseek/deepseek-chat-v3.1", + name: "DeepSeek-V3.1", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-08-21", + last_updated: "2025-08-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 163840, output: 163840 }, + }, + "deepseek/deepseek-r1-distill-llama-70b": { + id: "deepseek/deepseek-r1-distill-llama-70b", + name: "DeepSeek R1 Distill Llama 70B", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-01-23", + last_updated: "2025-01-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 8192, output: 8192 }, + }, + "deepseek/deepseek-v3.2-speciale": { + id: "deepseek/deepseek-v3.2-speciale", + name: "DeepSeek V3.2 Speciale", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 0.41 }, + limit: { context: 163840, output: 65536 }, + }, + "deepseek/deepseek-v3.2": { + id: "deepseek/deepseek-v3.2", + name: "DeepSeek V3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.28, output: 0.4 }, + limit: { context: 163840, output: 65536 }, + }, + "deepseek/deepseek-v3.1-terminus:exacto": { + id: "deepseek/deepseek-v3.1-terminus:exacto", + name: "DeepSeek V3.1 Terminus (exacto)", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-09-22", + last_updated: "2025-09-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 1 }, + limit: { context: 131072, output: 65536 }, + }, + "deepseek/deepseek-chat-v3-0324": { + id: "deepseek/deepseek-chat-v3-0324", + name: "DeepSeek V3 0324", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-03-24", + last_updated: "2025-03-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 16384, output: 8192 }, + }, + "deepseek/deepseek-v3.1-terminus": { + id: "deepseek/deepseek-v3.1-terminus", + name: "DeepSeek V3.1 Terminus", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-09-22", + last_updated: "2025-09-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 1 }, + limit: { context: 131072, output: 65536 }, + }, + "openrouter/free": { + id: "openrouter/free", + name: "Free Models Router", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-01", + last_updated: "2026-02-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 200000, input: 200000, output: 8000 }, + }, + "arcee-ai/trinity-mini:free": { + id: "arcee-ai/trinity-mini:free", + name: "Trinity Mini", + family: "trinity-mini", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-06", + release_date: "2026-01-28", + last_updated: "2026-01-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 131072 }, + }, + "arcee-ai/trinity-large-thinking": { + id: "arcee-ai/trinity-large-thinking", + name: "Trinity Large Thinking", + family: "trinity", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-04-01", + last_updated: "2026-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.22, output: 0.85 }, + limit: { context: 262144, output: 80000 }, + }, + "arcee-ai/trinity-large-preview:free": { + id: "arcee-ai/trinity-large-preview:free", + name: "Trinity Large Preview", + family: "trinity", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-06", + release_date: "2026-01-28", + last_updated: "2026-01-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 131072 }, + }, + "cognitivecomputations/dolphin-mistral-24b-venice-edition:free": { + id: "cognitivecomputations/dolphin-mistral-24b-venice-edition:free", + name: "Uncensored (free)", + family: "mistral", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-07-09", + last_updated: "2026-01-31", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 32768, output: 32768 }, + }, + "bytedance-seed/seedream-4.5": { + id: "bytedance-seed/seedream-4.5", + name: "Seedream 4.5", + family: "seed", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-06", + release_date: "2025-12-23", + last_updated: "2026-01-31", + modalities: { input: ["image", "text"], output: ["image"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 4096, output: 4096 }, + }, + "black-forest-labs/flux.2-max": { + id: "black-forest-labs/flux.2-max", + name: "FLUX.2 Max", + family: "flux", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-06", + release_date: "2025-12-16", + last_updated: "2026-01-31", + modalities: { input: ["image", "text"], output: ["image"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 46864, output: 46864 }, + }, + "black-forest-labs/flux.2-flex": { + id: "black-forest-labs/flux.2-flex", + name: "FLUX.2 Flex", + family: "flux", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-06", + release_date: "2025-11-25", + last_updated: "2026-01-31", + modalities: { input: ["image", "text"], output: ["image"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 67344, output: 67344 }, + }, + "black-forest-labs/flux.2-pro": { + id: "black-forest-labs/flux.2-pro", + name: "FLUX.2 Pro", + family: "flux", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-06", + release_date: "2025-11-25", + last_updated: "2026-01-31", + modalities: { input: ["image", "text"], output: ["image"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 46864, output: 46864 }, + }, + "black-forest-labs/flux.2-klein-4b": { + id: "black-forest-labs/flux.2-klein-4b", + name: "FLUX.2 Klein 4B", + family: "flux", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-06", + release_date: "2026-01-14", + last_updated: "2026-01-31", + modalities: { input: ["image", "text"], output: ["image"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 40960, output: 40960 }, + }, + "nousresearch/hermes-3-llama-3.1-405b:free": { + id: "nousresearch/hermes-3-llama-3.1-405b:free", + name: "Hermes 3 405B Instruct (free)", + family: "hermes", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2023-12", + release_date: "2024-08-16", + last_updated: "2024-08-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 131072 }, + }, + "nousresearch/hermes-4-405b": { + id: "nousresearch/hermes-4-405b", + name: "Hermes 4 405B", + family: "hermes", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2025-08-25", + last_updated: "2025-08-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3 }, + limit: { context: 131072, output: 131072 }, + }, + "nousresearch/hermes-4-70b": { + id: "nousresearch/hermes-4-70b", + name: "Hermes 4 70B", + family: "hermes", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-12", + release_date: "2025-08-25", + last_updated: "2025-08-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 0.4 }, + limit: { context: 131072, output: 131072 }, + }, + "stepfun/step-3.5-flash:free": { + id: "stepfun/step-3.5-flash:free", + name: "Step 3.5 Flash (free)", + family: "step", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01-29", + last_updated: "2026-01-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 256000 }, + }, + "stepfun/step-3.5-flash": { + id: "stepfun/step-3.5-flash", + name: "Step 3.5 Flash", + family: "step", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01-29", + last_updated: "2026-01-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3, cache_read: 0.02 }, + limit: { context: 256000, output: 256000 }, + }, + "mistralai/mistral-small-3.1-24b-instruct": { + id: "mistralai/mistral-small-3.1-24b-instruct", + name: "Mistral Small 3.1 24B Instruct", + family: "mistral-small", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-03-17", + last_updated: "2025-03-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 8192 }, + }, + "mistralai/devstral-2512": { + id: "mistralai/devstral-2512", + name: "Devstral 2 2512", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-12", + release_date: "2025-09-12", + last_updated: "2025-09-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 262144, output: 262144 }, + }, + "mistralai/codestral-2508": { + id: "mistralai/codestral-2508", + name: "Codestral 2508", + family: "codestral", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-05", + release_date: "2025-08-01", + last_updated: "2025-08-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.9 }, + limit: { context: 256000, output: 256000 }, + }, + "mistralai/mistral-medium-3.1": { + id: "mistralai/mistral-medium-3.1", + name: "Mistral Medium 3.1", + family: "mistral-medium", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-05", + release_date: "2025-08-12", + last_updated: "2025-08-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2 }, + limit: { context: 262144, output: 262144 }, + }, + "mistralai/mistral-small-2603": { + id: "mistralai/mistral-small-2603", + name: "Mistral Small 4", + family: "mistral-small", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2026-03-16", + last_updated: "2026-03-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 262144, output: 262144 }, + }, + "mistralai/mistral-medium-3": { + id: "mistralai/mistral-medium-3", + name: "Mistral Medium 3", + family: "mistral-medium", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-05", + release_date: "2025-05-07", + last_updated: "2025-05-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2 }, + limit: { context: 131072, output: 131072 }, + }, + "mistralai/devstral-small-2505": { + id: "mistralai/devstral-small-2505", + name: "Devstral Small", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2025-05-07", + last_updated: "2025-05-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.06, output: 0.12 }, + limit: { context: 128000, output: 128000 }, + }, + "mistralai/mistral-small-3.2-24b-instruct": { + id: "mistralai/mistral-small-3.2-24b-instruct", + name: "Mistral Small 3.2 24B Instruct", + family: "mistral-small", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-06-20", + last_updated: "2025-06-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 96000, output: 8192 }, + }, + "mistralai/devstral-medium-2507": { + id: "mistralai/devstral-medium-2507", + name: "Devstral Medium", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-05", + release_date: "2025-07-10", + last_updated: "2025-07-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 2 }, + limit: { context: 131072, output: 131072 }, + }, + "mistralai/devstral-small-2507": { + id: "mistralai/devstral-small-2507", + name: "Devstral Small 1.1", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-05", + release_date: "2025-07-10", + last_updated: "2025-07-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 131072, output: 131072 }, + }, + "meta-llama/llama-3.2-11b-vision-instruct": { + id: "meta-llama/llama-3.2-11b-vision-instruct", + name: "Llama 3.2 11B Vision Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-12", + release_date: "2024-09-25", + last_updated: "2024-09-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 8192 }, + }, + "meta-llama/llama-3.2-3b-instruct:free": { + id: "meta-llama/llama-3.2-3b-instruct:free", + name: "Llama 3.2 3B Instruct (free)", + family: "llama", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-12", + release_date: "2024-09-25", + last_updated: "2024-09-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 131072 }, + }, + "meta-llama/llama-3.3-70b-instruct:free": { + id: "meta-llama/llama-3.3-70b-instruct:free", + name: "Llama 3.3 70B Instruct (free)", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-12", + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 131072 }, + }, + "x-ai/grok-4.20-multi-agent-beta": { + id: "x-ai/grok-4.20-multi-agent-beta", + name: "Grok 4.20 Multi - Agent Beta", + family: "grok", + attachment: true, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2026-03-12", + last_updated: "2026-03-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6, cache_read: 0.2, context_over_200k: { input: 4, output: 12 } }, + limit: { context: 2000000, output: 30000 }, + status: "beta", + }, + "x-ai/grok-4-fast": { + id: "x-ai/grok-4-fast", + name: "Grok 4 Fast", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-08-19", + last_updated: "2025-08-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05, cache_write: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + "x-ai/grok-code-fast-1": { + id: "x-ai/grok-code-fast-1", + name: "Grok Code Fast 1", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-08", + release_date: "2025-08-26", + last_updated: "2025-08-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.5, cache_read: 0.02 }, + limit: { context: 256000, output: 10000 }, + }, + "x-ai/grok-3-beta": { + id: "x-ai/grok-3-beta", + name: "Grok 3 Beta", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.75, cache_write: 15 }, + limit: { context: 131072, output: 8192 }, + }, + "x-ai/grok-4": { + id: "x-ai/grok-4", + name: "Grok 4", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.75, cache_write: 15 }, + limit: { context: 256000, output: 64000 }, + }, + "x-ai/grok-3-mini": { + id: "x-ai/grok-3-mini", + name: "Grok 3 Mini", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.5, cache_read: 0.075, cache_write: 0.5 }, + limit: { context: 131072, output: 8192 }, + }, + "x-ai/grok-4.1-fast": { + id: "x-ai/grok-4.1-fast", + name: "Grok 4.1 Fast", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-11-19", + last_updated: "2025-11-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05, cache_write: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + "x-ai/grok-4.20-beta": { + id: "x-ai/grok-4.20-beta", + name: "Grok 4.20 Beta", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-12", + last_updated: "2026-03-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6, cache_read: 0.2, context_over_200k: { input: 4, output: 12 } }, + limit: { context: 2000000, output: 30000 }, + status: "beta", + }, + "x-ai/grok-3-mini-beta": { + id: "x-ai/grok-3-mini-beta", + name: "Grok 3 Mini Beta", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.5, cache_read: 0.075, cache_write: 0.5 }, + limit: { context: 131072, output: 8192 }, + }, + "x-ai/grok-3": { + id: "x-ai/grok-3", + name: "Grok 3", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.75, cache_write: 15 }, + limit: { context: 131072, output: 8192 }, + }, + "prime-intellect/intellect-3": { + id: "prime-intellect/intellect-3", + name: "Intellect 3", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-01-15", + last_updated: "2025-01-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 1.1 }, + limit: { context: 131072, output: 8192 }, + }, + "nvidia/nemotron-3-super-120b-a12b": { + id: "nvidia/nemotron-3-super-120b-a12b", + name: "Nemotron 3 Super", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2026-03-11", + last_updated: "2026-03-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.5 }, + limit: { context: 262144, output: 262144 }, + }, + "nvidia/nemotron-3-nano-30b-a3b:free": { + id: "nvidia/nemotron-3-nano-30b-a3b:free", + name: "Nemotron 3 Nano 30B A3B (free)", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-11", + release_date: "2025-12-14", + last_updated: "2026-01-31", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 256000 }, + }, + "nvidia/nemotron-nano-9b-v2:free": { + id: "nvidia/nemotron-nano-9b-v2:free", + name: "Nemotron Nano 9B V2 (free)", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-09", + release_date: "2025-09-05", + last_updated: "2025-08-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 128000 }, + }, + "nvidia/nemotron-3-super-120b-a12b:free": { + id: "nvidia/nemotron-3-super-120b-a12b:free", + name: "Nemotron 3 Super (free)", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2026-03-11", + last_updated: "2026-03-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 262144 }, + }, + "nvidia/nemotron-nano-9b-v2": { + id: "nvidia/nemotron-nano-9b-v2", + name: "nvidia-nemotron-nano-9b-v2", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-09", + release_date: "2025-08-18", + last_updated: "2025-08-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.04, output: 0.16 }, + limit: { context: 131072, output: 131072 }, + }, + "nvidia/nemotron-nano-12b-v2-vl:free": { + id: "nvidia/nemotron-nano-12b-v2-vl:free", + name: "Nemotron Nano 12B 2 VL (free)", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-11", + release_date: "2025-10-28", + last_updated: "2026-01-31", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 128000 }, + }, + "inception/mercury-2": { + id: "inception/mercury-2", + name: "Mercury 2", + family: "mercury", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-03-04", + last_updated: "2026-03-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 0.75, cache_read: 0.025 }, + limit: { context: 128000, output: 50000 }, + }, + "inception/mercury": { + id: "inception/mercury", + name: "Mercury", + family: "mercury", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-06-26", + last_updated: "2025-06-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 0.75, cache_read: 0.025 }, + limit: { context: 128000, output: 32000 }, + }, + "inception/mercury-coder": { + id: "inception/mercury-coder", + name: "Mercury Coder", + family: "mercury", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-30", + last_updated: "2025-04-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 0.75, cache_read: 0.025 }, + limit: { context: 128000, output: 32000 }, + }, + "openai/gpt-5.1-codex-max": { + id: "openai/gpt-5.1-codex-max", + name: "GPT-5.1-Codex-Max", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 9, cache_read: 0.11 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.2-chat": { + id: "openai/gpt-5.2-chat", name: "GPT-5.2 Chat", family: "gpt-codex", attachment: true, @@ -57151,294 +13505,109 @@ export const snapshot = { cost: { input: 1.75, output: 14, cache_read: 0.175 }, limit: { context: 128000, output: 16384 }, }, - "gpt-5-chat": { - id: "gpt-5-chat", - name: "GPT-5 Chat", + "openai/gpt-oss-120b:exacto": { + id: "openai/gpt-oss-120b:exacto", + name: "GPT OSS 120B (exacto)", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.24 }, + limit: { context: 131072, output: 32768 }, + }, + "openai/gpt-5-chat": { + id: "openai/gpt-5-chat", + name: "GPT-5 Chat (latest)", family: "gpt-codex", attachment: true, reasoning: true, tool_call: false, - temperature: false, - knowledge: "2024-10-24", + structured_output: true, + temperature: true, + knowledge: "2024-09-30", release_date: "2025-08-07", last_updated: "2025-08-07", modalities: { input: ["text", "image"], output: ["text"] }, open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.13 }, - limit: { context: 128000, output: 16384 }, - }, - "grok-4": { - id: "grok-4", - name: "Grok 4", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, reasoning: 15, cache_read: 0.75 }, - limit: { context: 256000, output: 64000 }, - }, - "gpt-5.1-chat": { - id: "gpt-5.1-chat", - name: "GPT-5.1 Chat", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text", "image", "audio"], output: ["text", "image", "audio"] }, - open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.125 }, - limit: { context: 128000, output: 16384 }, - }, - "meta-llama-3-8b-instruct": { - id: "meta-llama-3-8b-instruct", - name: "Meta-Llama-3-8B-Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-12", - release_date: "2024-04-18", - last_updated: "2024-04-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.61 }, - limit: { context: 8192, output: 2048 }, - }, - o3: { - id: "o3", - name: "o3", - family: "o", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05", - release_date: "2025-04-16", - last_updated: "2025-04-16", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 200000, output: 100000 }, - }, - "llama-3.2-11b-vision-instruct": { - id: "llama-3.2-11b-vision-instruct", - name: "Llama-3.2-11B-Vision-Instruct", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-09-25", - last_updated: "2024-09-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.37, output: 0.37 }, - limit: { context: 128000, output: 8192 }, - }, - "meta-llama-3-70b-instruct": { - id: "meta-llama-3-70b-instruct", - name: "Meta-Llama-3-70B-Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-12", - release_date: "2024-04-18", - last_updated: "2024-04-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.68, output: 3.54 }, - limit: { context: 8192, output: 2048 }, - }, - "deepseek-r1-0528": { - id: "deepseek-r1-0528", - name: "DeepSeek-R1-0528", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-05-28", - last_updated: "2025-05-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.35, output: 5.4 }, - limit: { context: 163840, output: 163840 }, - }, - "gpt-3.5-turbo-0301": { - id: "gpt-3.5-turbo-0301", - name: "GPT-3.5 Turbo 0301", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2021-08", - release_date: "2023-03-01", - last_updated: "2023-03-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.5, output: 2 }, - limit: { context: 4096, output: 4096 }, - }, - "text-embedding-3-small": { - id: "text-embedding-3-small", - name: "text-embedding-3-small", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - release_date: "2024-01-25", - last_updated: "2024-01-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.02, output: 0 }, - limit: { context: 8191, output: 1536 }, - }, - "deepseek-r1": { - id: "deepseek-r1", - name: "DeepSeek-R1", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2024-07", - release_date: "2025-01-20", - last_updated: "2025-01-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.35, output: 5.4 }, - limit: { context: 163840, output: 163840 }, - }, - "phi-4-mini": { - id: "phi-4-mini", - name: "Phi-4-mini", - family: "phi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.075, output: 0.3 }, - limit: { context: 128000, output: 4096 }, - }, - "deepseek-v3.2-speciale": { - id: "deepseek-v3.2-speciale", - name: "DeepSeek-V3.2-Speciale", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2024-07", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.58, output: 1.68 }, - limit: { context: 128000, output: 128000 }, - }, - "gpt-4.1-nano": { - id: "gpt-4.1-nano", - name: "GPT-4.1 nano", - family: "gpt-nano", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-05", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.4, cache_read: 0.03 }, - limit: { context: 1047576, output: 32768 }, - }, - "cohere-command-r-08-2024": { - id: "cohere-command-r-08-2024", - name: "Command R", - family: "command-r", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-06-01", - release_date: "2024-08-30", - last_updated: "2024-08-30", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 128000, output: 4000 }, - }, - "gpt-3.5-turbo-0613": { - id: "gpt-3.5-turbo-0613", - name: "GPT-3.5 Turbo 0613", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2021-08", - release_date: "2023-06-13", - last_updated: "2023-06-13", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 4 }, - limit: { context: 16384, output: 16384 }, - }, - "text-embedding-3-large": { - id: "text-embedding-3-large", - name: "text-embedding-3-large", - family: "text-embedding", - attachment: false, - reasoning: false, - tool_call: false, - release_date: "2024-01-25", - last_updated: "2024-01-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.13, output: 0 }, - limit: { context: 8191, output: 3072 }, - }, - "gpt-5.1-codex-mini": { - id: "gpt-5.1-codex-mini", - name: "GPT-5.1 Codex Mini", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2024-09-30", - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.025 }, + cost: { input: 1.25, output: 10 }, limit: { context: 400000, output: 128000 }, }, - "gpt-5.2": { - id: "gpt-5.2", + "openai/gpt-5.2-pro": { + id: "openai/gpt-5.2-pro", + name: "GPT-5.2 Pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 21, output: 168 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5-mini": { + id: "openai/gpt-5-mini", + name: "GPT-5 Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-10-01", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5-nano": { + id: "openai/gpt-5-nano", + name: "GPT-5 Nano", + family: "gpt-nano", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-10-01", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.4 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.3-codex": { + id: "openai/gpt-5.3-codex", + name: "GPT-5.3-Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-02-24", + last_updated: "2026-02-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.2": { + id: "openai/gpt-5.2", name: "GPT-5.2", family: "gpt", attachment: true, @@ -57451,198 +13620,85 @@ export const snapshot = { last_updated: "2025-12-11", modalities: { input: ["text", "image"], output: ["text"] }, open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.125 }, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, limit: { context: 400000, output: 128000 }, }, - "kimi-k2.5": { - id: "kimi-k2.5", - name: "Kimi K2.5", - family: "kimi", + "openai/gpt-oss-20b:free": { + id: "openai/gpt-oss-20b:free", + name: "gpt-oss-20b (free)", + family: "gpt-oss", attachment: false, reasoning: true, tool_call: true, - interleaved: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2026-01-31", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 32768 }, + }, + "openai/gpt-4o-mini": { + id: "openai/gpt-4o-mini", + name: "GPT-4o-mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, structured_output: true, temperature: true, - knowledge: "2025-01", - release_date: "2026-02-06", - last_updated: "2026-02-06", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 3 }, - limit: { context: 262144, output: 262144 }, - provider: { - npm: "@ai-sdk/openai-compatible", - api: "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/models", - shape: "completions", - }, - }, - "deepseek-v3-0324": { - id: "deepseek-v3-0324", - name: "DeepSeek-V3-0324", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-03-24", - last_updated: "2025-03-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 1.14, output: 4.56 }, - limit: { context: 131072, output: 131072 }, - }, - "model-router": { - id: "model-router", - name: "Model Router", - family: "model-router", - attachment: true, - reasoning: false, - tool_call: true, - release_date: "2025-05-19", - last_updated: "2025-11-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.14, output: 0 }, - limit: { context: 128000, output: 16384 }, - }, - "gpt-4.1": { - id: "gpt-4.1", - name: "GPT-4.1", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-05", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 8, cache_read: 0.5 }, - limit: { context: 1047576, output: 32768 }, - }, - "gpt-4-turbo": { - id: "gpt-4-turbo", - name: "GPT-4 Turbo", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-11", - release_date: "2023-11-06", - last_updated: "2024-04-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 10, output: 30 }, - limit: { context: 128000, output: 4096 }, - }, - "mistral-nemo": { - id: "mistral-nemo", - name: "Mistral Nemo", - family: "mistral-nemo", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07", + knowledge: "2024-10", release_date: "2024-07-18", last_updated: "2024-07-18", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.15 }, - limit: { context: 128000, output: 128000 }, - }, - "deepseek-v3.2": { - id: "deepseek-v3.2", - name: "DeepSeek-V3.2", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-12-01", - last_updated: "2025-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.58, output: 1.68 }, - limit: { context: 128000, output: 128000 }, - }, - "cohere-embed-v-4-0": { - id: "cohere-embed-v-4-0", - name: "Embed v4", - family: "cohere-embed", - attachment: true, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2025-04-15", - last_updated: "2025-04-15", modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.12, output: 0 }, - limit: { context: 128000, output: 1536 }, - }, - "grok-3-mini": { - id: "grok-3-mini", - name: "Grok 3 Mini", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 0.3, output: 0.5, reasoning: 0.5, cache_read: 0.075 }, - limit: { context: 131072, output: 8192 }, + cost: { input: 0.15, output: 0.6, cache_read: 0.08 }, + limit: { context: 128000, output: 16384 }, }, - "gpt-4-32k": { - id: "gpt-4-32k", - name: "GPT-4 32K", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-11", - release_date: "2023-03-14", - last_updated: "2023-03-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 60, output: 120 }, - limit: { context: 32768, output: 32768 }, - }, - "gpt-5": { - id: "gpt-5", - name: "GPT-5", - family: "gpt", + "openai/gpt-5.4-mini": { + id: "openai/gpt-5.4-mini", + name: "GPT-5.4 Mini", + family: "gpt-mini", attachment: true, reasoning: true, tool_call: true, - temperature: false, + structured_output: true, + temperature: true, + knowledge: "2025-08-31", + release_date: "2026-03-17", + last_updated: "2026-03-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 7.5e-7, output: 0.0000045, cache_read: 7.5e-8 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.1-chat": { + id: "openai/gpt-5.1-chat", + name: "GPT-5.1 Chat", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, knowledge: "2024-09-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", + release_date: "2025-11-13", + last_updated: "2025-11-13", modalities: { input: ["text", "image"], output: ["text"] }, open_weights: false, - cost: { input: 1.25, output: 10, cache_read: 0.13 }, - limit: { context: 272000, output: 128000 }, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 128000, output: 16384 }, }, - "o4-mini": { - id: "o4-mini", - name: "o4-mini", + "openai/o4-mini": { + id: "openai/o4-mini", + name: "o4 Mini", family: "o-mini", attachment: true, reasoning: true, tool_call: true, - temperature: false, - knowledge: "2024-05", + structured_output: true, + temperature: true, + knowledge: "2024-06", release_date: "2025-04-16", last_updated: "2025-04-16", modalities: { input: ["text", "image"], output: ["text"] }, @@ -57650,73 +13706,127 @@ export const snapshot = { cost: { input: 1.1, output: 4.4, cache_read: 0.28 }, limit: { context: 200000, output: 100000 }, }, - "phi-4": { - id: "phi-4", - name: "Phi-4", - family: "phi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.125, output: 0.5 }, - limit: { context: 128000, output: 4096 }, - }, - "gpt-4.1-mini": { - id: "gpt-4.1-mini", - name: "GPT-4.1 mini", - family: "gpt-mini", + "openai/gpt-5.4-nano": { + id: "openai/gpt-5.4-nano", + name: "GPT-5.4 Nano", + family: "gpt-nano", attachment: true, reasoning: false, tool_call: true, + structured_output: true, temperature: true, - knowledge: "2024-05", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, + knowledge: "2025-08-31", + release_date: "2026-03-17", + last_updated: "2026-03-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, open_weights: false, - cost: { input: 0.4, output: 1.6, cache_read: 0.1 }, - limit: { context: 1047576, output: 32768 }, + cost: { input: 2e-7, output: 0.00000125, cache_read: 2e-8 }, + limit: { context: 400000, output: 128000 }, }, - "phi-4-reasoning-plus": { - id: "phi-4-reasoning-plus", - name: "Phi-4-reasoning-plus", - family: "phi", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.125, output: 0.5 }, - limit: { context: 32000, output: 4096 }, - }, - "kimi-k2-thinking": { - id: "kimi-k2-thinking", - name: "Kimi K2 Thinking", - family: "kimi-thinking", - attachment: false, + "openai/gpt-5.2-codex": { + id: "openai/gpt-5.2-codex", + name: "GPT-5.2-Codex", + family: "gpt-codex", + attachment: true, reasoning: true, tool_call: true, - interleaved: true, + structured_output: true, temperature: true, - knowledge: "2024-08", - release_date: "2025-11-06", - last_updated: "2025-12-02", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, - limit: { context: 262144, output: 262144 }, + knowledge: "2025-08-31", + release_date: "2026-01-14", + last_updated: "2026-01-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, output: 128000 }, }, - "gpt-5.4": { - id: "gpt-5.4", + "openai/gpt-5.1-codex-mini": { + id: "openai/gpt-5.1-codex-mini", + name: "GPT-5.1-Codex-Mini", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.025 }, + limit: { context: 400000, output: 100000 }, + }, + "openai/gpt-5-image": { + id: "openai/gpt-5-image", + name: "GPT-5 Image", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-10-01", + release_date: "2025-10-14", + last_updated: "2025-10-14", + modalities: { input: ["text", "image", "pdf"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 5, output: 10, cache_read: 1.25 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.1": { + id: "openai/gpt-5.1", + name: "GPT-5.1", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.4-pro": { + id: "openai/gpt-5.4-pro", + name: "GPT-5.4 Pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 30, output: 180, cache_read: 30 }, + limit: { context: 1050000, input: 922000, output: 128000 }, + }, + "openai/gpt-5-codex": { + id: "openai/gpt-5-codex", + name: "GPT-5 Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-10-01", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.4": { + id: "openai/gpt-5.4", name: "GPT-5.4", family: "gpt", attachment: true, @@ -57729,325 +13839,1489 @@ export const snapshot = { last_updated: "2026-03-05", modalities: { input: ["text", "image", "pdf"], output: ["text"] }, open_weights: false, - cost: { input: 2.5, output: 15, cache_read: 0.25 }, - limit: { context: 400000, input: 272000, output: 128000 }, + cost: { + input: 2.5, + output: 15, + cache_read: 0.25, + context_over_200k: { input: 5, output: 22.5, cache_read: 0.5 }, + }, + limit: { context: 1050000, input: 922000, output: 128000 }, }, - "codex-mini": { - id: "codex-mini", - name: "Codex Mini", - family: "gpt-codex-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-04", - release_date: "2025-05-16", - last_updated: "2025-05-16", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.5, output: 6, cache_read: 0.375 }, - limit: { context: 200000, output: 100000 }, - }, - "phi-3-mini-4k-instruct": { - id: "phi-3-mini-4k-instruct", - name: "Phi-3-mini-instruct (4k)", - family: "phi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-04-23", - last_updated: "2024-04-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.13, output: 0.52 }, - limit: { context: 4096, output: 1024 }, - }, - "meta-llama-3.1-70b-instruct": { - id: "meta-llama-3.1-70b-instruct", - name: "Meta-Llama-3.1-70B-Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 2.68, output: 3.54 }, - limit: { context: 128000, output: 32768 }, - }, - "o1-preview": { - id: "o1-preview", - name: "o1-preview", - family: "o", + "openai/gpt-oss-20b": { + id: "openai/gpt-oss-20b", + name: "GPT OSS 20B", + family: "gpt-oss", attachment: false, reasoning: true, tool_call: true, - temperature: false, - knowledge: "2023-09", - release_date: "2024-09-12", - last_updated: "2024-09-12", + structured_output: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 16.5, output: 66, cache_read: 8.25 }, - limit: { context: 128000, output: 32768 }, + open_weights: true, + cost: { input: 0.05, output: 0.2 }, + limit: { context: 131072, output: 32768 }, }, - "gpt-5.4-pro": { - id: "gpt-5.4-pro", - name: "GPT-5.4 Pro", + "openai/gpt-5-pro": { + id: "openai/gpt-5-pro", + name: "GPT-5 Pro", family: "gpt-pro", attachment: true, reasoning: true, tool_call: true, - structured_output: false, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-05", - last_updated: "2026-03-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 30, output: 180 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - "gpt-5.3-chat": { - id: "gpt-5.3-chat", - name: "GPT-5.3 Chat", - family: "gpt-codex", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-03", - last_updated: "2026-03-03", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.75, output: 14, cache_read: 0.175 }, - limit: { context: 128000, output: 16384 }, - }, - "meta-llama-3.1-8b-instruct": { - id: "meta-llama-3.1-8b-instruct", - name: "Meta-Llama-3.1-8B-Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 0.61 }, - limit: { context: 128000, output: 32768 }, - }, - "claude-haiku-4-5": { - id: "claude-haiku-4-5", - name: "Claude Haiku 4.5", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - knowledge: "2025-02-31", - release_date: "2025-11-18", - last_updated: "2025-11-18", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, - limit: { context: 200000, output: 64000 }, - provider: { - npm: "@ai-sdk/anthropic", - api: "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", - }, - }, - "gpt-5.1-codex": { - id: "gpt-5.1-codex", - name: "GPT-5.1 Codex", - family: "gpt-codex", - attachment: false, - reasoning: true, - tool_call: true, structured_output: true, temperature: false, knowledge: "2024-09-30", - release_date: "2025-11-14", - last_updated: "2025-11-14", - modalities: { input: ["text", "image", "audio"], output: ["text", "image", "audio"] }, + release_date: "2025-10-06", + last_updated: "2025-10-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 120 }, + limit: { context: 400000, output: 272000 }, + }, + "openai/gpt-oss-120b:free": { + id: "openai/gpt-oss-120b:free", + name: "gpt-oss-120b (free)", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 32768 }, + }, + "openai/gpt-5": { + id: "openai/gpt-5", + name: "GPT-5", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-10-01", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-oss-safeguard-20b": { + id: "openai/gpt-oss-safeguard-20b", + name: "GPT OSS Safeguard 20B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-10-29", + last_updated: "2025-10-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.075, output: 0.3 }, + limit: { context: 131072, output: 65536 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "GPT OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.072, output: 0.28 }, + limit: { context: 131072, output: 32768 }, + }, + "openai/gpt-4.1": { + id: "openai/gpt-4.1", + name: "GPT-4.1", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 1047576, output: 32768 }, + }, + "openai/gpt-4.1-mini": { + id: "openai/gpt-4.1-mini", + name: "GPT-4.1 Mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.6, cache_read: 0.1 }, + limit: { context: 1047576, output: 32768 }, + }, + "openai/gpt-5.1-codex": { + id: "openai/gpt-5.1-codex", + name: "GPT-5.1-Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, open_weights: false, cost: { input: 1.25, output: 10, cache_read: 0.125 }, limit: { context: 400000, output: 128000 }, }, - "mistral-large-2411": { - id: "mistral-large-2411", - name: "Mistral Large 24.11", - family: "mistral-large", + "z-ai/glm-4.7": { + id: "z-ai/glm-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2, cache_read: 0.11 }, + limit: { context: 204800, output: 131072 }, + }, + "z-ai/glm-4.5-air:free": { + id: "z-ai/glm-4.5-air:free", + name: "GLM 4.5 Air (free)", + family: "glm-air", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 96000 }, + }, + "z-ai/glm-5": { + id: "z-ai/glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3.2, cache_read: 0.2 }, + limit: { context: 202752, output: 131000 }, + }, + "z-ai/glm-5.1": { + id: "z-ai/glm-5.1", + name: "GLM-5.1", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-04-07", + last_updated: "2026-04-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.4, output: 4.4, cache_read: 0.26 }, + limit: { context: 202752, output: 131072 }, + }, + "z-ai/glm-4.5": { + id: "z-ai/glm-4.5", + name: "GLM 4.5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2 }, + limit: { context: 128000, output: 96000 }, + }, + "z-ai/glm-4.6:exacto": { + id: "z-ai/glm-4.6:exacto", + name: "GLM 4.6 (exacto)", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-09", + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 1.9, cache_read: 0.11 }, + limit: { context: 200000, output: 128000 }, + }, + "z-ai/glm-4.5-air": { + id: "z-ai/glm-4.5-air", + name: "GLM 4.5 Air", + family: "glm-air", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 1.1 }, + limit: { context: 128000, output: 96000 }, + }, + "z-ai/glm-5-turbo": { + id: "z-ai/glm-5-turbo", + name: "GLM-5-Turbo", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-03-16", + last_updated: "2026-03-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.96, output: 3.2, cache_read: 0.192, cache_write: 0 }, + limit: { context: 202752, output: 131072 }, + }, + "z-ai/glm-4.5v": { + id: "z-ai/glm-4.5v", + name: "GLM 4.5V", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-08-11", + last_updated: "2025-08-11", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 1.8 }, + limit: { context: 64000, output: 16384 }, + }, + "z-ai/glm-4.6": { + id: "z-ai/glm-4.6", + name: "GLM 4.6", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-09", + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2, cache_read: 0.11 }, + limit: { context: 200000, output: 128000 }, + }, + "z-ai/glm-4.7-flash": { + id: "z-ai/glm-4.7-flash", + name: "GLM-4.7-Flash", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + structured_output: true, + temperature: true, + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.4 }, + limit: { context: 200000, output: 65535 }, + }, + "sourceful/riverflow-v2-standard-preview": { + id: "sourceful/riverflow-v2-standard-preview", + name: "Riverflow V2 Standard Preview", + family: "sourceful", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-06", + release_date: "2025-12-08", + last_updated: "2026-01-28", + modalities: { input: ["text", "image"], output: ["image"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 8192, output: 8192 }, + }, + "sourceful/riverflow-v2-fast-preview": { + id: "sourceful/riverflow-v2-fast-preview", + name: "Riverflow V2 Fast Preview", + family: "sourceful", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-06", + release_date: "2025-12-08", + last_updated: "2026-01-28", + modalities: { input: ["text", "image"], output: ["image"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 8192, output: 8192 }, + }, + "sourceful/riverflow-v2-max-preview": { + id: "sourceful/riverflow-v2-max-preview", + name: "Riverflow V2 Max Preview", + family: "sourceful", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-06", + release_date: "2025-12-08", + last_updated: "2026-01-28", + modalities: { input: ["text", "image"], output: ["image"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 8192, output: 8192 }, + }, + "minimax/minimax-m2.7": { + id: "minimax/minimax-m2.7", + name: "MiniMax M2.7", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.06, cache_write: 0.375 }, + limit: { context: 204800, output: 131072 }, + }, + "minimax/minimax-m2": { + id: "minimax/minimax-m2", + name: "MiniMax M2", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + structured_output: true, + temperature: true, + release_date: "2025-10-23", + last_updated: "2025-10-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.28, output: 1.15, cache_read: 0.28, cache_write: 1.15 }, + limit: { context: 196600, output: 118000 }, + }, + "minimax/minimax-01": { + id: "minimax/minimax-01", + name: "MiniMax-01", + family: "minimax", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-01-15", + last_updated: "2025-01-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 1.1 }, + limit: { context: 1000000, output: 1000000 }, + }, + "minimax/minimax-m2.1": { + id: "minimax/minimax-m2.1", + name: "MiniMax M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + structured_output: true, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 204800, output: 131072 }, + }, + "minimax/minimax-m2.5:free": { + id: "minimax/minimax-m2.5:free", + name: "MiniMax M2.5 (free)", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + structured_output: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "minimax/minimax-m1": { + id: "minimax/minimax-m1", + name: "MiniMax M1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 2.2 }, + limit: { context: 1000000, output: 40000 }, + }, + "minimax/minimax-m2.5": { + id: "minimax/minimax-m2.5", + name: "MiniMax M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + structured_output: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.03 }, + limit: { context: 204800, output: 131072 }, + }, + "qwen/qwen3.5-397b-a17b": { + id: "qwen/qwen3.5-397b-a17b", + name: "Qwen3.5 397B A17B", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02-16", + last_updated: "2026-02-16", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3.6 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen/qwen2.5-vl-72b-instruct": { + id: "qwen/qwen2.5-vl-72b-instruct", + name: "Qwen2.5 VL 72B Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-02-01", + last_updated: "2025-02-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 32768, output: 8192 }, + }, + "qwen/qwen3-coder:free": { + id: "qwen/qwen3-coder:free", + name: "Qwen3 Coder 480B A35B Instruct (free)", + family: "qwen", attachment: false, reasoning: false, tool_call: true, temperature: true, - knowledge: "2024-09", - release_date: "2024-11-01", - last_updated: "2024-11-01", + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 66536 }, + }, + "qwen/qwen3.5-flash-02-23": { + id: "qwen/qwen3.5-flash-02-23", + name: "Qwen: Qwen3.5-Flash", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-25", + last_updated: "2026-02-25", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.065, output: 0.26 }, + limit: { context: 1000000, output: 65536 }, + }, + "qwen/qwen3.6-plus": { + id: "qwen/qwen3.6-plus", + name: "Qwen3.6 Plus", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-04-02", + last_updated: "2026-04-02", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.325, output: 1.95 }, + limit: { context: 1000000, output: 65536 }, + }, + "qwen/qwen3-max": { + id: "qwen/qwen3-max", + name: "Qwen3 Max", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-09-05", + last_updated: "2025-09-05", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 2, output: 6 }, - limit: { context: 128000, output: 32768 }, + cost: { input: 1.2, output: 6 }, + limit: { context: 262144, output: 32768 }, }, - "claude-opus-4-5": { - id: "claude-opus-4-5", - name: "Claude Opus 4.5", + "qwen/qwen3-coder:exacto": { + id: "qwen/qwen3-coder:exacto", + name: "Qwen3 Coder (exacto)", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.38, output: 1.53 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen/qwen3-30b-a3b-instruct-2507": { + id: "qwen/qwen3-30b-a3b-instruct-2507", + name: "Qwen3 30B A3B Instruct 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-29", + last_updated: "2025-07-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 262000, output: 262000 }, + }, + "qwen/qwen3-235b-a22b-thinking-2507": { + id: "qwen/qwen3-235b-a22b-thinking-2507", + name: "Qwen3 235B A22B Thinking 2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-25", + last_updated: "2025-07-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.078, output: 0.312 }, + limit: { context: 262144, output: 81920 }, + }, + "qwen/qwen3-next-80b-a3b-thinking": { + id: "qwen/qwen3-next-80b-a3b-thinking", + name: "Qwen3 Next 80B A3B Thinking", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-11", + last_updated: "2025-09-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.14, output: 1.4 }, + limit: { context: 262144, output: 262144 }, + }, + "qwen/qwen3-30b-a3b-thinking-2507": { + id: "qwen/qwen3-30b-a3b-thinking-2507", + name: "Qwen3 30B A3B Thinking 2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-29", + last_updated: "2025-07-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 262000, output: 262000 }, + }, + "qwen/qwen3-4b:free": { + id: "qwen/qwen3-4b:free", + name: "Qwen3 4B (free)", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04-30", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 40960, output: 40960 }, + }, + "qwen/qwen3-next-80b-a3b-instruct:free": { + id: "qwen/qwen3-next-80b-a3b-instruct:free", + name: "Qwen3 Next 80B A3B Instruct (free)", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-11", + last_updated: "2025-09-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 262144 }, + }, + "qwen/qwen3-coder-flash": { + id: "qwen/qwen3-coder-flash", + name: "Qwen3 Coder Flash", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.5 }, + limit: { context: 128000, output: 66536 }, + }, + "qwen/qwen3-next-80b-a3b-instruct": { + id: "qwen/qwen3-next-80b-a3b-instruct", + name: "Qwen3 Next 80B A3B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-11", + last_updated: "2025-09-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.14, output: 1.4 }, + limit: { context: 262144, output: 262144 }, + }, + "qwen/qwen-2.5-coder-32b-instruct": { + id: "qwen/qwen-2.5-coder-32b-instruct", + name: "Qwen2.5 Coder 32B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-11-11", + last_updated: "2024-11-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 32768, output: 8192 }, + }, + "qwen/qwen3-coder-30b-a3b-instruct": { + id: "qwen/qwen3-coder-30b-a3b-instruct", + name: "Qwen3 Coder 30B A3B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-31", + last_updated: "2025-07-31", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.27 }, + limit: { context: 160000, output: 65536 }, + }, + "qwen/qwen3-coder": { + id: "qwen/qwen3-coder", + name: "Qwen3 Coder", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 262144, output: 66536 }, + }, + "qwen/qwen3.5-plus-02-15": { + id: "qwen/qwen3.5-plus-02-15", + name: "Qwen3.5 Plus 2026-02-15", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02-16", + last_updated: "2026-02-16", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2.4 }, + limit: { context: 1000000, output: 65536 }, + }, + "qwen/qwen3-235b-a22b-07-25": { + id: "qwen/qwen3-235b-a22b-07-25", + name: "Qwen3 235B A22B Instruct 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04-28", + last_updated: "2025-07-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.85 }, + limit: { context: 262144, output: 131072 }, + }, + "google/gemini-2.5-pro-preview-05-06": { + id: "google/gemini-2.5-pro-preview-05-06", + name: "Gemini 2.5 Pro Preview 05-06", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-05-06", + last_updated: "2025-05-06", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.31 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-3.1-pro-preview-customtools": { + id: "google/gemini-3.1-pro-preview-customtools", + name: "Gemini 3.1 Pro Preview Custom Tools", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-02-19", + last_updated: "2026-02-19", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, reasoning: 12, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemma-3-4b-it:free": { + id: "google/gemma-3-4b-it:free", + name: "Gemma 3 4B (free)", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-10", + release_date: "2025-03-13", + last_updated: "2025-03-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 32768, output: 8192 }, + }, + "google/gemini-2.5-flash-lite-preview-09-2025": { + id: "google/gemini-2.5-flash-lite-preview-09-2025", + name: "Gemini 2.5 Flash Lite Preview 09-25", + family: "gemini-flash-lite", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-2.0-flash-001": { + id: "google/gemini-2.0-flash-001", + name: "Gemini 2.0 Flash", + family: "gemini-flash", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-06", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, + limit: { context: 1048576, output: 8192 }, + }, + "google/gemma-3n-e4b-it": { + id: "google/gemma-3n-e4b-it", + name: "Gemma 3n 4B", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-06", + release_date: "2025-05-20", + last_updated: "2025-05-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.04 }, + limit: { context: 32768, output: 32768 }, + }, + "google/gemini-3.1-flash-lite-preview": { + id: "google/gemini-3.1-flash-lite-preview", + name: "Gemini 3.1 Flash Lite Preview", + family: "gemini-flash-lite", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-03-03", + last_updated: "2026-03-03", + modalities: { input: ["text", "image", "video", "pdf", "audio"], output: ["text"] }, + open_weights: false, + cost: { + input: 0.25, + output: 1.5, + reasoning: 1.5, + cache_read: 0.025, + cache_write: 0.083, + input_audio: 0.5, + output_audio: 0.5, + }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemma-3n-e4b-it:free": { + id: "google/gemma-3n-e4b-it:free", + name: "Gemma 3n 4B (free)", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-06", + release_date: "2025-05-20", + last_updated: "2025-05-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 8192, output: 2000 }, + }, + "google/gemini-3.1-pro-preview": { + id: "google/gemini-3.1-pro-preview", + name: "Gemini 3.1 Pro Preview", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-02-19", + last_updated: "2026-02-19", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, reasoning: 12, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-3-flash-preview": { + id: "google/gemini-3-flash-preview", + name: "Gemini 3 Flash Preview", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 3, cache_read: 0.05 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-3-pro-preview": { + id: "google/gemini-3-pro-preview", + name: "Gemini 3 Pro Preview", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-11-18", + last_updated: "2025-11", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12 }, + limit: { context: 1050000, output: 66000 }, + }, + "google/gemma-3n-e2b-it:free": { + id: "google/gemma-3n-e2b-it:free", + name: "Gemma 3n 2B (free)", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-06", + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 8192, output: 2000 }, + }, + "google/gemini-2.5-pro": { + id: "google/gemini-2.5-pro", + name: "Gemini 2.5 Pro", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-03-20", + last_updated: "2025-06-05", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.31 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemma-2-9b-it": { + id: "google/gemma-2-9b-it", + name: "Gemma 2 9B", + family: "gemma", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-06", + release_date: "2024-06-28", + last_updated: "2024-06-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.09 }, + limit: { context: 8192, output: 8192 }, + }, + "google/gemma-4-31b-it": { + id: "google/gemma-4-31b-it", + name: "Gemma 4 31B", + family: "gemma", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-04-02", + last_updated: "2026-04-02", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.14, output: 0.4 }, + limit: { context: 262144, output: 262144 }, + }, + "google/gemini-2.5-pro-preview-06-05": { + id: "google/gemini-2.5-pro-preview-06-05", + name: "Gemini 2.5 Pro Preview 06-05", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-06-05", + last_updated: "2025-06-05", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.31 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemma-3-12b-it": { + id: "google/gemma-3-12b-it", + name: "Gemma 3 12B", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-03-13", + last_updated: "2025-03-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.1 }, + limit: { context: 131072, output: 131072 }, + }, + "google/gemma-3-27b-it:free": { + id: "google/gemma-3-27b-it:free", + name: "Gemma 3 27B (free)", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-03-12", + last_updated: "2025-03-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 8192 }, + }, + "google/gemini-2.5-flash": { + id: "google/gemini-2.5-flash", + name: "Gemini 2.5 Flash", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-07-17", + last_updated: "2025-07-17", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5, cache_read: 0.0375 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemma-4-31b-it:free": { + id: "google/gemma-4-31b-it:free", + name: "Gemma 4 31B (free)", + family: "gemma", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-04-02", + last_updated: "2026-04-02", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 32768 }, + }, + "google/gemma-3-12b-it:free": { + id: "google/gemma-3-12b-it:free", + name: "Gemma 3 12B (free)", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-10", + release_date: "2025-03-13", + last_updated: "2025-03-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 32768, output: 8192 }, + }, + "google/gemma-3-4b-it": { + id: "google/gemma-3-4b-it", + name: "Gemma 3 4B", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-10", + release_date: "2025-03-13", + last_updated: "2025-03-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.01703, output: 0.06815 }, + limit: { context: 96000, output: 96000 }, + }, + "google/gemini-2.5-flash-preview-09-2025": { + id: "google/gemini-2.5-flash-preview-09-2025", + name: "Gemini 2.5 Flash Preview 09-25", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5, cache_read: 0.031 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemma-3-27b-it": { + id: "google/gemma-3-27b-it", + name: "Gemma 3 27B", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-03-12", + last_updated: "2025-03-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.04, output: 0.15 }, + limit: { context: 96000, output: 96000 }, + }, + "google/gemma-4-26b-a4b-it": { + id: "google/gemma-4-26b-a4b-it", + name: "Gemma 4 26B A4B", + family: "gemma", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-04-03", + last_updated: "2026-04-03", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 0.4 }, + limit: { context: 262144, output: 262144 }, + }, + "google/gemma-4-26b-a4b-it:free": { + id: "google/gemma-4-26b-a4b-it:free", + name: "Gemma 4 26B A4B (free)", + family: "gemma", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-04-03", + last_updated: "2026-04-03", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 32768 }, + }, + "google/gemini-2.5-flash-lite": { + id: "google/gemini-2.5-flash-lite", + name: "Gemini 2.5 Flash Lite", + family: "gemini-flash-lite", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, + limit: { context: 1048576, output: 65536 }, + }, + "moonshotai/kimi-k2.5": { + id: "moonshotai/kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3, cache_read: 0.1 }, + limit: { context: 262144, output: 262144 }, + }, + "moonshotai/kimi-k2-0905": { + id: "moonshotai/kimi-k2-0905", + name: "Kimi K2 Instruct 0905", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5 }, + limit: { context: 262144, output: 16384 }, + }, + "moonshotai/kimi-k2-0905:exacto": { + id: "moonshotai/kimi-k2-0905:exacto", + name: "Kimi K2 Instruct 0905 (exacto)", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5 }, + limit: { context: 262144, output: 16384 }, + }, + "moonshotai/kimi-k2": { + id: "moonshotai/kimi-k2", + name: "Kimi K2", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-07-11", + last_updated: "2025-07-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.2 }, + limit: { context: 131072, output: 32768 }, + }, + "moonshotai/kimi-k2:free": { + id: "moonshotai/kimi-k2:free", + name: "Kimi K2 (free)", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-11", + last_updated: "2025-07-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 32800, output: 32800 }, + }, + "moonshotai/kimi-k2-thinking": { + id: "moonshotai/kimi-k2-thinking", + name: "Kimi K2 Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + structured_output: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-11-06", + last_updated: "2025-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, + limit: { context: 262144, output: 262144 }, + }, + "anthropic/claude-opus-4.1": { + id: "anthropic/claude-opus-4.1", + name: "Claude Opus 4.1", family: "claude-opus", attachment: true, reasoning: true, tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "anthropic/claude-3.7-sonnet": { + id: "anthropic/claude-3.7-sonnet", + name: "Claude Sonnet 3.7", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-01", + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 128000 }, + }, + "anthropic/claude-opus-4.6": { + id: "anthropic/claude-opus-4.6", + name: "Claude Opus 4.6", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-05-30", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 5, + output: 25, + cache_read: 0.5, + cache_write: 6.25, + context_over_200k: { input: 10, output: 37.5, cache_read: 1, cache_write: 12.5 }, + }, + limit: { context: 1000000, output: 128000 }, + }, + "anthropic/claude-sonnet-4": { + id: "anthropic/claude-sonnet-4", + name: "Claude Sonnet 4", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, temperature: true, knowledge: "2025-03-31", - release_date: "2025-11-24", - last_updated: "2025-08-01", + release_date: "2025-05-22", + last_updated: "2025-05-22", modalities: { input: ["text", "image", "pdf"], output: ["text"] }, open_weights: false, - cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, - limit: { context: 200000, output: 64000 }, - provider: { - npm: "@ai-sdk/anthropic", - api: "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", + cost: { + input: 3, + output: 15, + cache_read: 0.3, + cache_write: 3.75, + context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, }, + limit: { context: 200000, output: 64000 }, }, - "phi-4-mini-reasoning": { - id: "phi-4-mini-reasoning", - name: "Phi-4-mini-reasoning", - family: "phi", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.075, output: 0.3 }, - limit: { context: 128000, output: 4096 }, - }, - "gpt-3.5-turbo-0125": { - id: "gpt-3.5-turbo-0125", - name: "GPT-3.5 Turbo 0125", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2021-08", - release_date: "2024-01-25", - last_updated: "2024-01-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 1.5 }, - limit: { context: 16384, output: 16384 }, - }, - "cohere-embed-v3-multilingual": { - id: "cohere-embed-v3-multilingual", - name: "Embed v3 Multilingual", - family: "cohere-embed", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2023-11-07", - last_updated: "2023-11-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0 }, - limit: { context: 512, output: 1024 }, - }, - "phi-3-medium-4k-instruct": { - id: "phi-3-medium-4k-instruct", - name: "Phi-3-medium-instruct (4k)", - family: "phi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-04-23", - last_updated: "2024-04-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.17, output: 0.68 }, - limit: { context: 4096, output: 1024 }, - }, - "cohere-embed-v3-english": { - id: "cohere-embed-v3-english", - name: "Embed v3 English", - family: "cohere-embed", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - release_date: "2023-11-07", - last_updated: "2023-11-07", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0 }, - limit: { context: 512, output: 1024 }, - }, - "o3-mini": { - id: "o3-mini", - name: "o3-mini", - family: "o-mini", - attachment: false, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05", - release_date: "2024-12-20", - last_updated: "2025-01-29", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, - limit: { context: 200000, output: 100000 }, - }, - "grok-4-fast-non-reasoning": { - id: "grok-4-fast-non-reasoning", - name: "Grok 4 Fast (Non-Reasoning)", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-09-19", - last_updated: "2025-09-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 30000 }, - }, - "llama-4-maverick-17b-128e-instruct-fp8": { - id: "llama-4-maverick-17b-128e-instruct-fp8", - name: "Llama 4 Maverick 17B 128E Instruct FP8", - family: "llama", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2025-04-05", - last_updated: "2025-04-05", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.25, output: 1 }, - limit: { context: 128000, output: 8192 }, - }, - "claude-sonnet-4-5": { - id: "claude-sonnet-4-5", + "anthropic/claude-sonnet-4.5": { + id: "anthropic/claude-sonnet-4.5", name: "Claude Sonnet 4.5", family: "claude-sonnet", attachment: true, @@ -58056,318 +15330,219 @@ export const snapshot = { structured_output: true, temperature: true, knowledge: "2025-07-31", - release_date: "2025-11-18", - last_updated: "2025-11-18", + release_date: "2025-09-29", + last_updated: "2025-09-29", modalities: { input: ["text", "image", "pdf"], output: ["text"] }, open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, - limit: { context: 200000, output: 64000 }, - provider: { - npm: "@ai-sdk/anthropic", - api: "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", + cost: { + input: 3, + output: 15, + cache_read: 0.3, + cache_write: 3.75, + context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, }, + limit: { context: 1000000, output: 64000 }, }, - "gpt-5-mini": { - id: "gpt-5-mini", - name: "GPT-5 Mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.25, output: 2, cache_read: 0.03 }, - limit: { context: 272000, output: 128000 }, - }, - "phi-3-mini-128k-instruct": { - id: "phi-3-mini-128k-instruct", - name: "Phi-3-mini-instruct (128k)", - family: "phi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-04-23", - last_updated: "2024-04-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.13, output: 0.52 }, - limit: { context: 128000, output: 4096 }, - }, - "gpt-5.4-nano": { - id: "gpt-5.4-nano", - name: "GPT-5.4 Nano", - family: "gpt-nano", + "anthropic/claude-opus-4.5": { + id: "anthropic/claude-opus-4.5", + name: "Claude Opus 4.5", + family: "claude-opus", attachment: true, reasoning: true, tool_call: true, structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-17", - last_updated: "2026-03-17", + temperature: true, + knowledge: "2025-05-30", + release_date: "2025-11-24", + last_updated: "2025-11-24", modalities: { input: ["text", "image", "pdf"], output: ["text"] }, open_weights: false, - cost: { input: 0.2, output: 1.25, cache_read: 0.02 }, - limit: { context: 400000, input: 272000, output: 128000 }, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 32000 }, }, - "phi-4-reasoning": { - id: "phi-4-reasoning", - name: "Phi-4-reasoning", - family: "phi", - attachment: false, - reasoning: true, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-12-11", - last_updated: "2024-12-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.125, output: 0.5 }, - limit: { context: 32000, output: 4096 }, - }, - "gpt-3.5-turbo-1106": { - id: "gpt-3.5-turbo-1106", - name: "GPT-3.5 Turbo 1106", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2021-08", - release_date: "2023-11-06", - last_updated: "2023-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1, output: 2 }, - limit: { context: 16384, output: 16384 }, - }, - "gpt-4": { - id: "gpt-4", - name: "GPT-4", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-11", - release_date: "2023-03-14", - last_updated: "2023-03-14", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 60, output: 120 }, - limit: { context: 8192, output: 8192 }, - }, - "gpt-5-nano": { - id: "gpt-5-nano", - name: "GPT-5 Nano", - family: "gpt-nano", - attachment: true, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2024-05-30", - release_date: "2025-08-07", - last_updated: "2025-08-07", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.05, output: 0.4, cache_read: 0.01 }, - limit: { context: 272000, output: 128000 }, - }, - "gpt-3.5-turbo-instruct": { - id: "gpt-3.5-turbo-instruct", - name: "GPT-3.5 Turbo Instruct", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2021-08", - release_date: "2023-09-21", - last_updated: "2023-09-21", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.5, output: 2 }, - limit: { context: 4096, output: 4096 }, - }, - "o1-mini": { - id: "o1-mini", - name: "o1-mini", - family: "o-mini", - attachment: false, - reasoning: true, - tool_call: true, - temperature: false, - knowledge: "2023-09", - release_date: "2024-09-12", - last_updated: "2024-09-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, - limit: { context: 128000, output: 65536 }, - }, - "mistral-small-2503": { - id: "mistral-small-2503", - name: "Mistral Small 3.1", - family: "mistral-small", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-09", - release_date: "2025-03-01", - last_updated: "2025-03-01", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.1, output: 0.3 }, - limit: { context: 128000, output: 32768 }, - }, - "codestral-2501": { - id: "codestral-2501", - name: "Codestral 25.01", - family: "codestral", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-03", - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.9 }, - limit: { context: 256000, output: 256000 }, - }, - "gpt-4o": { - id: "gpt-4o", - name: "GPT-4o", - family: "gpt", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-09", - release_date: "2024-05-13", - last_updated: "2024-05-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.5, output: 10, cache_read: 1.25 }, - limit: { context: 128000, output: 16384 }, - }, - "phi-3-small-8k-instruct": { - id: "phi-3-small-8k-instruct", - name: "Phi-3-small-instruct (8k)", - family: "phi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2023-10", - release_date: "2024-04-23", - last_updated: "2024-04-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 8192, output: 2048 }, - }, - "gpt-5.4-mini": { - id: "gpt-5.4-mini", - name: "GPT-5.4 Mini", - family: "gpt-mini", - attachment: true, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: false, - knowledge: "2025-08-31", - release_date: "2026-03-17", - last_updated: "2026-03-17", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 0.75, output: 4.5, cache_read: 0.075 }, - limit: { context: 400000, input: 272000, output: 128000 }, - }, - }, - }, - cortecs: { - id: "cortecs", - env: ["CORTECS_API_KEY"], - npm: "@ai-sdk/openai-compatible", - api: "https://api.cortecs.ai/v1", - name: "Cortecs", - doc: "https://api.cortecs.ai/v1/models", - models: { - "kimi-k2-instruct": { - id: "kimi-k2-instruct", - name: "Kimi K2 Instruct", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-07-11", - last_updated: "2025-09-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.551, output: 2.646 }, - limit: { context: 131000, output: 131000 }, - }, - "claude-opus4-6": { - id: "claude-opus4-6", - name: "Claude Opus 4.6", + "anthropic/claude-opus-4": { + id: "anthropic/claude-opus-4", + name: "Claude Opus 4", family: "claude-opus", attachment: true, reasoning: true, tool_call: true, temperature: true, - knowledge: "2025-05", - release_date: "2026-02-05", - last_updated: "2026-03-13", + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", modalities: { input: ["text", "image", "pdf"], output: ["text"] }, open_weights: false, - cost: { input: 5.98, output: 29.89 }, - limit: { context: 1000000, output: 1000000 }, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, }, - "qwen3-next-80b-a3b-thinking": { - id: "qwen3-next-80b-a3b-thinking", - name: "Qwen3 Next 80B A3B Thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09-11", - last_updated: "2025-09-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.164, output: 1.311 }, - limit: { context: 128000, output: 128000 }, - }, - "qwen3-coder-480b-a35b-instruct": { - id: "qwen3-coder-480b-a35b-instruct", - name: "Qwen3 Coder 480B A35B Instruct", - family: "qwen", - attachment: false, + "anthropic/claude-3.5-haiku": { + id: "anthropic/claude-3.5-haiku", + name: "Claude Haiku 3.5", + family: "claude-haiku", + attachment: true, reasoning: false, tool_call: true, temperature: true, - knowledge: "2025-01", - release_date: "2025-07-25", - last_updated: "2025-07-25", + knowledge: "2024-07-31", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, + limit: { context: 200000, output: 8192 }, + }, + "anthropic/claude-haiku-4.5": { + id: "anthropic/claude-haiku-4.5", + name: "Claude Haiku 4.5", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-02-28", + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-sonnet-4.6": { + id: "anthropic/claude-sonnet-4.6", + name: "Claude Sonnet 4.6", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-17", + last_updated: "2026-02-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { + input: 3, + output: 15, + cache_read: 0.3, + cache_write: 3.75, + context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, + }, + limit: { context: 1000000, output: 128000 }, + }, + "xiaomi/mimo-v2-omni": { + id: "xiaomi/mimo-v2-omni", + name: "MiMo-V2-Omni", + family: "mimo", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + structured_output: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 2, cache_read: 0.08 }, + limit: { context: 262144, output: 65536 }, + }, + "xiaomi/mimo-v2-pro": { + id: "xiaomi/mimo-v2-pro", + name: "MiMo-V2-Pro", + family: "mimo", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + structured_output: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", modalities: { input: ["text"], output: ["text"] }, open_weights: true, - cost: { input: 0.441, output: 1.984 }, - limit: { context: 262000, output: 262000 }, + cost: { input: 1, output: 3, cache_read: 0.2 }, + limit: { context: 1048576, output: 65536 }, }, - "glm-4.5-air": { - id: "glm-4.5-air", + "xiaomi/mimo-v2-flash": { + id: "xiaomi/mimo-v2-flash", + name: "MiMo-V2-Flash", + family: "mimo", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-12-14", + last_updated: "2025-12-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3, cache_read: 0.01 }, + limit: { context: 262144, output: 65536 }, + }, + }, + }, + "fireworks-ai": { + id: "fireworks-ai", + env: ["FIREWORKS_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.fireworks.ai/inference/v1/", + name: "Fireworks AI", + doc: "https://fireworks.ai/docs/", + models: { + "accounts/fireworks/models/glm-5p1": { + id: "accounts/fireworks/models/glm-5p1", + name: "GLM 5.1", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-04-01", + last_updated: "2026-04-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.4, output: 4.4, cache_read: 0.26 }, + limit: { context: 202800, output: 131072 }, + }, + "accounts/fireworks/models/deepseek-v3p2": { + id: "accounts/fireworks/models/deepseek-v3p2", + name: "DeepSeek V3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-09", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.56, output: 1.68, cache_read: 0.28 }, + limit: { context: 160000, output: 160000 }, + }, + "accounts/fireworks/models/minimax-m2p5": { + id: "accounts/fireworks/models/minimax-m2p5", + name: "MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.03 }, + limit: { context: 196608, output: 196608 }, + }, + "accounts/fireworks/models/glm-4p5-air": { + id: "accounts/fireworks/models/glm-4p5-air", name: "GLM 4.5 Air", family: "glm-air", attachment: false, @@ -58379,77 +15554,74 @@ export const snapshot = { last_updated: "2025-08-01", modalities: { input: ["text"], output: ["text"] }, open_weights: true, - cost: { input: 0.22, output: 1.34 }, + cost: { input: 0.22, output: 0.88 }, limit: { context: 131072, output: 131072 }, }, - "claude-4-6-sonnet": { - id: "claude-4-6-sonnet", - name: "Claude Sonnet 4.6", - family: "claude-sonnet", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-08", - release_date: "2026-02-17", - last_updated: "2026-03-13", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3.59, output: 17.92 }, - limit: { context: 1000000, output: 1000000 }, - }, - "glm-4.5": { - id: "glm-4.5", - name: "GLM 4.5", + "accounts/fireworks/models/glm-5": { + id: "accounts/fireworks/models/glm-5", + name: "GLM 5", family: "glm", attachment: false, reasoning: true, tool_call: true, interleaved: { field: "reasoning_content" }, temperature: true, - knowledge: "2025-04", - release_date: "2025-07-29", - last_updated: "2025-07-29", + release_date: "2026-02-11", + last_updated: "2026-02-11", modalities: { input: ["text"], output: ["text"] }, open_weights: true, - cost: { input: 0.67, output: 2.46 }, - limit: { context: 131072, output: 131072 }, + cost: { input: 1, output: 3.2, cache_read: 0.5 }, + limit: { context: 202752, output: 131072 }, }, - "glm-4.7-flash": { - id: "glm-4.7-flash", - name: "GLM-4.7-Flash", - family: "glm", + "accounts/fireworks/models/deepseek-v3p1": { + id: "accounts/fireworks/models/deepseek-v3p1", + name: "DeepSeek V3.1", + family: "deepseek", attachment: false, reasoning: true, tool_call: true, - interleaved: { field: "reasoning_content" }, temperature: true, - knowledge: "2025-04", - release_date: "2025-08-08", - last_updated: "2025-08-08", + knowledge: "2025-07", + release_date: "2025-08-21", + last_updated: "2025-08-21", modalities: { input: ["text"], output: ["text"] }, open_weights: true, - cost: { input: 0.09, output: 0.53 }, - limit: { context: 203000, output: 203000 }, + cost: { input: 0.56, output: 1.68 }, + limit: { context: 163840, output: 163840 }, }, - "qwen3-32b": { - id: "qwen3-32b", - name: "Qwen3 32B", - family: "qwen", + "accounts/fireworks/models/kimi-k2-instruct": { + id: "accounts/fireworks/models/kimi-k2-instruct", + name: "Kimi K2 Instruct", + family: "kimi", attachment: false, reasoning: false, tool_call: true, temperature: true, - knowledge: "2024-12", - release_date: "2025-04-29", - last_updated: "2025-04-29", + knowledge: "2024-10", + release_date: "2025-07-11", + last_updated: "2025-07-11", modalities: { input: ["text"], output: ["text"] }, open_weights: true, - cost: { input: 0.099, output: 0.33 }, - limit: { context: 16384, output: 16384 }, + cost: { input: 1, output: 3 }, + limit: { context: 128000, output: 16384 }, }, - "minimax-m2.1": { - id: "minimax-m2.1", + "accounts/fireworks/models/qwen3p6-plus": { + id: "accounts/fireworks/models/qwen3p6-plus", + name: "Qwen 3.6 Plus", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-04-04", + last_updated: "2026-04-04", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 3, cache_read: 0.1 }, + limit: { context: 128000, output: 8192 }, + }, + "accounts/fireworks/models/minimax-m2p1": { + id: "accounts/fireworks/models/minimax-m2p1", name: "MiniMax-M2.1", family: "minimax", attachment: false, @@ -58461,153 +15633,11 @@ export const snapshot = { last_updated: "2025-12-23", modalities: { input: ["text"], output: ["text"] }, open_weights: true, - cost: { input: 0.34, output: 1.34 }, - limit: { context: 196000, output: 196000 }, + cost: { input: 0.3, output: 1.2, cache_read: 0.03 }, + limit: { context: 200000, output: 200000 }, }, - "devstral-small-2512": { - id: "devstral-small-2512", - name: "Devstral Small 2 2512", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-12", - release_date: "2025-12-09", - last_updated: "2025-12-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262000, output: 262000 }, - }, - "intellect-3": { - id: "intellect-3", - name: "INTELLECT 3", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-11", - release_date: "2025-11-26", - last_updated: "2025-11-26", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.219, output: 1.202 }, - limit: { context: 128000, output: 128000 }, - }, - "nova-pro-v1": { - id: "nova-pro-v1", - name: "Nova Pro 1.0", - family: "nova-pro", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-12-03", - last_updated: "2024-12-03", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.016, output: 4.061 }, - limit: { context: 300000, output: 5000 }, - }, - "gpt-oss-120b": { - id: "gpt-oss-120b", - name: "GPT Oss 120b", - family: "gpt-oss", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-01", - release_date: "2025-08-05", - last_updated: "2025-08-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 128000 }, - }, - "kimi-k2.5": { - id: "kimi-k2.5", - name: "Kimi K2.5", - family: "kimi-thinking", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - knowledge: "2025-01", - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.55, output: 2.76 }, - limit: { context: 256000, output: 256000 }, - }, - "deepseek-v3-0324": { - id: "deepseek-v3-0324", - name: "DeepSeek V3 0324", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-07", - release_date: "2025-03-24", - last_updated: "2025-03-24", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.551, output: 1.654 }, - limit: { context: 128000, output: 128000 }, - }, - "gpt-4.1": { - id: "gpt-4.1", - name: "GPT 4.1", - family: "gpt", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-06", - release_date: "2025-04-14", - last_updated: "2025-04-14", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2.354, output: 9.417 }, - limit: { context: 1047576, output: 32768 }, - }, - "llama-3.1-405b-instruct": { - id: "llama-3.1-405b-instruct", - name: "Llama 3.1 405B Instruct", - family: "llama", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2023-12", - release_date: "2024-07-23", - last_updated: "2024-07-23", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 128000, output: 128000 }, - }, - "devstral-2512": { - id: "devstral-2512", - name: "Devstral 2 2512", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-12", - release_date: "2025-12-09", - last_updated: "2025-12-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0, output: 0 }, - limit: { context: 262000, output: 262000 }, - }, - "glm-4.7": { - id: "glm-4.7", + "accounts/fireworks/models/glm-4p7": { + id: "accounts/fireworks/models/glm-4p7", name: "GLM 4.7", family: "glm", attachment: false, @@ -58620,543 +15650,602 @@ export const snapshot = { last_updated: "2025-12-22", modalities: { input: ["text"], output: ["text"] }, open_weights: true, - cost: { input: 0.45, output: 2.23 }, + cost: { input: 0.6, output: 2.2, cache_read: 0.3 }, limit: { context: 198000, output: 198000 }, }, + "accounts/fireworks/models/glm-4p5": { + id: "accounts/fireworks/models/glm-4p5", + name: "GLM 4.5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-29", + last_updated: "2025-07-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.19 }, + limit: { context: 131072, output: 131072 }, + }, + "accounts/fireworks/models/kimi-k2p5": { + id: "accounts/fireworks/models/kimi-k2p5", + name: "Kimi K2.5", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3, cache_read: 0.1 }, + limit: { context: 256000, output: 256000 }, + }, + "accounts/fireworks/models/gpt-oss-20b": { + id: "accounts/fireworks/models/gpt-oss-20b", + name: "GPT OSS 20B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.2 }, + limit: { context: 131072, output: 32768 }, + }, + "accounts/fireworks/models/gpt-oss-120b": { + id: "accounts/fireworks/models/gpt-oss-120b", + name: "GPT OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 131072, output: 32768 }, + }, + "accounts/fireworks/models/kimi-k2-thinking": { + id: "accounts/fireworks/models/kimi-k2-thinking", + name: "Kimi K2 Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2025-11-06", + last_updated: "2025-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5, cache_read: 0.3 }, + limit: { context: 256000, output: 256000 }, + }, + "accounts/fireworks/routers/kimi-k2p5-turbo": { + id: "accounts/fireworks/routers/kimi-k2p5-turbo", + name: "Kimi K2.5 Turbo (firepass)", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0 }, + limit: { context: 256000, output: 256000 }, + }, + }, + }, + "kimi-for-coding": { + id: "kimi-for-coding", + env: ["KIMI_API_KEY"], + npm: "@ai-sdk/anthropic", + api: "https://api.kimi.com/coding/v1", + name: "Kimi For Coding", + doc: "https://www.kimi.com/coding/docs/en/third-party-agents.html", + models: { + k2p5: { + id: "k2p5", + name: "Kimi K2.5", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 262144, output: 32768 }, + }, "kimi-k2-thinking": { id: "kimi-k2-thinking", name: "Kimi K2 Thinking", - attachment: true, + family: "kimi-thinking", + attachment: false, reasoning: true, tool_call: true, - interleaved: { field: "reasoning_content" }, + structured_output: true, temperature: true, - knowledge: "2025-12", - release_date: "2025-12-08", - last_updated: "2025-12-08", + knowledge: "2025-07", + release_date: "2025-11", + last_updated: "2025-12", modalities: { input: ["text"], output: ["text"] }, open_weights: true, - cost: { input: 0.656, output: 2.731 }, - limit: { context: 262000, output: 262000 }, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 262144, output: 32768 }, }, - "claude-haiku-4-5": { - id: "claude-haiku-4-5", - name: "Claude Haiku 4.5", - family: "claude-haiku", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-02-28", - release_date: "2025-10-15", - last_updated: "2025-10-15", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 1.09, output: 5.43 }, - limit: { context: 200000, output: 200000 }, - }, - "minimax-m2": { - id: "minimax-m2", - name: "MiniMax-M2", - family: "minimax", + }, + }, + moark: { + id: "moark", + env: ["MOARK_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://moark.com/v1", + name: "Moark", + doc: "https://moark.com/docs/openapi/v1#tag/%E6%96%87%E6%9C%AC%E7%94%9F%E6%88%90", + models: { + "GLM-4.7": { + id: "GLM-4.7", + name: "GLM-4.7", + family: "glm", attachment: false, reasoning: true, tool_call: true, interleaved: { field: "reasoning_content" }, temperature: true, - knowledge: "2024-11", - release_date: "2025-10-27", - last_updated: "2025-10-27", + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", modalities: { input: ["text"], output: ["text"] }, open_weights: true, - cost: { input: 0.39, output: 1.57 }, - limit: { context: 400000, output: 400000 }, + cost: { input: 3.5, output: 14 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMax-M2.1": { + id: "MiniMax-M2.1", + name: "MiniMax-M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.1, output: 8.4 }, + limit: { context: 204800, output: 131072 }, + }, + }, + }, + "opencode-go": { + id: "opencode-go", + env: ["OPENCODE_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://opencode.ai/zen/go/v1", + name: "OpenCode Go", + doc: "https://opencode.ai/docs/zen", + models: { + "minimax-m2.7": { + id: "minimax-m2.7", + name: "MiniMax M2.7", + family: "minimax-m2.7", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.06 }, + limit: { context: 204800, output: 131072 }, + provider: { npm: "@ai-sdk/anthropic" }, + }, + "kimi-k2.5": { + id: "kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-10", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3, cache_read: 0.1 }, + limit: { context: 262144, output: 65536 }, + }, + "glm-5": { + id: "glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3.2, cache_read: 0.2 }, + limit: { context: 204800, output: 131072 }, + }, + "mimo-v2-omni": { + id: "mimo-v2-omni", + name: "MiMo V2 Omni", + family: "mimo-omni", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-12", + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text", "image", "audio", "pdf"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 2, cache_read: 0.08 }, + limit: { context: 262144, output: 64000 }, + }, + "glm-5.1": { + id: "glm-5.1", + name: "GLM-5.1", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2026-04-07", + last_updated: "2026-04-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.4, output: 4.4, cache_read: 0.26 }, + limit: { context: 204800, output: 131072 }, }, "minimax-m2.5": { id: "minimax-m2.5", - name: "MiniMax-M2.5", - family: "minimax", + name: "MiniMax M2.5", + family: "minimax-m2.5", attachment: false, reasoning: true, tool_call: true, - interleaved: { field: "reasoning_content" }, temperature: true, + knowledge: "2025-01", release_date: "2026-02-12", last_updated: "2026-02-12", modalities: { input: ["text"], output: ["text"] }, open_weights: true, - cost: { input: 0.32, output: 1.18 }, - limit: { context: 196608, output: 196608 }, + cost: { input: 0.3, output: 1.2, cache_read: 0.03 }, + limit: { context: 204800, output: 131072 }, + provider: { npm: "@ai-sdk/anthropic" }, }, - "claude-sonnet-4": { - id: "claude-sonnet-4", - name: "Claude Sonnet 4", - family: "claude-sonnet", + "mimo-v2-pro": { + id: "mimo-v2-pro", + name: "MiMo V2 Pro", + family: "mimo-pro", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-12", + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3, cache_read: 0.2, context_over_200k: { input: 2, output: 6, cache_read: 0.4 } }, + limit: { context: 1048576, output: 64000 }, + }, + }, + }, + "io-net": { + id: "io-net", + env: ["IOINTELLIGENCE_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.intelligence.io.solutions/api/v1", + name: "IO.NET", + doc: "https://io.net/docs/guides/intelligence/io-intelligence", + models: { + "Intel/Qwen3-Coder-480B-A35B-Instruct-int4-mixed-ar": { + id: "Intel/Qwen3-Coder-480B-A35B-Instruct-int4-mixed-ar", + name: "Qwen 3 Coder 480B", + family: "qwen", attachment: false, reasoning: false, tool_call: true, temperature: true, - knowledge: "2025-03", - release_date: "2025-05-22", - last_updated: "2025-05-22", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3.307, output: 16.536 }, - limit: { context: 200000, output: 64000 }, + knowledge: "2024-12", + release_date: "2025-01-15", + last_updated: "2025-01-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.22, output: 0.95, cache_read: 0.11, cache_write: 0.44 }, + limit: { context: 106000, output: 4096 }, }, - "claude-opus4-5": { - id: "claude-opus4-5", - name: "Claude Opus 4.5", - family: "claude-opus", - attachment: true, + "Qwen/Qwen3-Next-80B-A3B-Instruct": { + id: "Qwen/Qwen3-Next-80B-A3B-Instruct", + name: "Qwen 3 Next 80B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-01-10", + last_updated: "2025-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.8, cache_read: 0.05, cache_write: 0.2 }, + limit: { context: 262144, output: 4096 }, + }, + "Qwen/Qwen3-235B-A22B-Thinking-2507": { + id: "Qwen/Qwen3-235B-A22B-Thinking-2507", + name: "Qwen 3 235B Thinking", + family: "qwen", + attachment: false, reasoning: true, tool_call: true, temperature: true, - knowledge: "2025-03-31", - release_date: "2025-11-24", - last_updated: "2025-11-24", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 5.98, output: 29.89 }, - limit: { context: 200000, output: 200000 }, + knowledge: "2024-12", + release_date: "2025-07-01", + last_updated: "2025-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.11, output: 0.6, cache_read: 0.055, cache_write: 0.22 }, + limit: { context: 262144, output: 4096 }, }, - "claude-4-5-sonnet": { - id: "claude-4-5-sonnet", - name: "Claude 4.5 Sonnet", - family: "claude-sonnet", - attachment: true, - reasoning: true, + "Qwen/Qwen2.5-VL-32B-Instruct": { + id: "Qwen/Qwen2.5-VL-32B-Instruct", + name: "Qwen 2.5 VL 32B Instruct", + family: "qwen", + attachment: false, + reasoning: false, tool_call: true, temperature: true, - knowledge: "2025-07-31", - release_date: "2025-09-29", - last_updated: "2025-09-29", - modalities: { input: ["text", "image", "pdf"], output: ["text"] }, - open_weights: false, - cost: { input: 3.259, output: 16.296 }, - limit: { context: 200000, output: 200000 }, + knowledge: "2024-09", + release_date: "2024-11-01", + last_updated: "2024-11-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.22, cache_read: 0.025, cache_write: 0.1 }, + limit: { context: 32000, output: 4096 }, }, - "gemini-2.5-pro": { - id: "gemini-2.5-pro", - name: "Gemini 2.5 Pro", - family: "gemini-pro", + "zai-org/GLM-4.6": { + id: "zai-org/GLM-4.6", + name: "GLM 4.6", + family: "glm", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-11-15", + last_updated: "2024-11-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.75, cache_read: 0.2, cache_write: 0.8 }, + limit: { context: 200000, output: 4096 }, + }, + "mistralai/Magistral-Small-2506": { + id: "mistralai/Magistral-Small-2506", + name: "Magistral Small 2506", + family: "magistral-small", attachment: false, reasoning: false, tool_call: true, temperature: true, knowledge: "2025-01", - release_date: "2025-03-20", - last_updated: "2025-06-17", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.654, output: 11.024 }, - limit: { context: 1048576, output: 65535 }, - }, - }, - }, - xai: { - id: "xai", - env: ["XAI_API_KEY"], - npm: "@ai-sdk/xai", - name: "xAI", - doc: "https://docs.x.ai/docs/models", - models: { - "grok-2-1212": { - id: "grok-2-1212", - name: "Grok 2 (1212)", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2024-12-12", - last_updated: "2024-12-12", + release_date: "2025-06-01", + last_updated: "2025-06-01", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 2, output: 10, cache_read: 2 }, - limit: { context: 131072, output: 8192 }, + cost: { input: 0.5, output: 1.5, cache_read: 0.25, cache_write: 1 }, + limit: { context: 128000, output: 4096 }, }, - "grok-4.20-multi-agent-0309": { - id: "grok-4.20-multi-agent-0309", - name: "Grok 4.20 Multi-Agent", - family: "grok", - attachment: true, - reasoning: true, - tool_call: false, - temperature: true, - release_date: "2026-03-09", - last_updated: "2026-03-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6, cache_read: 0.2, context_over_200k: { input: 4, output: 12, cache_read: 0.4 } }, - limit: { context: 2000000, output: 30000 }, - }, - "grok-2": { - id: "grok-2", - name: "Grok 2", - family: "grok", + "mistralai/Mistral-Large-Instruct-2411": { + id: "mistralai/Mistral-Large-Instruct-2411", + name: "Mistral Large Instruct 2411", + family: "mistral-large", attachment: false, reasoning: false, tool_call: true, temperature: true, - knowledge: "2024-08", - release_date: "2024-08-20", - last_updated: "2024-08-20", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 10, cache_read: 2 }, - limit: { context: 131072, output: 8192 }, - }, - "grok-3-fast-latest": { - id: "grok-3-fast-latest", - name: "Grok 3 Fast Latest", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 5, output: 25, cache_read: 1.25 }, - limit: { context: 131072, output: 8192 }, - }, - "grok-2-vision": { - id: "grok-2-vision", - name: "Grok 2 Vision", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2024-08-20", - last_updated: "2024-08-20", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 10, cache_read: 2 }, - limit: { context: 8192, output: 4096 }, - }, - "grok-3": { - id: "grok-3", - name: "Grok 3", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.75 }, - limit: { context: 131072, output: 8192 }, - }, - "grok-code-fast-1": { - id: "grok-code-fast-1", - name: "Grok Code Fast 1", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2023-10", - release_date: "2025-08-28", - last_updated: "2025-08-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 1.5, cache_read: 0.02 }, - limit: { context: 256000, output: 10000 }, - }, - "grok-2-vision-1212": { - id: "grok-2-vision-1212", - name: "Grok 2 Vision (1212)", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2024-08-20", - last_updated: "2024-12-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 10, cache_read: 2 }, - limit: { context: 8192, output: 4096 }, - }, - "grok-4-1-fast-non-reasoning": { - id: "grok-4-1-fast-non-reasoning", - name: "Grok 4.1 Fast (Non-Reasoning)", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-11-19", - last_updated: "2025-11-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 30000 }, - }, - "grok-beta": { - id: "grok-beta", - name: "Grok Beta", - family: "grok-beta", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", + knowledge: "2024-10", release_date: "2024-11-01", last_updated: "2024-11-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6, cache_read: 1, cache_write: 4 }, + limit: { context: 128000, output: 4096 }, + }, + "mistralai/Mistral-Nemo-Instruct-2407": { + id: "mistralai/Mistral-Nemo-Instruct-2407", + name: "Mistral Nemo Instruct 2407", + family: "mistral-nemo", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-05", + release_date: "2024-07-01", + last_updated: "2024-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.04, cache_read: 0.01, cache_write: 0.04 }, + limit: { context: 128000, output: 4096 }, + }, + "mistralai/Devstral-Small-2505": { + id: "mistralai/Devstral-Small-2505", + name: "Devstral Small 2505", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-05-01", + last_updated: "2025-05-01", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 5, output: 15, cache_read: 5 }, + cost: { input: 0.05, output: 0.22, cache_read: 0.025, cache_write: 0.1 }, + limit: { context: 128000, output: 4096 }, + }, + "meta-llama/Llama-3.3-70B-Instruct": { + id: "meta-llama/Llama-3.3-70B-Instruct", + name: "Llama 3.3 70B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 0.38, cache_read: 0.065, cache_write: 0.26 }, + limit: { context: 128000, output: 4096 }, + }, + "meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8": { + id: "meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8", + name: "Llama 4 Maverick 17B 128E Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-01-15", + last_updated: "2025-01-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6, cache_read: 0.075, cache_write: 0.3 }, + limit: { context: 430000, output: 4096 }, + }, + "meta-llama/Llama-3.2-90B-Vision-Instruct": { + id: "meta-llama/Llama-3.2-90B-Vision-Instruct", + name: "Llama 3.2 90B Vision Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-09-25", + last_updated: "2024-09-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.35, output: 0.4, cache_read: 0.175, cache_write: 0.7 }, + limit: { context: 16000, output: 4096 }, + }, + "deepseek-ai/DeepSeek-R1-0528": { + id: "deepseek-ai/DeepSeek-R1-0528", + name: "DeepSeek R1", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-01-20", + last_updated: "2025-05-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2, output: 8.75, cache_read: 1, cache_write: 4 }, + limit: { context: 128000, output: 4096 }, + }, + "openai/gpt-oss-20b": { + id: "openai/gpt-oss-20b", + name: "GPT-OSS 20B", + family: "gpt-oss", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.14, cache_read: 0.015, cache_write: 0.06 }, + limit: { context: 64000, output: 4096 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "GPT-OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.04, output: 0.4, cache_read: 0.02, cache_write: 0.08 }, limit: { context: 131072, output: 4096 }, }, - "grok-3-mini-fast": { - id: "grok-3-mini-fast", - name: "Grok 3 Mini Fast", - family: "grok", + "moonshotai/Kimi-K2-Thinking": { + id: "moonshotai/Kimi-K2-Thinking", + name: "Kimi K2 Thinking", + family: "kimi-thinking", attachment: false, reasoning: true, tool_call: true, temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 4, reasoning: 4, cache_read: 0.15 }, - limit: { context: 131072, output: 8192 }, - }, - "grok-4-fast": { - id: "grok-4-fast", - name: "Grok 4 Fast", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-09-19", - last_updated: "2025-09-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 30000 }, - }, - "grok-4": { - id: "grok-4", - name: "Grok 4", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-07-09", - last_updated: "2025-07-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, reasoning: 15, cache_read: 0.75 }, - limit: { context: 256000, output: 64000 }, - }, - "grok-3-latest": { - id: "grok-3-latest", - name: "Grok 3 Latest", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 3, output: 15, cache_read: 0.75 }, - limit: { context: 131072, output: 8192 }, - }, - "grok-4-1-fast": { - id: "grok-4-1-fast", - name: "Grok 4.1 Fast", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-11-19", - last_updated: "2025-11-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 30000 }, - }, - "grok-2-vision-latest": { - id: "grok-2-vision-latest", - name: "Grok 2 Vision Latest", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2024-08-20", - last_updated: "2024-12-12", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 10, cache_read: 2 }, - limit: { context: 8192, output: 4096 }, - }, - "grok-3-mini-latest": { - id: "grok-3-mini-latest", - name: "Grok 3 Mini Latest", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.5, reasoning: 0.5, cache_read: 0.075 }, - limit: { context: 131072, output: 8192 }, - }, - "grok-3-mini": { - id: "grok-3-mini", - name: "Grok 3 Mini", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.3, output: 0.5, reasoning: 0.5, cache_read: 0.075 }, - limit: { context: 131072, output: 8192 }, - }, - "grok-3-mini-fast-latest": { - id: "grok-3-mini-fast-latest", - name: "Grok 3 Mini Fast Latest", - family: "grok", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.6, output: 4, reasoning: 4, cache_read: 0.15 }, - limit: { context: 131072, output: 8192 }, - }, - "grok-4.20-0309-reasoning": { - id: "grok-4.20-0309-reasoning", - name: "Grok 4.20 (Reasoning)", - family: "grok", - attachment: true, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2026-03-09", - last_updated: "2026-03-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6, cache_read: 0.2, context_over_200k: { input: 4, output: 12, cache_read: 0.4 } }, - limit: { context: 2000000, output: 30000 }, - }, - "grok-2-latest": { - id: "grok-2-latest", - name: "Grok 2 Latest", - family: "grok", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-08", - release_date: "2024-08-20", - last_updated: "2024-12-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 10, cache_read: 2 }, - limit: { context: 131072, output: 8192 }, - }, - "grok-4-fast-non-reasoning": { - id: "grok-4-fast-non-reasoning", - name: "Grok 4 Fast (Non-Reasoning)", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-07", - release_date: "2025-09-19", - last_updated: "2025-09-19", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, - limit: { context: 2000000, output: 30000 }, - }, - "grok-vision-beta": { - id: "grok-vision-beta", - name: "Grok Vision Beta", - family: "grok-vision", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, knowledge: "2024-08", release_date: "2024-11-01", last_updated: "2024-11-01", - modalities: { input: ["text", "image"], output: ["text"] }, + modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 5, output: 15, cache_read: 5 }, - limit: { context: 8192, output: 4096 }, + cost: { input: 0.55, output: 2.25, cache_read: 0.275, cache_write: 1.1 }, + limit: { context: 32768, output: 4096 }, }, - "grok-4.20-0309-non-reasoning": { - id: "grok-4.20-0309-non-reasoning", - name: "Grok 4.20 (Non-Reasoning)", - family: "grok", - attachment: true, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2026-03-09", - last_updated: "2026-03-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 2, output: 6, cache_read: 0.2, context_over_200k: { input: 4, output: 12, cache_read: 0.4 } }, - limit: { context: 2000000, output: 30000 }, - }, - "grok-3-fast": { - id: "grok-3-fast", - name: "Grok 3 Fast", - family: "grok", + "moonshotai/Kimi-K2-Instruct-0905": { + id: "moonshotai/Kimi-K2-Instruct-0905", + name: "Kimi K2 Instruct", + family: "kimi", attachment: false, reasoning: false, tool_call: true, temperature: true, - knowledge: "2024-11", - release_date: "2025-02-17", - last_updated: "2025-02-17", + knowledge: "2024-08", + release_date: "2024-09-05", + last_updated: "2024-09-05", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 5, output: 25, cache_read: 1.25 }, - limit: { context: 131072, output: 8192 }, + cost: { input: 0.39, output: 1.9, cache_read: 0.195, cache_write: 0.78 }, + limit: { context: 32768, output: 4096 }, }, }, }, @@ -59168,452 +16257,9 @@ export const snapshot = { name: "Alibaba (China)", doc: "https://www.alibabacloud.com/help/en/model-studio/models", models: { - "qwen-vl-plus": { - id: "qwen-vl-plus", - name: "Qwen-VL Plus", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-01-25", - last_updated: "2025-08-15", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.115, output: 0.287 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen-vl-max": { - id: "qwen-vl-max", - name: "Qwen-VL Max", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-04-08", - last_updated: "2025-08-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.23, output: 0.574 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen-math-plus": { - id: "qwen-math-plus", - name: "Qwen Math Plus", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-08-16", - last_updated: "2024-09-19", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.574, output: 1.721 }, - limit: { context: 4096, output: 3072 }, - }, - "deepseek-v3-1": { - id: "deepseek-v3-1", - name: "DeepSeek V3.1", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.574, output: 1.721 }, - limit: { context: 131072, output: 65536 }, - }, - "glm-5": { - id: "glm-5", - name: "GLM-5", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-11", - last_updated: "2026-02-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.86, output: 3.15 }, - limit: { context: 202752, output: 16384 }, - }, - "qwen2-5-coder-7b-instruct": { - id: "qwen2-5-coder-7b-instruct", - name: "Qwen2.5-Coder 7B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-11", - last_updated: "2024-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.144, output: 0.287 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen3-next-80b-a3b-thinking": { - id: "qwen3-next-80b-a3b-thinking", - name: "Qwen3-Next 80B-A3B (Thinking)", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09", - last_updated: "2025-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.144, output: 1.434 }, - limit: { context: 131072, output: 32768 }, - }, - "deepseek-v3": { - id: "deepseek-v3", - name: "DeepSeek V3", - family: "deepseek", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - release_date: "2024-12-01", - last_updated: "2024-12-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.287, output: 1.147 }, - limit: { context: 65536, output: 8192 }, - }, - "qwen3-coder-480b-a35b-instruct": { - id: "qwen3-coder-480b-a35b-instruct", - name: "Qwen3-Coder 480B-A35B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.861, output: 3.441 }, - limit: { context: 262144, output: 65536 }, - }, - "qwen-long": { - id: "qwen-long", - name: "Qwen Long", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-01-25", - last_updated: "2025-01-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.072, output: 0.287 }, - limit: { context: 10000000, output: 8192 }, - }, - "qwen3-14b": { - id: "qwen3-14b", - name: "Qwen3 14B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.144, output: 0.574, reasoning: 1.434 }, - limit: { context: 131072, output: 8192 }, - }, - "qwq-32b": { - id: "qwq-32b", - name: "QwQ 32B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-12", - last_updated: "2024-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.287, output: 0.861 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen3-coder-flash": { - id: "qwen3-coder-flash", - name: "Qwen3 Coder Flash", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.144, output: 0.574 }, - limit: { context: 1000000, output: 65536 }, - }, - "qwen3-vl-30b-a3b": { - id: "qwen3-vl-30b-a3b", - name: "Qwen3-VL 30B-A3B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.108, output: 0.431, reasoning: 1.076 }, - limit: { context: 131072, output: 32768 }, - }, - "MiniMax-M2.5": { - id: "MiniMax-M2.5", - name: "MiniMax-M2.5", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - temperature: true, - release_date: "2026-02-12", - last_updated: "2026-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 204800, output: 131072 }, - }, - "qwen3-asr-flash": { - id: "qwen3-asr-flash", - name: "Qwen3-ASR Flash", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: false, - knowledge: "2024-04", - release_date: "2025-09-08", - last_updated: "2025-09-08", - modalities: { input: ["audio"], output: ["text"] }, - open_weights: false, - cost: { input: 0.032, output: 0.032 }, - limit: { context: 53248, output: 4096 }, - }, - "qwen-max": { - id: "qwen-max", - name: "Qwen Max", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-04-03", - last_updated: "2025-01-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.345, output: 1.377 }, - limit: { context: 131072, output: 8192 }, - }, - "deepseek-r1-distill-qwen-14b": { - id: "deepseek-r1-distill-qwen-14b", - name: "DeepSeek R1 Distill Qwen 14B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.144, output: 0.431 }, - limit: { context: 32768, output: 16384 }, - }, - "moonshot-kimi-k2-instruct": { - id: "moonshot-kimi-k2-instruct", - name: "Moonshot Kimi K2 Instruct", - family: "kimi", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: false, - temperature: true, - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.574, output: 2.294 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen-doc-turbo": { - id: "qwen-doc-turbo", - name: "Qwen Doc Turbo", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-01", - last_updated: "2024-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.087, output: 0.144 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen-turbo": { - id: "qwen-turbo", - name: "Qwen Turbo", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-11-01", - last_updated: "2025-07-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.044, output: 0.087, reasoning: 0.431 }, - limit: { context: 1000000, output: 16384 }, - }, - "qwen2-5-7b-instruct": { - id: "qwen2-5-7b-instruct", - name: "Qwen2.5 7B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-09", - last_updated: "2024-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.072, output: 0.144 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen2-5-vl-72b-instruct": { - id: "qwen2-5-vl-72b-instruct", - name: "Qwen2.5-VL 72B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-09", - last_updated: "2024-09", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 2.294, output: 6.881 }, - limit: { context: 131072, output: 8192 }, - }, - "tongyi-intent-detect-v3": { - id: "tongyi-intent-detect-v3", - name: "Tongyi Intent Detect V3", - family: "yi", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-04", - release_date: "2024-01", - last_updated: "2024-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.058, output: 0.144 }, - limit: { context: 8192, output: 1024 }, - }, - "qwen2-5-14b-instruct": { - id: "qwen2-5-14b-instruct", - name: "Qwen2.5 14B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-09", - last_updated: "2024-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.144, output: 0.431 }, - limit: { context: 131072, output: 8192 }, - }, - "deepseek-r1-0528": { - id: "deepseek-r1-0528", - name: "DeepSeek R1 0528", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-05-28", - last_updated: "2025-05-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.574, output: 2.294 }, - limit: { context: 131072, output: 16384 }, - }, - "qwen3-8b": { - id: "qwen3-8b", - name: "Qwen3 8B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.072, output: 0.287, reasoning: 0.717 }, - limit: { context: 131072, output: 8192 }, - }, - "deepseek-r1": { - id: "deepseek-r1", - name: "DeepSeek R1", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.574, output: 2.294 }, - limit: { context: 131072, output: 16384 }, - }, - "qwen3-32b": { - id: "qwen3-32b", - name: "Qwen3 32B", + "qwen3-235b-a22b": { + id: "qwen3-235b-a22b", + name: "Qwen3 235B-A22B", family: "qwen", attachment: false, reasoning: true, @@ -59627,54 +16273,6 @@ export const snapshot = { cost: { input: 0.287, output: 1.147, reasoning: 2.868 }, limit: { context: 131072, output: 16384 }, }, - "qwen3.5-397b-a17b": { - id: "qwen3.5-397b-a17b", - name: "Qwen3.5 397B-A17B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02-16", - last_updated: "2026-02-16", - modalities: { input: ["text", "image", "video"], output: ["text"] }, - open_weights: true, - cost: { input: 0.43, output: 2.58, reasoning: 2.58 }, - limit: { context: 262144, output: 65536 }, - }, - "qvq-max": { - id: "qvq-max", - name: "QVQ Max", - family: "qvq", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-03-25", - last_updated: "2025-03-25", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 1.147, output: 4.588 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen2-5-omni-7b": { - id: "qwen2-5-omni-7b", - name: "Qwen2.5-Omni 7B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-12", - last_updated: "2024-12", - modalities: { input: ["text", "image", "audio", "video"], output: ["text", "audio"] }, - open_weights: true, - cost: { input: 0.087, output: 0.345, input_audio: 5.448 }, - limit: { context: 32768, output: 2048 }, - }, "qwen-plus-character": { id: "qwen-plus-character", name: "Qwen Plus Character", @@ -59691,24 +16289,9 @@ export const snapshot = { cost: { input: 0.115, output: 0.287 }, limit: { context: 32768, output: 4096 }, }, - "deepseek-r1-distill-llama-70b": { - id: "deepseek-r1-distill-llama-70b", - name: "DeepSeek R1 Distill Llama 70B", - family: "deepseek-thinking", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.287, output: 0.861 }, - limit: { context: 32768, output: 16384 }, - }, - "qwen2-5-vl-7b-instruct": { - id: "qwen2-5-vl-7b-instruct", - name: "Qwen2.5-VL 7B Instruct", + "qwen2-5-math-7b-instruct": { + id: "qwen2-5-math-7b-instruct", + name: "Qwen2.5-Math 7B Instruct", family: "qwen", attachment: false, reasoning: false, @@ -59717,10 +16300,10 @@ export const snapshot = { knowledge: "2024-04", release_date: "2024-09", last_updated: "2024-09", - modalities: { input: ["text", "image"], output: ["text"] }, + modalities: { input: ["text"], output: ["text"] }, open_weights: true, - cost: { input: 0.287, output: 0.717 }, - limit: { context: 131072, output: 8192 }, + cost: { input: 0.144, output: 0.287 }, + limit: { context: 4096, output: 3072 }, }, "kimi-k2.5": { id: "kimi-k2.5", @@ -59740,6 +16323,38 @@ export const snapshot = { cost: { input: 0.574, output: 2.411 }, limit: { context: 262144, output: 32768 }, }, + "qwen-doc-turbo": { + id: "qwen-doc-turbo", + name: "Qwen Doc Turbo", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-01", + last_updated: "2024-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.087, output: 0.144 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen-vl-ocr": { + id: "qwen-vl-ocr", + name: "Qwen-VL OCR", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-04", + release_date: "2024-10-28", + last_updated: "2025-04-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.717, output: 0.717 }, + limit: { context: 34096, output: 4096 }, + }, "qwen-omni-turbo-realtime": { id: "qwen-omni-turbo-realtime", name: "Qwen-Omni Turbo Realtime", @@ -59756,24 +16371,105 @@ export const snapshot = { cost: { input: 0.23, output: 0.918, input_audio: 3.584, output_audio: 7.168 }, limit: { context: 32768, output: 2048 }, }, - "deepseek-v3-2-exp": { - id: "deepseek-v3-2-exp", - name: "DeepSeek V3.2 Exp", - family: "deepseek", + "qwen3-8b": { + id: "qwen3-8b", + name: "Qwen3 8B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.072, output: 0.287, reasoning: 0.717 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen3.5-397b-a17b": { + id: "qwen3.5-397b-a17b", + name: "Qwen3.5 397B-A17B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02-16", + last_updated: "2026-02-16", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.43, output: 2.58, reasoning: 2.58 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen-math-turbo": { + id: "qwen-math-turbo", + name: "Qwen Math Turbo", + family: "qwen", attachment: false, reasoning: false, tool_call: true, temperature: true, - release_date: "2025-01-01", - last_updated: "2025-01-01", + knowledge: "2024-04", + release_date: "2024-09-19", + last_updated: "2024-09-19", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 0.287, output: 0.431 }, - limit: { context: 131072, output: 65536 }, + cost: { input: 0.287, output: 0.861 }, + limit: { context: 4096, output: 3072 }, }, - "deepseek-r1-distill-llama-8b": { - id: "deepseek-r1-distill-llama-8b", - name: "DeepSeek R1 Distill Llama 8B", + "qwq-plus": { + id: "qwq-plus", + name: "QwQ Plus", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-03-05", + last_updated: "2025-03-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.23, output: 0.574 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen-vl-plus": { + id: "qwen-vl-plus", + name: "Qwen-VL Plus", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-01-25", + last_updated: "2025-08-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.115, output: 0.287 }, + limit: { context: 131072, output: 8192 }, + }, + "glm-5": { + id: "glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.86, output: 3.15 }, + limit: { context: 202752, output: 16384 }, + }, + "deepseek-r1-distill-llama-70b": { + id: "deepseek-r1-distill-llama-70b", + name: "DeepSeek R1 Distill Llama 70B", family: "deepseek-thinking", attachment: false, reasoning: true, @@ -59783,12 +16479,12 @@ export const snapshot = { last_updated: "2025-01-01", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 0, output: 0 }, + cost: { input: 0.287, output: 0.861 }, limit: { context: 32768, output: 16384 }, }, - "qwen3-235b-a22b": { - id: "qwen3-235b-a22b", - name: "Qwen3 235B-A22B", + "qwen3-32b": { + id: "qwen3-32b", + name: "Qwen3 32B", family: "qwen", attachment: false, reasoning: true, @@ -59802,21 +16498,53 @@ export const snapshot = { cost: { input: 0.287, output: 1.147, reasoning: 2.868 }, limit: { context: 131072, output: 16384 }, }, - "qwen3-coder-30b-a3b-instruct": { - id: "qwen3-coder-30b-a3b-instruct", - name: "Qwen3-Coder 30B-A3B Instruct", + "MiniMax-M2.5": { + id: "MiniMax-M2.5", + name: "MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 204800, output: 131072 }, + }, + "qwen-max": { + id: "qwen-max", + name: "Qwen Max", family: "qwen", attachment: false, reasoning: false, tool_call: true, temperature: true, - knowledge: "2025-04", - release_date: "2025-04", - last_updated: "2025-04", + knowledge: "2024-04", + release_date: "2024-04-03", + last_updated: "2025-01-25", modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.216, output: 0.861 }, - limit: { context: 262144, output: 65536 }, + open_weights: false, + cost: { input: 0.345, output: 1.377 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen-plus": { + id: "qwen-plus", + name: "Qwen Plus", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-01-25", + last_updated: "2025-09-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.115, output: 0.287, reasoning: 1.147 }, + limit: { context: 1000000, output: 32768 }, }, "qwen-omni-turbo": { id: "qwen-omni-turbo", @@ -59834,21 +16562,52 @@ export const snapshot = { cost: { input: 0.058, output: 0.23, input_audio: 3.584, output_audio: 7.168 }, limit: { context: 32768, output: 2048 }, }, - "qwen-mt-plus": { - id: "qwen-mt-plus", - name: "Qwen-MT Plus", + "qwen-flash": { + id: "qwen-flash", + name: "Qwen Flash", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.022, output: 0.216 }, + limit: { context: 1000000, output: 32768 }, + }, + "qwen2-5-vl-7b-instruct": { + id: "qwen2-5-vl-7b-instruct", + name: "Qwen2.5-VL 7B Instruct", family: "qwen", attachment: false, reasoning: false, - tool_call: false, + tool_call: true, temperature: true, knowledge: "2024-04", - release_date: "2025-01", - last_updated: "2025-01", + release_date: "2024-09", + last_updated: "2024-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.287, output: 0.717 }, + limit: { context: 131072, output: 8192 }, + }, + "deepseek-r1": { + id: "deepseek-r1", + name: "DeepSeek R1", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-01-01", + last_updated: "2025-01-01", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 0.259, output: 0.775 }, - limit: { context: 16384, output: 8192 }, + cost: { input: 0.574, output: 2.294 }, + limit: { context: 131072, output: 16384 }, }, "qwen3.5-flash": { id: "qwen3.5-flash", @@ -59867,194 +16626,20 @@ export const snapshot = { cost: { input: 0.172, output: 1.72, reasoning: 1.72 }, limit: { context: 1000000, output: 65536 }, }, - "qwen2-5-math-7b-instruct": { - id: "qwen2-5-math-7b-instruct", - name: "Qwen2.5-Math 7B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-09", - last_updated: "2024-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.144, output: 0.287 }, - limit: { context: 4096, output: 3072 }, - }, - "deepseek-r1-distill-qwen-1-5b": { - id: "deepseek-r1-distill-qwen-1-5b", - name: "DeepSeek R1 Distill Qwen 1.5B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0, output: 0 }, - limit: { context: 32768, output: 16384 }, - }, - "deepseek-r1-distill-qwen-7b": { - id: "deepseek-r1-distill-qwen-7b", - name: "DeepSeek R1 Distill Qwen 7B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.072, output: 0.144 }, - limit: { context: 32768, output: 16384 }, - }, - "kimi-k2-thinking": { - id: "kimi-k2-thinking", - name: "Moonshot Kimi K2 Thinking", - family: "kimi", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-11-06", - last_updated: "2025-11-06", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.574, output: 2.294 }, - limit: { context: 262144, output: 16384 }, - }, - "deepseek-r1-distill-qwen-32b": { - id: "deepseek-r1-distill-qwen-32b", - name: "DeepSeek R1 Distill Qwen 32B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - release_date: "2025-01-01", - last_updated: "2025-01-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.287, output: 0.861 }, - limit: { context: 32768, output: 16384 }, - }, - "qwen-deep-research": { - id: "qwen-deep-research", - name: "Qwen Deep Research", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-01", - last_updated: "2024-01", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 7.742, output: 23.367 }, - limit: { context: 1000000, output: 32768 }, - }, - "qwen3-vl-plus": { - id: "qwen3-vl-plus", - name: "Qwen3-VL Plus", + "qwen3.6-plus": { + id: "qwen3.6-plus", + name: "Qwen3.6 Plus", family: "qwen", attachment: false, reasoning: true, tool_call: true, temperature: true, knowledge: "2025-04", - release_date: "2025-09-23", - last_updated: "2025-09-23", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.143353, output: 1.433525, reasoning: 4.300576 }, - limit: { context: 262144, output: 32768 }, - }, - "qwen2-5-math-72b-instruct": { - id: "qwen2-5-math-72b-instruct", - name: "Qwen2.5-Math 72B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-09", - last_updated: "2024-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.574, output: 1.721 }, - limit: { context: 4096, output: 3072 }, - }, - "qwen-plus": { - id: "qwen-plus", - name: "Qwen Plus", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-01-25", - last_updated: "2025-09-11", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.115, output: 0.287, reasoning: 1.147 }, - limit: { context: 1000000, output: 32768 }, - }, - "qwen2-5-32b-instruct": { - id: "qwen2-5-32b-instruct", - name: "Qwen2.5 32B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2024-09", - last_updated: "2024-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.287, output: 0.861 }, - limit: { context: 131072, output: 8192 }, - }, - "qwen3-next-80b-a3b-instruct": { - id: "qwen3-next-80b-a3b-instruct", - name: "Qwen3-Next 80B-A3B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2025-09", - last_updated: "2025-09", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.144, output: 0.574 }, - limit: { context: 131072, output: 32768 }, - }, - "qwen3.5-plus": { - id: "qwen3.5-plus", - name: "Qwen3.5 Plus", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2025-04", - release_date: "2026-02-16", - last_updated: "2026-02-16", + release_date: "2026-04-02", + last_updated: "2026-04-02", modalities: { input: ["text", "image", "video"], output: ["text"] }, open_weights: false, - cost: { input: 0.573, output: 3.44, reasoning: 3.44 }, + cost: { input: 0.276, output: 1.651, cache_read: 0.028, cache_write: 0.344 }, limit: { context: 1000000, output: 65536 }, }, "qwen3-max": { @@ -60089,37 +16674,20 @@ export const snapshot = { cost: { input: 0.058, output: 0.23, input_audio: 3.584, output_audio: 7.168 }, limit: { context: 65536, output: 16384 }, }, - "qwen-math-turbo": { - id: "qwen-math-turbo", - name: "Qwen Math Turbo", - family: "qwen", + "deepseek-v3-1": { + id: "deepseek-v3-1", + name: "DeepSeek V3.1", + family: "deepseek", attachment: false, reasoning: false, tool_call: true, temperature: true, - knowledge: "2024-04", - release_date: "2024-09-19", - last_updated: "2024-09-19", + release_date: "2025-01-01", + last_updated: "2025-01-01", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 0.287, output: 0.861 }, - limit: { context: 4096, output: 3072 }, - }, - "qwen-flash": { - id: "qwen-flash", - name: "Qwen Flash", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-07-28", - last_updated: "2025-07-28", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.022, output: 0.216 }, - limit: { context: 1000000, output: 32768 }, + cost: { input: 0.574, output: 1.721 }, + limit: { context: 131072, output: 65536 }, }, "qwen2-5-72b-instruct": { id: "qwen2-5-72b-instruct", @@ -60137,54 +16705,6 @@ export const snapshot = { cost: { input: 0.574, output: 1.721 }, limit: { context: 131072, output: 8192 }, }, - "qwen3-omni-flash-realtime": { - id: "qwen3-omni-flash-realtime", - name: "Qwen3-Omni Flash Realtime", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-09-15", - last_updated: "2025-09-15", - modalities: { input: ["text", "image", "audio"], output: ["text", "audio"] }, - open_weights: false, - cost: { input: 0.23, output: 0.918, input_audio: 3.584, output_audio: 7.168 }, - limit: { context: 65536, output: 16384 }, - }, - "qwen-vl-ocr": { - id: "qwen-vl-ocr", - name: "Qwen-VL OCR", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - temperature: true, - knowledge: "2024-04", - release_date: "2024-10-28", - last_updated: "2025-04-13", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: false, - cost: { input: 0.717, output: 0.717 }, - limit: { context: 34096, output: 4096 }, - }, - "qwq-plus": { - id: "qwq-plus", - name: "QwQ Plus", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - temperature: true, - knowledge: "2024-04", - release_date: "2025-03-05", - last_updated: "2025-03-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.23, output: 0.574 }, - limit: { context: 131072, output: 8192 }, - }, "qwen3-vl-235b-a22b": { id: "qwen3-vl-235b-a22b", name: "Qwen3-VL 235B-A22B", @@ -60201,21 +16721,21 @@ export const snapshot = { cost: { input: 0.286705, output: 1.14682, reasoning: 2.867051 }, limit: { context: 131072, output: 32768 }, }, - "qwen-mt-turbo": { - id: "qwen-mt-turbo", - name: "Qwen-MT Turbo", + "qwen-math-plus": { + id: "qwen-math-plus", + name: "Qwen Math Plus", family: "qwen", attachment: false, reasoning: false, - tool_call: false, + tool_call: true, temperature: true, knowledge: "2024-04", - release_date: "2025-01", - last_updated: "2025-01", + release_date: "2024-08-16", + last_updated: "2024-09-19", modalities: { input: ["text"], output: ["text"] }, open_weights: false, - cost: { input: 0.101, output: 0.28 }, - limit: { context: 16384, output: 8192 }, + cost: { input: 0.574, output: 1.721 }, + limit: { context: 4096, output: 3072 }, }, "qwen2-5-coder-32b-instruct": { id: "qwen2-5-coder-32b-instruct", @@ -60233,21 +16753,590 @@ export const snapshot = { cost: { input: 0.287, output: 0.861 }, limit: { context: 131072, output: 8192 }, }, - "qwen3-coder-plus": { - id: "qwen3-coder-plus", - name: "Qwen3 Coder Plus", + "qwen3-asr-flash": { + id: "qwen3-asr-flash", + name: "Qwen3-ASR Flash", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2024-04", + release_date: "2025-09-08", + last_updated: "2025-09-08", + modalities: { input: ["audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.032, output: 0.032 }, + limit: { context: 53248, output: 4096 }, + }, + "qwen-deep-research": { + id: "qwen-deep-research", + name: "Qwen Deep Research", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-01", + last_updated: "2024-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 7.742, output: 23.367 }, + limit: { context: 1000000, output: 32768 }, + }, + "qwen3-next-80b-a3b-thinking": { + id: "qwen3-next-80b-a3b-thinking", + name: "Qwen3-Next 80B-A3B (Thinking)", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09", + last_updated: "2025-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.144, output: 1.434 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen-mt-plus": { + id: "qwen-mt-plus", + name: "Qwen-MT Plus", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-04", + release_date: "2025-01", + last_updated: "2025-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.259, output: 0.775 }, + limit: { context: 16384, output: 8192 }, + }, + "deepseek-r1-distill-qwen-32b": { + id: "deepseek-r1-distill-qwen-32b", + name: "DeepSeek R1 Distill Qwen 32B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.287, output: 0.861 }, + limit: { context: 32768, output: 16384 }, + }, + "qwen-vl-max": { + id: "qwen-vl-max", + name: "Qwen-VL Max", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-04-08", + last_updated: "2025-08-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.23, output: 0.574 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen3-coder-flash": { + id: "qwen3-coder-flash", + name: "Qwen3 Coder Flash", family: "qwen", attachment: false, reasoning: false, tool_call: true, temperature: true, knowledge: "2025-04", - release_date: "2025-07-23", - last_updated: "2025-07-23", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.144, output: 0.574 }, + limit: { context: 1000000, output: 65536 }, + }, + "deepseek-r1-distill-qwen-7b": { + id: "deepseek-r1-distill-qwen-7b", + name: "DeepSeek R1 Distill Qwen 7B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.072, output: 0.144 }, + limit: { context: 32768, output: 16384 }, + }, + "qwen2-5-7b-instruct": { + id: "qwen2-5-7b-instruct", + name: "Qwen2.5 7B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-09", + last_updated: "2024-09", modalities: { input: ["text"], output: ["text"] }, open_weights: true, - cost: { input: 1, output: 5 }, - limit: { context: 1048576, output: 65536 }, + cost: { input: 0.072, output: 0.144 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen2-5-14b-instruct": { + id: "qwen2-5-14b-instruct", + name: "Qwen2.5 14B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-09", + last_updated: "2024-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.144, output: 0.431 }, + limit: { context: 131072, output: 8192 }, + }, + "tongyi-intent-detect-v3": { + id: "tongyi-intent-detect-v3", + name: "Tongyi Intent Detect V3", + family: "yi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-04", + release_date: "2024-01", + last_updated: "2024-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.058, output: 0.144 }, + limit: { context: 8192, output: 1024 }, + }, + "qwq-32b": { + id: "qwq-32b", + name: "QwQ 32B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-12", + last_updated: "2024-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.287, output: 0.861 }, + limit: { context: 131072, output: 8192 }, + }, + "moonshot-kimi-k2-instruct": { + id: "moonshot-kimi-k2-instruct", + name: "Moonshot Kimi K2 Instruct", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.574, output: 2.294 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen2-5-32b-instruct": { + id: "qwen2-5-32b-instruct", + name: "Qwen2.5 32B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-09", + last_updated: "2024-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.287, output: 0.861 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen3-next-80b-a3b-instruct": { + id: "qwen3-next-80b-a3b-instruct", + name: "Qwen3-Next 80B-A3B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09", + last_updated: "2025-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.144, output: 0.574 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen3-omni-flash-realtime": { + id: "qwen3-omni-flash-realtime", + name: "Qwen3-Omni Flash Realtime", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image", "audio"], output: ["text", "audio"] }, + open_weights: false, + cost: { input: 0.23, output: 0.918, input_audio: 3.584, output_audio: 7.168 }, + limit: { context: 65536, output: 16384 }, + }, + "qwen3-vl-30b-a3b": { + id: "qwen3-vl-30b-a3b", + name: "Qwen3-VL 30B-A3B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.108, output: 0.431, reasoning: 1.076 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen3-vl-plus": { + id: "qwen3-vl-plus", + name: "Qwen3-VL Plus", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-23", + last_updated: "2025-09-23", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.143353, output: 1.433525, reasoning: 4.300576 }, + limit: { context: 262144, output: 32768 }, + }, + "deepseek-v3-2-exp": { + id: "deepseek-v3-2-exp", + name: "DeepSeek V3.2 Exp", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.287, output: 0.431 }, + limit: { context: 131072, output: 65536 }, + }, + "qwen3-coder-480b-a35b-instruct": { + id: "qwen3-coder-480b-a35b-instruct", + name: "Qwen3-Coder 480B-A35B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.861, output: 3.441 }, + limit: { context: 262144, output: 65536 }, + }, + "deepseek-r1-distill-qwen-1-5b": { + id: "deepseek-r1-distill-qwen-1-5b", + name: "DeepSeek R1 Distill Qwen 1.5B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 32768, output: 16384 }, + }, + "qwen3-coder-30b-a3b-instruct": { + id: "qwen3-coder-30b-a3b-instruct", + name: "Qwen3-Coder 30B-A3B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.216, output: 0.861 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen2-5-coder-7b-instruct": { + id: "qwen2-5-coder-7b-instruct", + name: "Qwen2.5-Coder 7B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-11", + last_updated: "2024-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.144, output: 0.287 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen-turbo": { + id: "qwen-turbo", + name: "Qwen Turbo", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-11-01", + last_updated: "2025-07-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.044, output: 0.087, reasoning: 0.431 }, + limit: { context: 1000000, output: 16384 }, + }, + "qwen-mt-turbo": { + id: "qwen-mt-turbo", + name: "Qwen-MT Turbo", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-04", + release_date: "2025-01", + last_updated: "2025-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.101, output: 0.28 }, + limit: { context: 16384, output: 8192 }, + }, + "qwen2-5-math-72b-instruct": { + id: "qwen2-5-math-72b-instruct", + name: "Qwen2.5-Math 72B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-09", + last_updated: "2024-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.574, output: 1.721 }, + limit: { context: 4096, output: 3072 }, + }, + "qwen2-5-omni-7b": { + id: "qwen2-5-omni-7b", + name: "Qwen2.5-Omni 7B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-12", + last_updated: "2024-12", + modalities: { input: ["text", "image", "audio", "video"], output: ["text", "audio"] }, + open_weights: true, + cost: { input: 0.087, output: 0.345, input_audio: 5.448 }, + limit: { context: 32768, output: 2048 }, + }, + "qwen3.5-plus": { + id: "qwen3.5-plus", + name: "Qwen3.5 Plus", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02-16", + last_updated: "2026-02-16", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.573, output: 3.44, reasoning: 3.44 }, + limit: { context: 1000000, output: 65536 }, + }, + "deepseek-r1-distill-qwen-14b": { + id: "deepseek-r1-distill-qwen-14b", + name: "DeepSeek R1 Distill Qwen 14B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.144, output: 0.431 }, + limit: { context: 32768, output: 16384 }, + }, + "qwen2-5-vl-72b-instruct": { + id: "qwen2-5-vl-72b-instruct", + name: "Qwen2.5-VL 72B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-09", + last_updated: "2024-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 2.294, output: 6.881 }, + limit: { context: 131072, output: 8192 }, + }, + "deepseek-v3": { + id: "deepseek-v3", + name: "DeepSeek V3", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.287, output: 1.147 }, + limit: { context: 65536, output: 8192 }, + }, + "deepseek-r1-0528": { + id: "deepseek-r1-0528", + name: "DeepSeek R1 0528", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-05-28", + last_updated: "2025-05-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.574, output: 2.294 }, + limit: { context: 131072, output: 16384 }, + }, + "qvq-max": { + id: "qvq-max", + name: "QVQ Max", + family: "qvq", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-03-25", + last_updated: "2025-03-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.147, output: 4.588 }, + limit: { context: 131072, output: 8192 }, + }, + "kimi-k2-thinking": { + id: "kimi-k2-thinking", + name: "Moonshot Kimi K2 Thinking", + family: "kimi", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-11-06", + last_updated: "2025-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.574, output: 2.294 }, + limit: { context: 262144, output: 16384 }, + }, + "qwen3-14b": { + id: "qwen3-14b", + name: "Qwen3 14B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.144, output: 0.574, reasoning: 1.434 }, + limit: { context: 131072, output: 8192 }, + }, + "deepseek-r1-distill-llama-8b": { + id: "deepseek-r1-distill-llama-8b", + name: "DeepSeek R1 Distill Llama 8B", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 32768, output: 16384 }, + }, + "qwen-long": { + id: "qwen-long", + name: "Qwen Long", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-01-25", + last_updated: "2025-01-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.072, output: 0.287 }, + limit: { context: 10000000, output: 8192 }, }, "kimi/kimi-k2.5": { id: "kimi/kimi-k2.5", @@ -60267,21 +17356,20 @@ export const snapshot = { cost: { input: 0.6, output: 3, cache_read: 0.1 }, limit: { context: 262144, output: 262144 }, }, - "siliconflow/deepseek-r1-0528": { - id: "siliconflow/deepseek-r1-0528", - name: "siliconflow/deepseek-r1-0528", - family: "deepseek-thinking", + "MiniMax/MiniMax-M2.7": { + id: "MiniMax/MiniMax-M2.7", + name: "MiniMax-M2.7", + family: "minimax", attachment: false, reasoning: true, tool_call: true, - structured_output: true, temperature: true, - release_date: "2025-05-28", - last_updated: "2025-11-25", + release_date: "2026-03-18", + last_updated: "2026-03-18", modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.5, output: 2.18 }, - limit: { context: 163840, output: 32768 }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.06, cache_write: 0.375 }, + limit: { context: 204800, output: 131072 }, }, "siliconflow/deepseek-v3-0324": { id: "siliconflow/deepseek-v3-0324", @@ -60299,22 +17387,6 @@ export const snapshot = { cost: { input: 0.25, output: 1 }, limit: { context: 163840, output: 163840 }, }, - "siliconflow/deepseek-v3.1-terminus": { - id: "siliconflow/deepseek-v3.1-terminus", - name: "siliconflow/deepseek-v3.1-terminus", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-09-29", - last_updated: "2025-11-25", - modalities: { input: ["text"], output: ["text"] }, - open_weights: false, - cost: { input: 0.27, output: 1 }, - limit: { context: 163840, output: 65536 }, - }, "siliconflow/deepseek-v3.2": { id: "siliconflow/deepseek-v3.2", name: "siliconflow/deepseek-v3.2", @@ -60331,9 +17403,82 @@ export const snapshot = { cost: { input: 0.27, output: 0.42 }, limit: { context: 163840, output: 65536 }, }, - "MiniMax/MiniMax-M2.5": { - id: "MiniMax/MiniMax-M2.5", - name: "MiniMax M2.5", + "siliconflow/deepseek-r1-0528": { + id: "siliconflow/deepseek-r1-0528", + name: "siliconflow/deepseek-r1-0528", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-05-28", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 2.18 }, + limit: { context: 163840, output: 32768 }, + }, + "siliconflow/deepseek-v3.1-terminus": { + id: "siliconflow/deepseek-v3.1-terminus", + name: "siliconflow/deepseek-v3.1-terminus", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-29", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 1 }, + limit: { context: 163840, output: 65536 }, + }, + "qwen3-coder-plus": { + id: "qwen3-coder-plus", + name: "Qwen3 Coder Plus", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 5 }, + limit: { context: 1048576, output: 65536 }, + }, + }, + }, + "minimax-cn-coding-plan": { + id: "minimax-cn-coding-plan", + env: ["MINIMAX_API_KEY"], + npm: "@ai-sdk/anthropic", + api: "https://api.minimaxi.com/anthropic/v1", + name: "MiniMax Coding Plan (minimaxi.com)", + doc: "https://platform.minimaxi.com/docs/coding-plan/intro", + models: { + "MiniMax-M2": { + id: "MiniMax-M2", + name: "MiniMax-M2", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-10-27", + last_updated: "2025-10-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 196608, output: 128000 }, + }, + "MiniMax-M2.5": { + id: "MiniMax-M2.5", + name: "MiniMax-M2.5", family: "minimax", attachment: false, reasoning: true, @@ -60343,9 +17488,4897 @@ export const snapshot = { last_updated: "2026-02-12", modalities: { input: ["text"], output: ["text"] }, open_weights: true, - cost: { input: 0.301, output: 1.205 }, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, limit: { context: 204800, output: 131072 }, }, + "MiniMax-M2.7": { + id: "MiniMax-M2.7", + name: "MiniMax-M2.7", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMax-M2.7-highspeed": { + id: "MiniMax-M2.7-highspeed", + name: "MiniMax-M2.7-highspeed", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMax-M2.1": { + id: "MiniMax-M2.1", + name: "MiniMax-M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMax-M2.5-highspeed": { + id: "MiniMax-M2.5-highspeed", + name: "MiniMax-M2.5-highspeed", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-13", + last_updated: "2026-02-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + }, + }, + jiekou: { + id: "jiekou", + env: ["JIEKOU_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.jiekou.ai/openai", + name: "Jiekou.AI", + doc: "https://docs.jiekou.ai/docs/support/quickstart?utm_source=github_models.dev", + models: { + "gpt-5.1-codex-max": { + id: "gpt-5.1-codex-max", + name: "gpt-5.1-codex-max", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.125, output: 9 }, + limit: { context: 400000, output: 128000 }, + }, + "grok-4-1-fast-reasoning": { + id: "grok-4-1-fast-reasoning", + name: "grok-4-1-fast-reasoning", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.18, output: 0.45 }, + limit: { context: 2000000, output: 2000000 }, + }, + "claude-opus-4-5-20251101": { + id: "claude-opus-4-5-20251101", + name: "claude-opus-4-5-20251101", + family: "claude-opus", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 4.5, output: 22.5 }, + limit: { context: 200000, output: 65536 }, + }, + "gemini-2.5-flash-lite-preview-09-2025": { + id: "gemini-2.5-flash-lite-preview-09-2025", + name: "gemini-2.5-flash-lite-preview-09-2025", + family: "gemini-flash-lite", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.09, output: 0.36 }, + limit: { context: 1048576, output: 65536 }, + }, + "gpt-5.2-pro": { + id: "gpt-5.2-pro", + name: "gpt-5.2-pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 18.9, output: 151.2 }, + limit: { context: 400000, output: 128000 }, + }, + "gemini-3-flash-preview": { + id: "gemini-3-flash-preview", + name: "gemini-3-flash-preview", + family: "gemini-flash", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 3 }, + limit: { context: 1048576, output: 65536 }, + }, + "gpt-5-mini": { + id: "gpt-5-mini", + name: "gpt-5-mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.225, output: 1.8 }, + limit: { context: 400000, output: 128000 }, + }, + "gpt-5-nano": { + id: "gpt-5-nano", + name: "gpt-5-nano", + family: "gpt-nano", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.045, output: 0.36 }, + limit: { context: 400000, output: 128000 }, + }, + "gemini-3-pro-preview": { + id: "gemini-3-pro-preview", + name: "gemini-3-pro-preview", + family: "gemini-pro", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 1.8, output: 10.8 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-2.5-flash-preview-05-20": { + id: "gemini-2.5-flash-preview-05-20", + name: "gemini-2.5-flash-preview-05-20", + family: "gemini-flash", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.135, output: 3.15 }, + limit: { context: 1048576, output: 200000 }, + }, + "claude-sonnet-4-5-20250929": { + id: "claude-sonnet-4-5-20250929", + name: "claude-sonnet-4-5-20250929", + family: "claude-sonnet", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.7, output: 13.5 }, + limit: { context: 200000, output: 64000 }, + }, + "gemini-2.5-pro": { + id: "gemini-2.5-pro", + name: "gemini-2.5-pro", + family: "gemini-pro", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 1.125, output: 9 }, + limit: { context: 1048576, output: 65535 }, + }, + "grok-4-1-fast-non-reasoning": { + id: "grok-4-1-fast-non-reasoning", + name: "grok-4-1-fast-non-reasoning", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.18, output: 0.45 }, + limit: { context: 2000000, output: 2000000 }, + }, + "gpt-5.2": { + id: "gpt-5.2", + name: "gpt-5.2", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.575, output: 12.6 }, + limit: { context: 400000, output: 128000 }, + }, + "o4-mini": { + id: "o4-mini", + name: "o4-mini", + family: "o", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4 }, + limit: { context: 200000, output: 100000 }, + }, + "gemini-2.5-pro-preview-06-05": { + id: "gemini-2.5-pro-preview-06-05", + name: "gemini-2.5-pro-preview-06-05", + family: "gemini-pro", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 1.125, output: 9 }, + limit: { context: 1048576, output: 200000 }, + }, + "gemini-2.5-flash-lite-preview-06-17": { + id: "gemini-2.5-flash-lite-preview-06-17", + name: "gemini-2.5-flash-lite-preview-06-17", + family: "gemini-flash-lite", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "video", "image", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.09, output: 0.36 }, + limit: { context: 1048576, output: 65535 }, + }, + "gpt-5.2-codex": { + id: "gpt-5.2-codex", + name: "gpt-5.2-codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14 }, + limit: { context: 400000, output: 128000 }, + }, + "gemini-2.5-flash": { + id: "gemini-2.5-flash", + name: "gemini-2.5-flash", + family: "gemini-flash", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 2.25 }, + limit: { context: 1048576, output: 65535 }, + }, + "gpt-5.1-codex-mini": { + id: "gpt-5.1-codex-mini", + name: "gpt-5.1-codex-mini", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.225, output: 1.8 }, + limit: { context: 400000, output: 128000 }, + }, + "grok-code-fast-1": { + id: "grok-code-fast-1", + name: "grok-code-fast-1", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.18, output: 1.35 }, + limit: { context: 256000, output: 256000 }, + }, + "gpt-5.1": { + id: "gpt-5.1", + name: "gpt-5.1", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02", + last_updated: "2026-02", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.125, output: 9 }, + limit: { context: 400000, output: 128000 }, + }, + "grok-4-fast-reasoning": { + id: "grok-4-fast-reasoning", + name: "grok-4-fast-reasoning", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.18, output: 0.45 }, + limit: { context: 2000000, output: 2000000 }, + }, + "o3-mini": { + id: "o3-mini", + name: "o3-mini", + family: "o", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4 }, + limit: { context: 131072, output: 131072 }, + }, + "grok-4-0709": { + id: "grok-4-0709", + name: "grok-4-0709", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.7, output: 13.5 }, + limit: { context: 256000, output: 8192 }, + }, + "gpt-5-codex": { + id: "gpt-5-codex", + name: "gpt-5-codex", + family: "gpt-codex", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.125, output: 9 }, + limit: { context: 400000, output: 128000 }, + }, + "claude-opus-4-1-20250805": { + id: "claude-opus-4-1-20250805", + name: "claude-opus-4-1-20250805", + family: "claude-opus", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 13.5, output: 67.5 }, + limit: { context: 200000, output: 32000 }, + }, + "claude-haiku-4-5-20251001": { + id: "claude-haiku-4-5-20251001", + name: "claude-haiku-4-5-20251001", + family: "claude-haiku", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.9, output: 4.5 }, + limit: { context: 20000, output: 64000 }, + }, + "claude-sonnet-4-20250514": { + id: "claude-sonnet-4-20250514", + name: "claude-sonnet-4-20250514", + family: "claude-sonnet", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.7, output: 13.5 }, + limit: { context: 200000, output: 64000 }, + }, + "claude-opus-4-6": { + id: "claude-opus-4-6", + name: "claude-opus-4-6", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02", + last_updated: "2026-02", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25 }, + limit: { context: 1000000, output: 128000 }, + }, + o3: { + id: "o3", + name: "o3", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 10, output: 40 }, + limit: { context: 131072, output: 131072 }, + }, + "gpt-5-pro": { + id: "gpt-5-pro", + name: "gpt-5-pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 13.5, output: 108 }, + limit: { context: 400000, output: 272000 }, + }, + "gemini-2.5-flash-lite": { + id: "gemini-2.5-flash-lite", + name: "gemini-2.5-flash-lite", + family: "gemini-flash-lite", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.09, output: 0.36 }, + limit: { context: 1048576, output: 65535 }, + }, + "gpt-5-chat-latest": { + id: "gpt-5-chat-latest", + name: "gpt-5-chat-latest", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.125, output: 9 }, + limit: { context: 400000, output: 128000 }, + }, + "claude-opus-4-20250514": { + id: "claude-opus-4-20250514", + name: "claude-opus-4-20250514", + family: "claude-opus", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 13.5, output: 67.5 }, + limit: { context: 200000, output: 32000 }, + }, + "gpt-5.1-codex": { + id: "gpt-5.1-codex", + name: "gpt-5.1-codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.125, output: 9 }, + limit: { context: 400000, output: 128000 }, + }, + "grok-4-fast-non-reasoning": { + id: "grok-4-fast-non-reasoning", + name: "grok-4-fast-non-reasoning", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.18, output: 0.45 }, + limit: { context: 2000000, output: 2000000 }, + }, + "deepseek/deepseek-v3-0324": { + id: "deepseek/deepseek-v3-0324", + name: "DeepSeek V3 0324", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.28, output: 1.14 }, + limit: { context: 163840, output: 163840 }, + }, + "deepseek/deepseek-v3.1": { + id: "deepseek/deepseek-v3.1", + name: "DeepSeek V3.1", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 1 }, + limit: { context: 163840, output: 32768 }, + }, + "deepseek/deepseek-r1-0528": { + id: "deepseek/deepseek-r1-0528", + name: "DeepSeek R1 0528", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.7, output: 2.5 }, + limit: { context: 163840, output: 32768 }, + }, + "zai-org/glm-4.7": { + id: "zai-org/glm-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2 }, + limit: { context: 204800, output: 131072 }, + }, + "zai-org/glm-4.5": { + id: "zai-org/glm-4.5", + name: "GLM-4.5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2 }, + limit: { context: 131072, output: 98304 }, + }, + "zai-org/glm-4.5v": { + id: "zai-org/glm-4.5v", + name: "GLM 4.5V", + family: "glmv", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 1.8 }, + limit: { context: 65536, output: 16384 }, + }, + "zai-org/glm-4.7-flash": { + id: "zai-org/glm-4.7-flash", + name: "GLM-4.7-Flash", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.4 }, + limit: { context: 200000, output: 128000 }, + }, + "minimaxai/minimax-m1-80k": { + id: "minimaxai/minimax-m1-80k", + name: "MiniMax M1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.2 }, + limit: { context: 1000000, output: 40000 }, + }, + "xiaomimimo/mimo-v2-flash": { + id: "xiaomimimo/mimo-v2-flash", + name: "XiaomiMiMo/MiMo-V2-Flash", + family: "mimo", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 131072 }, + }, + "baidu/ernie-4.5-vl-424b-a47b": { + id: "baidu/ernie-4.5-vl-424b-a47b", + name: "ERNIE 4.5 VL 424B A47B", + family: "ernie", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.42, output: 1.25 }, + limit: { context: 123000, output: 16000 }, + }, + "baidu/ernie-4.5-300b-a47b-paddle": { + id: "baidu/ernie-4.5-300b-a47b-paddle", + name: "ERNIE 4.5 300B A47B", + family: "ernie", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.28, output: 1.1 }, + limit: { context: 123000, output: 12000 }, + }, + "minimax/minimax-m2.1": { + id: "minimax/minimax-m2.1", + name: "Minimax M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 204800, output: 131072 }, + }, + "qwen/qwen3-235b-a22b-instruct-2507": { + id: "qwen/qwen3-235b-a22b-instruct-2507", + name: "Qwen3 235B A22B Instruct 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.8 }, + limit: { context: 131072, output: 16384 }, + }, + "qwen/qwen3-32b-fp8": { + id: "qwen/qwen3-32b-fp8", + name: "Qwen3 32B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.45 }, + limit: { context: 40960, output: 20000 }, + }, + "qwen/qwen3-235b-a22b-thinking-2507": { + id: "qwen/qwen3-235b-a22b-thinking-2507", + name: "Qwen3 235B A22b Thinking 2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 3 }, + limit: { context: 131072, output: 131072 }, + }, + "qwen/qwen3-next-80b-a3b-thinking": { + id: "qwen/qwen3-next-80b-a3b-thinking", + name: "Qwen3 Next 80B A3B Thinking", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 1.5 }, + limit: { context: 65536, output: 65536 }, + }, + "qwen/qwen3-next-80b-a3b-instruct": { + id: "qwen/qwen3-next-80b-a3b-instruct", + name: "Qwen3 Next 80B A3B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 1.5 }, + limit: { context: 65536, output: 65536 }, + }, + "qwen/qwen3-30b-a3b-fp8": { + id: "qwen/qwen3-30b-a3b-fp8", + name: "Qwen3 30B A3B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.09, output: 0.45 }, + limit: { context: 40960, output: 20000 }, + }, + "qwen/qwen3-coder-next": { + id: "qwen/qwen3-coder-next", + name: "qwen/qwen3-coder-next", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02", + last_updated: "2026-02", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 1.5 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen/qwen3-coder-480b-a35b-instruct": { + id: "qwen/qwen3-coder-480b-a35b-instruct", + name: "Qwen3 Coder 480B A35B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.29, output: 1.2 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen/qwen3-235b-a22b-fp8": { + id: "qwen/qwen3-235b-a22b-fp8", + name: "Qwen3 235B A22B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 40960, output: 20000 }, + }, + "moonshotai/kimi-k2.5": { + id: "moonshotai/kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3 }, + limit: { context: 262144, output: 262144 }, + }, + "moonshotai/kimi-k2-instruct": { + id: "moonshotai/kimi-k2-instruct", + name: "Kimi K2 Instruct", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.57, output: 2.3 }, + limit: { context: 131072, output: 131072 }, + }, + "moonshotai/kimi-k2-0905": { + id: "moonshotai/kimi-k2-0905", + name: "Kimi K2 0905", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5 }, + limit: { context: 262144, output: 262144 }, + }, + }, + }, + bailing: { + id: "bailing", + env: ["BAILING_API_TOKEN"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.tbox.cn/api/llm/v1/chat/completions", + name: "Bailing", + doc: "https://alipaytbox.yuque.com/sxs0ba/ling/intro", + models: { + "Ring-1T": { + id: "Ring-1T", + name: "Ring-1T", + family: "ring", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2024-06", + release_date: "2025-10", + last_updated: "2025-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.57, output: 2.29 }, + limit: { context: 128000, output: 32000 }, + }, + "Ling-1T": { + id: "Ling-1T", + name: "Ling-1T", + family: "ling", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-06", + release_date: "2025-10", + last_updated: "2025-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.57, output: 2.29 }, + limit: { context: 128000, output: 32000 }, + }, + }, + }, + iflowcn: { + id: "iflowcn", + env: ["IFLOW_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://apis.iflow.cn/v1", + name: "iFlow", + doc: "https://platform.iflow.cn/en/docs", + models: { + "qwen3-coder-plus": { + id: "qwen3-coder-plus", + name: "Qwen3-Coder-Plus", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-01", + last_updated: "2025-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 64000 }, + }, + "qwen3-32b": { + id: "qwen3-32b", + name: "Qwen3-32B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 32000 }, + }, + "deepseek-r1": { + id: "deepseek-r1", + name: "DeepSeek-R1", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 32000 }, + }, + "qwen3-max": { + id: "qwen3-max", + name: "Qwen3-Max", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 32000 }, + }, + "qwen3-235b-a22b-instruct": { + id: "qwen3-235b-a22b-instruct", + name: "Qwen3-235B-A22B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-01", + last_updated: "2025-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 64000 }, + }, + "qwen3-235b-a22b-thinking-2507": { + id: "qwen3-235b-a22b-thinking-2507", + name: "Qwen3-235B-A22B-Thinking", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-01", + last_updated: "2025-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 64000 }, + }, + "kimi-k2-0905": { + id: "kimi-k2-0905", + name: "Kimi-K2-0905", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 64000 }, + }, + "glm-4.6": { + id: "glm-4.6", + name: "GLM-4.6", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12-01", + last_updated: "2025-11-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 200000, output: 128000 }, + }, + "qwen3-vl-plus": { + id: "qwen3-vl-plus", + name: "Qwen3-VL-Plus", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 32000 }, + }, + "deepseek-v3.2": { + id: "deepseek-v3.2", + name: "DeepSeek-V3.2-Exp", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 64000 }, + }, + "qwen3-235b": { + id: "qwen3-235b", + name: "Qwen3-235B-A22B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 32000 }, + }, + "kimi-k2": { + id: "kimi-k2", + name: "Kimi-K2", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 64000 }, + }, + "qwen3-max-preview": { + id: "qwen3-max-preview", + name: "Qwen3-Max-Preview", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 32000 }, + }, + "deepseek-v3": { + id: "deepseek-v3", + name: "DeepSeek-V3", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12-26", + last_updated: "2024-12-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 32000 }, + }, + }, + }, + v0: { + id: "v0", + env: ["V0_API_KEY"], + npm: "@ai-sdk/vercel", + name: "v0", + doc: "https://sdk.vercel.ai/providers/ai-sdk-providers/vercel", + models: { + "v0-1.5-lg": { + id: "v0-1.5-lg", + name: "v0-1.5-lg", + family: "v0", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-06-09", + last_updated: "2025-06-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75 }, + limit: { context: 512000, output: 32000 }, + }, + "v0-1.0-md": { + id: "v0-1.0-md", + name: "v0-1.0-md", + family: "v0", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 128000, output: 32000 }, + }, + "v0-1.5-md": { + id: "v0-1.5-md", + name: "v0-1.5-md", + family: "v0", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-06-09", + last_updated: "2025-06-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 128000, output: 32000 }, + }, + }, + }, + huggingface: { + id: "huggingface", + env: ["HF_TOKEN"], + npm: "@ai-sdk/openai-compatible", + api: "https://router.huggingface.co/v1", + name: "Hugging Face", + doc: "https://huggingface.co/docs/inference-providers", + models: { + "Qwen/Qwen3.5-397B-A17B": { + id: "Qwen/Qwen3.5-397B-A17B", + name: "Qwen3.5-397B-A17B", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02-01", + last_updated: "2026-02-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3.6 }, + limit: { context: 262144, output: 32768 }, + }, + "Qwen/Qwen3-Coder-Next": { + id: "Qwen/Qwen3-Coder-Next", + name: "Qwen3-Coder-Next", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02-03", + last_updated: "2026-02-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 1.5 }, + limit: { context: 262144, output: 65536 }, + }, + "Qwen/Qwen3-Next-80B-A3B-Instruct": { + id: "Qwen/Qwen3-Next-80B-A3B-Instruct", + name: "Qwen3-Next-80B-A3B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-11", + last_updated: "2025-09-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.25, output: 1 }, + limit: { context: 262144, output: 66536 }, + }, + "Qwen/Qwen3-Embedding-8B": { + id: "Qwen/Qwen3-Embedding-8B", + name: "Qwen 3 Embedding 8B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2024-12", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.01, output: 0 }, + limit: { context: 32000, output: 4096 }, + }, + "Qwen/Qwen3-235B-A22B-Thinking-2507": { + id: "Qwen/Qwen3-235B-A22B-Thinking-2507", + name: "Qwen3-235B-A22B-Thinking-2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-25", + last_updated: "2025-07-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 3 }, + limit: { context: 262144, output: 131072 }, + }, + "Qwen/Qwen3-Next-80B-A3B-Thinking": { + id: "Qwen/Qwen3-Next-80B-A3B-Thinking", + name: "Qwen3-Next-80B-A3B-Thinking", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-11", + last_updated: "2025-09-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 2 }, + limit: { context: 262144, output: 131072 }, + }, + "Qwen/Qwen3-Embedding-4B": { + id: "Qwen/Qwen3-Embedding-4B", + name: "Qwen 3 Embedding 4B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2024-12", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.01, output: 0 }, + limit: { context: 32000, output: 2048 }, + }, + "Qwen/Qwen3-Coder-480B-A35B-Instruct": { + id: "Qwen/Qwen3-Coder-480B-A35B-Instruct", + name: "Qwen3-Coder-480B-A35B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2, output: 2 }, + limit: { context: 262144, output: 66536 }, + }, + "zai-org/GLM-4.7-Flash": { + id: "zai-org/GLM-4.7-Flash", + name: "GLM-4.7-Flash", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-08-08", + last_updated: "2025-08-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 200000, output: 128000 }, + }, + "zai-org/GLM-4.7": { + id: "zai-org/GLM-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2, cache_read: 0.11 }, + limit: { context: 204800, output: 131072 }, + }, + "zai-org/GLM-5.1": { + id: "zai-org/GLM-5.1", + name: "GLM-5.1", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-04-03", + last_updated: "2026-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3.2, cache_read: 0.2 }, + limit: { context: 202752, output: 131072 }, + }, + "zai-org/GLM-5": { + id: "zai-org/GLM-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3.2, cache_read: 0.2 }, + limit: { context: 202752, output: 131072 }, + }, + "XiaomiMiMo/MiMo-V2-Flash": { + id: "XiaomiMiMo/MiMo-V2-Flash", + name: "MiMo-V2-Flash", + family: "mimo", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-12-16", + last_updated: "2025-12-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 262144, output: 4096 }, + }, + "deepseek-ai/DeepSeek-R1-0528": { + id: "deepseek-ai/DeepSeek-R1-0528", + name: "DeepSeek-R1-0528", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2025-05-28", + last_updated: "2025-05-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 3, output: 5 }, + limit: { context: 163840, output: 163840 }, + }, + "deepseek-ai/DeepSeek-V3.2": { + id: "deepseek-ai/DeepSeek-V3.2", + name: "DeepSeek-V3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.28, output: 0.4 }, + limit: { context: 163840, output: 65536 }, + }, + "moonshotai/Kimi-K2-Thinking": { + id: "moonshotai/Kimi-K2-Thinking", + name: "Kimi-K2-Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-08", + release_date: "2025-11-06", + last_updated: "2025-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, + limit: { context: 262144, output: 262144 }, + }, + "moonshotai/Kimi-K2-Instruct": { + id: "moonshotai/Kimi-K2-Instruct", + name: "Kimi-K2-Instruct", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-07-14", + last_updated: "2025-07-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3 }, + limit: { context: 131072, output: 16384 }, + }, + "moonshotai/Kimi-K2-Instruct-0905": { + id: "moonshotai/Kimi-K2-Instruct-0905", + name: "Kimi-K2-Instruct-0905", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09-04", + last_updated: "2025-09-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3 }, + limit: { context: 262144, output: 16384 }, + }, + "moonshotai/Kimi-K2.5": { + id: "moonshotai/Kimi-K2.5", + name: "Kimi-K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01-01", + last_updated: "2026-01-01", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3, cache_read: 0.1 }, + limit: { context: 262144, output: 262144 }, + }, + "MiniMaxAI/MiniMax-M2.5": { + id: "MiniMaxAI/MiniMax-M2.5", + name: "MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.03 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMaxAI/MiniMax-M2.1": { + id: "MiniMaxAI/MiniMax-M2.1", + name: "MiniMax-M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-10", + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 204800, output: 131072 }, + }, + }, + }, + zenmux: { + id: "zenmux", + env: ["ZENMUX_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://zenmux.ai/api/v1", + name: "ZenMux", + doc: "https://docs.zenmux.ai", + models: { + "deepseek/deepseek-chat": { + id: "deepseek/deepseek-chat", + name: "DeepSeek-V3.2 (Non-thinking Mode)", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.28, output: 0.42, cache_read: 0.03 }, + limit: { context: 128000, output: 64000 }, + }, + "deepseek/deepseek-v3.2-exp": { + id: "deepseek/deepseek-v3.2-exp", + name: "DeepSeek-V3.2-Exp", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.22, output: 0.33 }, + limit: { context: 163000, output: 64000 }, + }, + "deepseek/deepseek-v3.2": { + id: "deepseek/deepseek-v3.2", + name: "DeepSeek V3.2", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-12-05", + last_updated: "2025-12-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.28, output: 0.43 }, + limit: { context: 128000, output: 64000 }, + }, + "inclusionai/ring-1t": { + id: "inclusionai/ring-1t", + name: "Ring-1T", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-10-12", + last_updated: "2025-10-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.56, output: 2.24, cache_read: 0.11 }, + limit: { context: 128000, output: 64000 }, + }, + "inclusionai/ling-1t": { + id: "inclusionai/ling-1t", + name: "Ling-1T", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-10-09", + last_updated: "2025-10-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.56, output: 2.24, cache_read: 0.11 }, + limit: { context: 128000, output: 64000 }, + }, + "stepfun/step-3.5-flash-free": { + id: "stepfun/step-3.5-flash-free", + name: "Step 3.5 Flash (Free)", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-02-02", + last_updated: "2026-02-02", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 64000 }, + }, + "stepfun/step-3.5-flash": { + id: "stepfun/step-3.5-flash", + name: "Step 3.5 Flash", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-02-02", + last_updated: "2026-02-02", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 256000, output: 64000 }, + }, + "stepfun/step-3": { + id: "stepfun/step-3", + name: "Step-3", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-07-31", + last_updated: "2025-07-31", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.21, output: 0.57 }, + limit: { context: 65536, output: 64000 }, + }, + "kuaishou/kat-coder-pro-v2": { + id: "kuaishou/kat-coder-pro-v2", + name: "KAT-Coder-Pro-V2", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2026-03-30", + last_updated: "2026-03-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2, cache_read: 0.06 }, + limit: { context: 256000, output: 80000 }, + }, + "x-ai/grok-4-fast": { + id: "x-ai/grok-4-fast", + name: "Grok 4 Fast", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-09-19", + last_updated: "2025-09-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 64000 }, + }, + "x-ai/grok-code-fast-1": { + id: "x-ai/grok-code-fast-1", + name: "Grok Code Fast 1", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-08-26", + last_updated: "2025-08-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.5, cache_read: 0.02 }, + limit: { context: 256000, output: 64000 }, + }, + "x-ai/grok-4.1-fast-non-reasoning": { + id: "x-ai/grok-4.1-fast-non-reasoning", + name: "Grok 4.1 Fast Non Reasoning", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-11-20", + last_updated: "2025-11-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 64000 }, + }, + "x-ai/grok-4": { + id: "x-ai/grok-4", + name: "Grok 4", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.75 }, + limit: { context: 256000, output: 64000 }, + }, + "x-ai/grok-4.1-fast": { + id: "x-ai/grok-4.1-fast", + name: "Grok 4.1 Fast", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-11-20", + last_updated: "2025-11-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 64000 }, + }, + "x-ai/grok-4.2-fast": { + id: "x-ai/grok-4.2-fast", + name: "Grok 4.2 Fast", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08-31", + release_date: "2026-03-20", + last_updated: "2026-03-20", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 9 }, + limit: { context: 2000000, output: 30000 }, + }, + "x-ai/grok-4.2-fast-non-reasoning": { + id: "x-ai/grok-4.2-fast-non-reasoning", + name: "Grok 4.2 Fast Non Reasoning", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-08-31", + release_date: "2026-03-20", + last_updated: "2026-03-20", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 9 }, + limit: { context: 2000000, output: 30000 }, + }, + "openai/gpt-5.3-chat": { + id: "openai/gpt-5.3-chat", + name: "GPT-5.3 Chat", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-08-31", + release_date: "2026-03-20", + last_updated: "2026-03-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14 }, + limit: { context: 128000, output: 16380 }, + provider: { npm: "@ai-sdk/openai", api: "https://zenmux.ai/api/v1" }, + }, + "openai/gpt-5.2-pro": { + id: "openai/gpt-5.2-pro", + name: "GPT-5.2-Pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 21, output: 168 }, + limit: { context: 400000, output: 128000 }, + provider: { npm: "@ai-sdk/openai", api: "https://zenmux.ai/api/v1" }, + }, + "openai/gpt-5.3-codex": { + id: "openai/gpt-5.3-codex", + name: "GPT-5.3 Codex", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08-31", + release_date: "2026-03-20", + last_updated: "2026-03-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14 }, + limit: { context: 400000, output: 128000 }, + provider: { npm: "@ai-sdk/openai", api: "https://zenmux.ai/api/v1" }, + }, + "openai/gpt-5.2": { + id: "openai/gpt-5.2", + name: "GPT-5.2", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2025-01-01", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["image", "text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.17 }, + limit: { context: 400000, output: 64000 }, + provider: { npm: "@ai-sdk/openai", api: "https://zenmux.ai/api/v1" }, + }, + "openai/gpt-5.4-mini": { + id: "openai/gpt-5.4-mini", + name: "GPT-5.4 Mini", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-08-31", + release_date: "2026-03-20", + last_updated: "2026-03-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.75, output: 4.5 }, + limit: { context: 400000, output: 128000 }, + provider: { npm: "@ai-sdk/openai", api: "https://zenmux.ai/api/v1" }, + }, + "openai/gpt-5.1-chat": { + id: "openai/gpt-5.1-chat", + name: "GPT-5.1 Chat", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["pdf", "image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.12 }, + limit: { context: 128000, output: 64000 }, + provider: { npm: "@ai-sdk/openai", api: "https://zenmux.ai/api/v1" }, + }, + "openai/gpt-5.4-nano": { + id: "openai/gpt-5.4-nano", + name: "GPT-5.4 Nano", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-08-31", + release_date: "2026-03-20", + last_updated: "2026-03-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.25 }, + limit: { context: 400000, output: 128000 }, + provider: { npm: "@ai-sdk/openai", api: "https://zenmux.ai/api/v1" }, + }, + "openai/gpt-5.2-codex": { + id: "openai/gpt-5.2-codex", + name: "GPT-5.2-Codex", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2025-01-01", + release_date: "2026-01-15", + last_updated: "2026-01-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.17 }, + limit: { context: 400000, output: 64000 }, + provider: { npm: "@ai-sdk/openai", api: "https://zenmux.ai/api/v1" }, + }, + "openai/gpt-5.1-codex-mini": { + id: "openai/gpt-5.1-codex-mini", + name: "GPT-5.1-Codex-Mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.03 }, + limit: { context: 400000, output: 64000 }, + provider: { npm: "@ai-sdk/openai", api: "https://zenmux.ai/api/v1" }, + }, + "openai/gpt-5.1": { + id: "openai/gpt-5.1", + name: "GPT-5.1", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["image", "text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.12 }, + limit: { context: 400000, output: 64000 }, + provider: { npm: "@ai-sdk/openai", api: "https://zenmux.ai/api/v1" }, + }, + "openai/gpt-5.4-pro": { + id: "openai/gpt-5.4-pro", + name: "GPT-5.4 Pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08-31", + release_date: "2026-03-20", + last_updated: "2026-03-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 45, output: 225 }, + limit: { context: 1050000, output: 128000 }, + provider: { npm: "@ai-sdk/openai", api: "https://zenmux.ai/api/v1" }, + }, + "openai/gpt-5-codex": { + id: "openai/gpt-5-codex", + name: "GPT-5 Codex", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-09-23", + last_updated: "2025-09-23", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.12 }, + limit: { context: 400000, output: 64000 }, + provider: { npm: "@ai-sdk/openai", api: "https://zenmux.ai/api/v1" }, + }, + "openai/gpt-5.4": { + id: "openai/gpt-5.4", + name: "GPT-5.4", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08-31", + release_date: "2026-03-20", + last_updated: "2026-03-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3.75, output: 18.75 }, + limit: { context: 1050000, output: 128000 }, + provider: { npm: "@ai-sdk/openai", api: "https://zenmux.ai/api/v1" }, + }, + "openai/gpt-5": { + id: "openai/gpt-5", + name: "GPT-5", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.12 }, + limit: { context: 400000, output: 64000 }, + provider: { npm: "@ai-sdk/openai", api: "https://zenmux.ai/api/v1" }, + }, + "openai/gpt-5.1-codex": { + id: "openai/gpt-5.1-codex", + name: "GPT-5.1-Codex", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.12 }, + limit: { context: 400000, output: 64000 }, + provider: { npm: "@ai-sdk/openai", api: "https://zenmux.ai/api/v1" }, + }, + "z-ai/glm-4.7-flash-free": { + id: "z-ai/glm-4.7-flash-free", + name: "GLM 4.7 Flash (Free)", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 200000, output: 64000 }, + }, + "z-ai/glm-5v-turbo": { + id: "z-ai/glm-5v-turbo", + name: "GLM 5V Turbo", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-04-01", + last_updated: "2026-04-01", + modalities: { input: ["text", "image", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.726, output: 3.1946, cache_read: 0.1743 }, + limit: { context: 200000, output: 128000 }, + }, + "z-ai/glm-4.7": { + id: "z-ai/glm-4.7", + name: "GLM 4.7", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.28, output: 1.14, cache_read: 0.06 }, + limit: { context: 200000, output: 64000 }, + }, + "z-ai/glm-5": { + id: "z-ai/glm-5", + name: "GLM 5", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.58, output: 2.6, cache_read: 0.14 }, + limit: { context: 200000, output: 128000 }, + }, + "z-ai/glm-4.7-flashx": { + id: "z-ai/glm-4.7-flashx", + name: "GLM 4.7 FlashX", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.07, output: 0.42, cache_read: 0.01 }, + limit: { context: 200000, output: 64000 }, + }, + "z-ai/glm-4.6v-flash-free": { + id: "z-ai/glm-4.6v-flash-free", + name: "GLM 4.6V Flash (Free)", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-12-08", + last_updated: "2025-12-08", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 200000, output: 64000 }, + }, + "z-ai/glm-5.1": { + id: "z-ai/glm-5.1", + name: "GLM-5.1", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-04-03", + last_updated: "2026-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8781, output: 3.5126, cache_read: 0.1903 }, + limit: { context: 200000, output: 131072 }, + }, + "z-ai/glm-4.6v-flash": { + id: "z-ai/glm-4.6v-flash", + name: "GLM 4.6V FlashX", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-12-08", + last_updated: "2025-12-08", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.02, output: 0.21, cache_read: 0.0043 }, + limit: { context: 200000, output: 64000 }, + }, + "z-ai/glm-4.5": { + id: "z-ai/glm-4.5", + name: "GLM 4.5", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-07-25", + last_updated: "2025-07-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.35, output: 1.54, cache_read: 0.07 }, + limit: { context: 128000, output: 64000 }, + }, + "z-ai/glm-4.5-air": { + id: "z-ai/glm-4.5-air", + name: "GLM 4.5 Air", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-07-25", + last_updated: "2025-07-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.11, output: 0.56, cache_read: 0.02 }, + limit: { context: 128000, output: 64000 }, + }, + "z-ai/glm-5-turbo": { + id: "z-ai/glm-5-turbo", + name: "GLM 5 Turbo", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-03-20", + last_updated: "2026-03-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.88, output: 3.48 }, + limit: { context: 200000, output: 128000 }, + }, + "z-ai/glm-4.6": { + id: "z-ai/glm-4.6", + name: "GLM 4.6", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.35, output: 1.54, cache_read: 0.07 }, + limit: { context: 200000, output: 64000 }, + }, + "z-ai/glm-4.6v": { + id: "z-ai/glm-4.6v", + name: "GLM 4.6V", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-12-08", + last_updated: "2025-12-08", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.42, cache_read: 0.03 }, + limit: { context: 200000, output: 64000 }, + }, + "volcengine/doubao-seed-2.0-code": { + id: "volcengine/doubao-seed-2.0-code", + name: "Doubao Seed 2.0 Code", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-03-20", + last_updated: "2026-03-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.9, output: 4.48 }, + limit: { context: 256000, output: 32000 }, + }, + "volcengine/doubao-seed-code": { + id: "volcengine/doubao-seed-code", + name: "Doubao-Seed-Code", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-11-11", + last_updated: "2025-11-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.17, output: 1.12, cache_read: 0.03 }, + limit: { context: 256000, output: 64000 }, + }, + "volcengine/doubao-seed-2.0-mini": { + id: "volcengine/doubao-seed-2.0-mini", + name: "Doubao-Seed-2.0-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2026-02-14", + release_date: "2026-02-14", + last_updated: "2026-02-14", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.03, output: 0.28, cache_read: 0.01, cache_write: 0.0024 }, + limit: { context: 256000, output: 64000 }, + }, + "volcengine/doubao-seed-2.0-lite": { + id: "volcengine/doubao-seed-2.0-lite", + name: "Doubao-Seed-2.0-lite", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2026-02-14", + release_date: "2026-02-14", + last_updated: "2026-02-14", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.09, output: 0.51, cache_read: 0.02, cache_write: 0.0024 }, + limit: { context: 256000, output: 64000 }, + }, + "volcengine/doubao-seed-1.8": { + id: "volcengine/doubao-seed-1.8", + name: "Doubao-Seed-1.8", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-12-18", + last_updated: "2025-12-18", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.11, output: 0.28, cache_read: 0.02, cache_write: 0.0024 }, + limit: { context: 256000, output: 64000 }, + }, + "volcengine/doubao-seed-2.0-pro": { + id: "volcengine/doubao-seed-2.0-pro", + name: "Doubao-Seed-2.0-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2026-02-14", + release_date: "2026-02-14", + last_updated: "2026-02-14", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.45, output: 2.24, cache_read: 0.09, cache_write: 0.0024 }, + limit: { context: 256000, output: 64000 }, + }, + "baidu/ernie-5.0-thinking-preview": { + id: "baidu/ernie-5.0-thinking-preview", + name: "ERNIE 5.0", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-01-22", + last_updated: "2026-01-22", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.84, output: 3.37 }, + limit: { context: 128000, output: 64000 }, + }, + "minimax/minimax-m2.7": { + id: "minimax/minimax-m2.7", + name: "MiniMax M2.7", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-03-20", + last_updated: "2026-03-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3055, output: 1.2219 }, + limit: { context: 204800, output: 131070 }, + provider: { npm: "@ai-sdk/anthropic", api: "https://zenmux.ai/api/anthropic/v1" }, + }, + "minimax/minimax-m2.7-highspeed": { + id: "minimax/minimax-m2.7-highspeed", + name: "MiniMax M2.7 highspeed", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-03-20", + last_updated: "2026-03-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.611, output: 2.4439 }, + limit: { context: 204800, output: 131070 }, + provider: { npm: "@ai-sdk/anthropic", api: "https://zenmux.ai/api/anthropic/v1" }, + }, + "minimax/minimax-m2": { + id: "minimax/minimax-m2", + name: "MiniMax M2", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-10-27", + last_updated: "2025-10-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2, cache_read: 0.03, cache_write: 0.38 }, + limit: { context: 204000, output: 64000 }, + provider: { npm: "@ai-sdk/anthropic", api: "https://zenmux.ai/api/anthropic/v1" }, + }, + "minimax/minimax-m2.1": { + id: "minimax/minimax-m2.1", + name: "MiniMax M2.1", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2, cache_read: 0.03, cache_write: 0.38 }, + limit: { context: 204000, output: 64000 }, + provider: { npm: "@ai-sdk/anthropic", api: "https://zenmux.ai/api/anthropic/v1" }, + }, + "minimax/minimax-m2.5-lightning": { + id: "minimax/minimax-m2.5-lightning", + name: "MiniMax M2.5 highspeed", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-02-13", + last_updated: "2026-02-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 4.8, cache_read: 0.06, cache_write: 0.75 }, + limit: { context: 204800, output: 131072 }, + provider: { npm: "@ai-sdk/anthropic", api: "https://zenmux.ai/api/anthropic/v1" }, + }, + "minimax/minimax-m2.5": { + id: "minimax/minimax-m2.5", + name: "MiniMax M2.5", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-02-13", + last_updated: "2026-02-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2, cache_read: 0.03, cache_write: 0.375 }, + limit: { context: 204800, output: 131072 }, + provider: { npm: "@ai-sdk/anthropic", api: "https://zenmux.ai/api/anthropic/v1" }, + }, + "qwen/qwen3-coder-plus": { + id: "qwen/qwen3-coder-plus", + name: "Qwen3-Coder-Plus", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 1000000, output: 64000 }, + }, + "qwen/qwen3.5-flash": { + id: "qwen/qwen3.5-flash", + name: "Qwen3.5 Flash", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-03-20", + last_updated: "2026-03-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 1020000, output: 1020000 }, + }, + "qwen/qwen3.6-plus": { + id: "qwen/qwen3.6-plus", + name: "Qwen3.6-Plus", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-30", + last_updated: "2026-03-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { + input: 0.5, + output: 3, + cache_read: 0.05, + cache_write: 0.625, + context_over_200k: { input: 2, output: 6, cache_read: 0.2, cache_write: 2.5 }, + }, + limit: { context: 1000000, output: 64000 }, + }, + "qwen/qwen3-max": { + id: "qwen/qwen3-max", + name: "Qwen3-Max-Thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-01-23", + last_updated: "2026-01-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.2, output: 6 }, + limit: { context: 256000, output: 64000 }, + }, + "qwen/qwen3.5-plus": { + id: "qwen/qwen3.5-plus", + name: "Qwen3.5 Plus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-03-20", + last_updated: "2026-03-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 4.8 }, + limit: { context: 1000000, output: 64000 }, + }, + "google/gemini-3.1-flash-lite-preview": { + id: "google/gemini-3.1-flash-lite-preview", + name: "Gemini 3.1 Flash Lite Preview", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-03-20", + last_updated: "2025-03-20", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1.5 }, + limit: { context: 1050000, output: 65530 }, + }, + "google/gemini-3.1-pro-preview": { + id: "google/gemini-3.1-pro-preview", + name: "Gemini 3.1 Pro Preview", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2026-02-19", + release_date: "2026-02-19", + last_updated: "2026-02-19", + modalities: { input: ["text", "image", "pdf", "audio", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2, cache_write: 4.5 }, + limit: { context: 1048000, output: 64000 }, + }, + "google/gemini-3-flash-preview": { + id: "google/gemini-3-flash-preview", + name: "Gemini 3 Flash Preview", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text", "image", "pdf", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 3, cache_read: 0.05, cache_write: 1 }, + limit: { context: 1048000, output: 64000 }, + }, + "google/gemini-2.5-pro": { + id: "google/gemini-2.5-pro", + name: "Gemini 2.5 Pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["pdf", "image", "text", "audio", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.31, cache_write: 4.5 }, + limit: { context: 1048000, output: 64000 }, + }, + "google/gemini-2.5-flash": { + id: "google/gemini-2.5-flash", + name: "Gemini 2.5 Flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["pdf", "image", "text", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5, cache_read: 0.07, cache_write: 1 }, + limit: { context: 1048000, output: 64000 }, + }, + "google/gemini-2.5-flash-lite": { + id: "google/gemini-2.5-flash-lite", + name: "Gemini 2.5 Flash Lite", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-07-22", + last_updated: "2025-07-22", + modalities: { input: ["pdf", "image", "text", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.03, cache_write: 1 }, + limit: { context: 1048000, output: 64000 }, + }, + "sapiens-ai/agnes-1.5-lite": { + id: "sapiens-ai/agnes-1.5-lite", + name: "Agnes 1.5 Lite", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2026-03-26", + last_updated: "2026-03-26", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.12, output: 0.6 }, + limit: { context: 256000, output: 256000 }, + }, + "sapiens-ai/agnes-1.5-pro": { + id: "sapiens-ai/agnes-1.5-pro", + name: "Agnes 1.5 Pro", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-21", + last_updated: "2026-03-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.16, output: 0.8 }, + limit: { context: 256000, output: 256000 }, + }, + "moonshotai/kimi-k2.5": { + id: "moonshotai/kimi-k2.5", + name: "Kimi K2.5", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: false, + knowledge: "2025-01-01", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.58, output: 3.02, cache_read: 0.1 }, + limit: { context: 262000, output: 64000 }, + }, + "moonshotai/kimi-k2-thinking-turbo": { + id: "moonshotai/kimi-k2-thinking-turbo", + name: "Kimi K2 Thinking Turbo", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-11-06", + last_updated: "2025-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.15, output: 8, cache_read: 0.15 }, + limit: { context: 262000, output: 64000 }, + }, + "moonshotai/kimi-k2-0905": { + id: "moonshotai/kimi-k2-0905", + name: "Kimi K2 0905", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-09-04", + last_updated: "2025-09-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, + limit: { context: 262000, output: 64000 }, + }, + "moonshotai/kimi-k2-thinking": { + id: "moonshotai/kimi-k2-thinking", + name: "Kimi K2 Thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-11-06", + last_updated: "2025-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, + limit: { context: 262000, output: 64000 }, + }, + "anthropic/claude-opus-4.1": { + id: "anthropic/claude-opus-4.1", + name: "Claude Opus 4.1", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["image", "text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 64000 }, + provider: { npm: "@ai-sdk/anthropic", api: "https://zenmux.ai/api/anthropic/v1" }, + }, + "anthropic/claude-3.7-sonnet": { + id: "anthropic/claude-3.7-sonnet", + name: "Claude 3.7 Sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-02-24", + last_updated: "2025-02-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + provider: { npm: "@ai-sdk/anthropic", api: "https://zenmux.ai/api/anthropic/v1" }, + }, + "anthropic/claude-opus-4.6": { + id: "anthropic/claude-opus-4.6", + name: "Claude Opus 4.6", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-02-06", + last_updated: "2026-02-06", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 1000000, output: 128000 }, + provider: { npm: "@ai-sdk/anthropic", api: "https://zenmux.ai/api/anthropic/v1" }, + }, + "anthropic/claude-sonnet-4": { + id: "anthropic/claude-sonnet-4", + name: "Claude Sonnet 4", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["image", "text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 1000000, output: 64000 }, + provider: { npm: "@ai-sdk/anthropic", api: "https://zenmux.ai/api/anthropic/v1" }, + }, + "anthropic/claude-sonnet-4.5": { + id: "anthropic/claude-sonnet-4.5", + name: "Claude Sonnet 4.5", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 1000000, output: 64000 }, + provider: { npm: "@ai-sdk/anthropic", api: "https://zenmux.ai/api/anthropic/v1" }, + }, + "anthropic/claude-opus-4.5": { + id: "anthropic/claude-opus-4.5", + name: "Claude Opus 4.5", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-11-24", + last_updated: "2025-11-24", + modalities: { input: ["pdf", "image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 64000 }, + provider: { npm: "@ai-sdk/anthropic", api: "https://zenmux.ai/api/anthropic/v1" }, + }, + "anthropic/claude-opus-4": { + id: "anthropic/claude-opus-4", + name: "Claude Opus 4", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["image", "text", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + provider: { npm: "@ai-sdk/anthropic", api: "https://zenmux.ai/api/anthropic/v1" }, + }, + "anthropic/claude-3.5-haiku": { + id: "anthropic/claude-3.5-haiku", + name: "Claude 3.5 Haiku", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2024-11-04", + last_updated: "2024-11-04", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, + limit: { context: 200000, output: 64000 }, + provider: { npm: "@ai-sdk/anthropic", api: "https://zenmux.ai/api/anthropic/v1" }, + }, + "anthropic/claude-haiku-4.5": { + id: "anthropic/claude-haiku-4.5", + name: "Claude Haiku 4.5", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 200000, output: 64000 }, + provider: { npm: "@ai-sdk/anthropic", api: "https://zenmux.ai/api/anthropic/v1" }, + }, + "anthropic/claude-sonnet-4.6": { + id: "anthropic/claude-sonnet-4.6", + name: "Claude Sonnet 4.6", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-02-18", + last_updated: "2026-02-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 1000000, output: 64000 }, + provider: { npm: "@ai-sdk/anthropic", api: "https://zenmux.ai/api/anthropic/v1" }, + }, + "xiaomi/mimo-v2-omni": { + id: "xiaomi/mimo-v2-omni", + name: "MiMo V2 Omni", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-03-20", + last_updated: "2026-03-20", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2 }, + limit: { context: 265000, output: 265000 }, + }, + "xiaomi/mimo-v2-pro": { + id: "xiaomi/mimo-v2-pro", + name: "MiMo V2 Pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-03-20", + last_updated: "2026-03-20", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 1.5, output: 4.5 }, + limit: { context: 1000000, output: 256000 }, + }, + "xiaomi/mimo-v2-flash": { + id: "xiaomi/mimo-v2-flash", + name: "MiMo-V2-Flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.3, cache_read: 0.01 }, + limit: { context: 262000, output: 64000 }, + }, + }, + }, + upstage: { + id: "upstage", + env: ["UPSTAGE_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.upstage.ai/v1/solar", + name: "Upstage", + doc: "https://developers.upstage.ai/docs/apis/chat", + models: { + "solar-pro2": { + id: "solar-pro2", + name: "solar-pro2", + family: "solar-pro", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03", + release_date: "2025-05-20", + last_updated: "2025-05-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 0.25 }, + limit: { context: 65536, output: 8192 }, + }, + "solar-mini": { + id: "solar-mini", + name: "solar-mini", + family: "solar-mini", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-09", + release_date: "2024-06-12", + last_updated: "2025-04-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.15 }, + limit: { context: 32768, output: 4096 }, + }, + "solar-pro3": { + id: "solar-pro3", + name: "solar-pro3", + family: "solar-pro", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03", + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 0.25 }, + limit: { context: 131072, output: 8192 }, + }, + }, + }, + "novita-ai": { + id: "novita-ai", + env: ["NOVITA_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.novita.ai/openai", + name: "NovitaAI", + doc: "https://novita.ai/docs/guides/introduction", + models: { + "deepseek/deepseek-r1-turbo": { + id: "deepseek/deepseek-r1-turbo", + name: "DeepSeek R1 (Turbo)\t", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-03-05", + last_updated: "2025-03-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.7, output: 2.5 }, + limit: { context: 64000, output: 16000 }, + }, + "deepseek/deepseek-v3-0324": { + id: "deepseek/deepseek-v3-0324", + name: "DeepSeek V3 0324", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-03-25", + last_updated: "2025-03-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 1.12, cache_read: 0.135 }, + limit: { context: 163840, output: 163840 }, + }, + "deepseek/deepseek-ocr-2": { + id: "deepseek/deepseek-ocr-2", + name: "deepseek/deepseek-ocr-2", + attachment: true, + reasoning: false, + tool_call: false, + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.03 }, + limit: { context: 8192, output: 8192 }, + }, + "deepseek/deepseek-ocr": { + id: "deepseek/deepseek-ocr", + name: "DeepSeek-OCR", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-10-24", + last_updated: "2025-10-24", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.03 }, + limit: { context: 8192, output: 8192 }, + }, + "deepseek/deepseek-r1-distill-llama-70b": { + id: "deepseek/deepseek-r1-distill-llama-70b", + name: "DeepSeek R1 Distill LLama 70B", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-01-27", + last_updated: "2025-01-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.8, output: 0.8 }, + limit: { context: 8192, output: 8192 }, + }, + "deepseek/deepseek-prover-v2-671b": { + id: "deepseek/deepseek-prover-v2-671b", + name: "Deepseek Prover V2 671B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-30", + last_updated: "2025-04-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.7, output: 2.5 }, + limit: { context: 160000, output: 160000 }, + }, + "deepseek/deepseek-r1-0528-qwen3-8b": { + id: "deepseek/deepseek-r1-0528-qwen3-8b", + name: "DeepSeek R1 0528 Qwen3 8B", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-05-29", + last_updated: "2025-05-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.06, output: 0.09 }, + limit: { context: 128000, output: 32000 }, + }, + "deepseek/deepseek-v3.2-exp": { + id: "deepseek/deepseek-v3.2-exp", + name: "Deepseek V3.2 Exp", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 0.41 }, + limit: { context: 163840, output: 65536 }, + }, + "deepseek/deepseek-v3.1": { + id: "deepseek/deepseek-v3.1", + name: "DeepSeek V3.1", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-21", + last_updated: "2025-08-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 1, cache_read: 0.135 }, + limit: { context: 131072, output: 32768 }, + }, + "deepseek/deepseek-v3.2": { + id: "deepseek/deepseek-v3.2", + name: "Deepseek V3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.269, output: 0.4, cache_read: 0.1345 }, + limit: { context: 163840, output: 65536 }, + }, + "deepseek/deepseek-v3-turbo": { + id: "deepseek/deepseek-v3-turbo", + name: "DeepSeek V3 (Turbo)\t", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-03-05", + last_updated: "2025-03-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 1.3 }, + limit: { context: 64000, output: 16000 }, + }, + "deepseek/deepseek-r1-0528": { + id: "deepseek/deepseek-r1-0528", + name: "DeepSeek R1 0528", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-05-28", + last_updated: "2025-05-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.7, output: 2.5, cache_read: 0.35 }, + limit: { context: 163840, output: 32768 }, + }, + "deepseek/deepseek-v3.1-terminus": { + id: "deepseek/deepseek-v3.1-terminus", + name: "Deepseek V3.1 Terminus", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-22", + last_updated: "2025-09-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 1, cache_read: 0.135 }, + limit: { context: 131072, output: 32768 }, + }, + "paddlepaddle/paddleocr-vl": { + id: "paddlepaddle/paddleocr-vl", + name: "PaddleOCR-VL", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-10-22", + last_updated: "2025-10-22", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.02 }, + limit: { context: 16384, output: 16384 }, + }, + "nousresearch/hermes-2-pro-llama-3-8b": { + id: "nousresearch/hermes-2-pro-llama-3-8b", + name: "Hermes 2 Pro Llama 3 8B", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2024-06-27", + last_updated: "2024-06-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.14, output: 0.14 }, + limit: { context: 8192, output: 8192 }, + }, + "zai-org/glm-4.7": { + id: "zai-org/glm-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2, cache_read: 0.11 }, + limit: { context: 204800, output: 131072 }, + }, + "zai-org/glm-5": { + id: "zai-org/glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3.2, cache_read: 0.2 }, + limit: { context: 202800, output: 131072 }, + }, + "zai-org/glm-5.1": { + id: "zai-org/glm-5.1", + name: "GLM-5.1", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-03-27", + last_updated: "2026-03-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.4, output: 4.4, cache_read: 0.26 }, + limit: { context: 204800, output: 131072 }, + }, + "zai-org/glm-4.5": { + id: "zai-org/glm-4.5", + name: "GLM-4.5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2, cache_read: 0.11 }, + limit: { context: 131072, output: 98304 }, + }, + "zai-org/glm-4.5-air": { + id: "zai-org/glm-4.5-air", + name: "GLM 4.5 Air", + family: "glm-air", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-10-13", + last_updated: "2025-10-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 0.85 }, + limit: { context: 131072, output: 98304 }, + }, + "zai-org/glm-4.5v": { + id: "zai-org/glm-4.5v", + name: "GLM 4.5V", + family: "glmv", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-08-11", + last_updated: "2025-08-11", + modalities: { input: ["text", "video", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 1.8, cache_read: 0.11 }, + limit: { context: 65536, output: 16384 }, + }, + "zai-org/glm-4.6": { + id: "zai-org/glm-4.6", + name: "GLM 4.6", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.2, cache_read: 0.11 }, + limit: { context: 204800, output: 131072 }, + }, + "zai-org/glm-4.6v": { + id: "zai-org/glm-4.6v", + name: "GLM 4.6V", + family: "glmv", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-08", + last_updated: "2025-12-08", + modalities: { input: ["text", "video", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.9, cache_read: 0.055 }, + limit: { context: 131072, output: 32768 }, + }, + "zai-org/glm-4.7-flash": { + id: "zai-org/glm-4.7-flash", + name: "GLM-4.7-Flash", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.4, cache_read: 0.01 }, + limit: { context: 200000, output: 128000 }, + }, + "zai-org/autoglm-phone-9b-multilingual": { + id: "zai-org/autoglm-phone-9b-multilingual", + name: "AutoGLM-Phone-9B-Multilingual", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-12-10", + last_updated: "2025-12-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.035, output: 0.138 }, + limit: { context: 65536, output: 65536 }, + }, + "mistralai/mistral-nemo": { + id: "mistralai/mistral-nemo", + name: "Mistral Nemo", + family: "mistral-nemo", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2024-07-30", + last_updated: "2024-07-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.04, output: 0.17 }, + limit: { context: 60288, output: 16000 }, + }, + "baichuan/baichuan-m2-32b": { + id: "baichuan/baichuan-m2-32b", + name: "baichuan-m2-32b", + family: "baichuan", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + knowledge: "2024-12", + release_date: "2025-08-13", + last_updated: "2025-08-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.07 }, + limit: { context: 131072, output: 131072 }, + }, + "meta-llama/llama-4-scout-17b-16e-instruct": { + id: "meta-llama/llama-4-scout-17b-16e-instruct", + name: "Llama 4 Scout Instruct", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-06", + last_updated: "2025-04-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.18, output: 0.59 }, + limit: { context: 131072, output: 131072 }, + }, + "meta-llama/llama-3.3-70b-instruct": { + id: "meta-llama/llama-3.3-70b-instruct", + name: "Llama 3.3 70B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-12-07", + last_updated: "2024-12-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.135, output: 0.4 }, + limit: { context: 131072, output: 120000 }, + }, + "meta-llama/llama-3-8b-instruct": { + id: "meta-llama/llama-3-8b-instruct", + name: "Llama 3 8B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-04-25", + last_updated: "2024-04-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.04, output: 0.04 }, + limit: { context: 8192, output: 8192 }, + }, + "meta-llama/llama-3.1-8b-instruct": { + id: "meta-llama/llama-3.1-8b-instruct", + name: "Llama 3.1 8B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-07-24", + last_updated: "2024-07-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.05 }, + limit: { context: 16384, output: 16384 }, + }, + "meta-llama/llama-3-70b-instruct": { + id: "meta-llama/llama-3-70b-instruct", + name: "Llama3 70B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2024-04-25", + last_updated: "2024-04-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.51, output: 0.74 }, + limit: { context: 8192, output: 8000 }, + }, + "meta-llama/llama-4-maverick-17b-128e-instruct-fp8": { + id: "meta-llama/llama-4-maverick-17b-128e-instruct-fp8", + name: "Llama 4 Maverick Instruct", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-06", + last_updated: "2025-04-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 0.85 }, + limit: { context: 1048576, output: 8192 }, + }, + "gryphe/mythomax-l2-13b": { + id: "gryphe/mythomax-l2-13b", + name: "Mythomax L2 13B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-04-25", + last_updated: "2024-04-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.09, output: 0.09 }, + limit: { context: 4096, output: 3200 }, + }, + "sao10k/l31-70b-euryale-v2.2": { + id: "sao10k/l31-70b-euryale-v2.2", + name: "L31 70B Euryale V2.2", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-09-19", + last_updated: "2024-09-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.48, output: 1.48 }, + limit: { context: 8192, output: 8192 }, + }, + "sao10k/l3-70b-euryale-v2.1": { + id: "sao10k/l3-70b-euryale-v2.1", + name: "L3 70B Euryale V2.1\t", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-06-18", + last_updated: "2024-06-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.48, output: 1.48 }, + limit: { context: 8192, output: 8192 }, + }, + "sao10k/L3-8B-Stheno-v3.2": { + id: "sao10k/L3-8B-Stheno-v3.2", + name: "L3 8B Stheno V3.2", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-11-29", + last_updated: "2024-11-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.05 }, + limit: { context: 8192, output: 32000 }, + }, + "sao10k/l3-8b-lunaris": { + id: "sao10k/l3-8b-lunaris", + name: "Sao10k L3 8B Lunaris\t", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2024-11-28", + last_updated: "2024-11-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.05 }, + limit: { context: 8192, output: 8192 }, + }, + "microsoft/wizardlm-2-8x22b": { + id: "microsoft/wizardlm-2-8x22b", + name: "Wizardlm 2 8x22B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-04-24", + last_updated: "2024-04-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.62, output: 0.62 }, + limit: { context: 65535, output: 8000 }, + }, + "openai/gpt-oss-20b": { + id: "openai/gpt-oss-20b", + name: "OpenAI: GPT OSS 20B", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-08-06", + last_updated: "2025-08-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.04, output: 0.15 }, + limit: { context: 131072, output: 32768 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "OpenAI GPT OSS 120B", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-06", + last_updated: "2025-08-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.25 }, + limit: { context: 131072, output: 32768 }, + }, + "minimaxai/minimax-m1-80k": { + id: "minimaxai/minimax-m1-80k", + name: "MiniMax M1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.2 }, + limit: { context: 1000000, output: 40000 }, + }, + "xiaomimimo/mimo-v2-flash": { + id: "xiaomimimo/mimo-v2-flash", + name: "XiaomiMiMo/MiMo-V2-Flash", + family: "mimo", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-12-19", + last_updated: "2025-12-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3, cache_read: 0.3 }, + limit: { context: 262144, output: 32000 }, + }, + "baidu/ernie-4.5-vl-28b-a3b-thinking": { + id: "baidu/ernie-4.5-vl-28b-a3b-thinking", + name: "ERNIE-4.5-VL-28B-A3B-Thinking", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-11-26", + last_updated: "2025-11-26", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.39, output: 0.39 }, + limit: { context: 131072, output: 65536 }, + }, + "baidu/ernie-4.5-vl-424b-a47b": { + id: "baidu/ernie-4.5-vl-424b-a47b", + name: "ERNIE 4.5 VL 424B A47B", + attachment: true, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-06-30", + last_updated: "2025-06-30", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.42, output: 1.25 }, + limit: { context: 123000, output: 16000 }, + }, + "baidu/ernie-4.5-21B-a3b": { + id: "baidu/ernie-4.5-21B-a3b", + name: "ERNIE 4.5 21B A3B", + family: "ernie", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-03", + release_date: "2025-06-30", + last_updated: "2025-06-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.28 }, + limit: { context: 120000, output: 8000 }, + }, + "baidu/ernie-4.5-300b-a47b-paddle": { + id: "baidu/ernie-4.5-300b-a47b-paddle", + name: "ERNIE 4.5 300B A47B", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-06-30", + last_updated: "2025-06-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.28, output: 1.1 }, + limit: { context: 123000, output: 12000 }, + }, + "baidu/ernie-4.5-21B-a3b-thinking": { + id: "baidu/ernie-4.5-21B-a3b-thinking", + name: "ERNIE-4.5-21B-A3B-Thinking", + family: "ernie", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2025-03", + release_date: "2025-09-19", + last_updated: "2025-09-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.28 }, + limit: { context: 131072, output: 65536 }, + }, + "baidu/ernie-4.5-vl-28b-a3b": { + id: "baidu/ernie-4.5-vl-28b-a3b", + name: "ERNIE 4.5 VL 28B A3B", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-06-30", + last_updated: "2025-06-30", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 1.4, output: 5.6 }, + limit: { context: 30000, output: 8000 }, + }, + "minimax/minimax-m2.7": { + id: "minimax/minimax-m2.7", + name: "MiniMax M2.7", + family: "minimax-m2.7", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.06 }, + limit: { context: 204800, output: 131072 }, + }, + "minimax/minimax-m2": { + id: "minimax/minimax-m2", + name: "MiniMax-M2", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2025-10-27", + last_updated: "2025-10-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.03 }, + limit: { context: 204800, output: 131072 }, + }, + "minimax/minimax-m2.1": { + id: "minimax/minimax-m2.1", + name: "Minimax M2.1", + family: "minimax", + attachment: false, + reasoning: false, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.03 }, + limit: { context: 204800, output: 131072 }, + }, + "minimax/minimax-m2.5": { + id: "minimax/minimax-m2.5", + name: "MiniMax M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2, cache_read: 0.03 }, + limit: { context: 204800, output: 131100 }, + }, + "minimax/minimax-m2.5-highspeed": { + id: "minimax/minimax-m2.5-highspeed", + name: "MiniMax M2.5 Highspeed", + family: "minimax-m2.5", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 2.4, cache_read: 0.03 }, + limit: { context: 204800, output: 131100 }, + }, + "qwen/qwen2.5-7b-instruct": { + id: "qwen/qwen2.5-7b-instruct", + name: "Qwen2.5 7B Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.07 }, + limit: { context: 32000, output: 32000 }, + }, + "qwen/qwen3.5-122b-a10b": { + id: "qwen/qwen3.5-122b-a10b", + name: "Qwen3.5-122B-A10B", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-26", + last_updated: "2026-02-26", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 3.2 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen/qwen3.5-27b": { + id: "qwen/qwen3.5-27b", + name: "Qwen3.5-27B", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-26", + last_updated: "2026-02-26", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 2.4 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen/qwen3-235b-a22b-instruct-2507": { + id: "qwen/qwen3-235b-a22b-instruct-2507", + name: "Qwen3 235B A22B Instruct 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-22", + last_updated: "2025-07-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.09, output: 0.58 }, + limit: { context: 131072, output: 16384 }, + }, + "qwen/qwen3-omni-30b-a3b-instruct": { + id: "qwen/qwen3-omni-30b-a3b-instruct", + name: "Qwen3 Omni 30B A3B Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-09-24", + last_updated: "2025-09-24", + modalities: { input: ["text", "video", "audio", "image"], output: ["text", "audio"] }, + open_weights: true, + cost: { input: 0.25, output: 0.97, input_audio: 2.2, output_audio: 1.788 }, + limit: { context: 65536, output: 16384 }, + }, + "qwen/qwen3.5-397b-a17b": { + id: "qwen/qwen3.5-397b-a17b", + name: "Qwen3.5-397B-A17B", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-17", + last_updated: "2026-02-17", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3.6 }, + limit: { context: 262144, output: 64000 }, + }, + "qwen/qwen2.5-vl-72b-instruct": { + id: "qwen/qwen2.5-vl-72b-instruct", + name: "Qwen2.5 VL 72B Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-03-25", + last_updated: "2025-03-25", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.8, output: 0.8 }, + limit: { context: 32768, output: 32768 }, + }, + "qwen/qwen3-vl-235b-a22b-thinking": { + id: "qwen/qwen3-vl-235b-a22b-thinking", + name: "Qwen3 VL 235B A22B Thinking", + attachment: true, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-09-24", + last_updated: "2025-09-24", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.98, output: 3.95 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen/qwen3-vl-30b-a3b-thinking": { + id: "qwen/qwen3-vl-30b-a3b-thinking", + name: "qwen/qwen3-vl-30b-a3b-thinking", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-11", + last_updated: "2025-10-11", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 1 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen/qwen3-omni-30b-a3b-thinking": { + id: "qwen/qwen3-omni-30b-a3b-thinking", + name: "Qwen3 Omni 30B A3B Thinking", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-24", + last_updated: "2025-09-24", + modalities: { input: ["text", "audio", "video", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.25, output: 0.97, input_audio: 2.2, output_audio: 1.788 }, + limit: { context: 65536, output: 16384 }, + }, + "qwen/qwen3-vl-8b-instruct": { + id: "qwen/qwen3-vl-8b-instruct", + name: "qwen/qwen3-vl-8b-instruct", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-17", + last_updated: "2025-10-17", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.08, output: 0.5 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen/qwen3-max": { + id: "qwen/qwen3-max", + name: "Qwen3 Max", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-24", + last_updated: "2025-09-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.11, output: 8.45 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen/qwen3-32b-fp8": { + id: "qwen/qwen3-32b-fp8", + name: "Qwen3 32B", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-04-29", + last_updated: "2025-04-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.45 }, + limit: { context: 40960, output: 20000 }, + }, + "qwen/qwen3-4b-fp8": { + id: "qwen/qwen3-4b-fp8", + name: "Qwen3 4B", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-04-29", + last_updated: "2025-04-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.03 }, + limit: { context: 128000, output: 20000 }, + }, + "qwen/qwen3-235b-a22b-thinking-2507": { + id: "qwen/qwen3-235b-a22b-thinking-2507", + name: "Qwen3 235B A22b Thinking 2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-25", + last_updated: "2025-07-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 3 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen/qwen3-next-80b-a3b-thinking": { + id: "qwen/qwen3-next-80b-a3b-thinking", + name: "Qwen3 Next 80B A3B Thinking", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-10", + last_updated: "2025-09-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 1.5 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen/qwen-mt-plus": { + id: "qwen/qwen-mt-plus", + name: "Qwen MT Plus", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-09-03", + last_updated: "2025-09-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.25, output: 0.75 }, + limit: { context: 16384, output: 8192 }, + }, + "qwen/qwen3-next-80b-a3b-instruct": { + id: "qwen/qwen3-next-80b-a3b-instruct", + name: "Qwen3 Next 80B A3B Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-10", + last_updated: "2025-09-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 1.5 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen/qwen3-30b-a3b-fp8": { + id: "qwen/qwen3-30b-a3b-fp8", + name: "Qwen3 30B A3B", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-04-29", + last_updated: "2025-04-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.09, output: 0.45 }, + limit: { context: 40960, output: 20000 }, + }, + "qwen/qwen3-coder-next": { + id: "qwen/qwen3-coder-next", + name: "Qwen3 Coder Next", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-03", + last_updated: "2026-02-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 1.5 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen/qwen3-coder-480b-a35b-instruct": { + id: "qwen/qwen3-coder-480b-a35b-instruct", + name: "Qwen3 Coder 480B A35B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.3 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen/qwen3-vl-30b-a3b-instruct": { + id: "qwen/qwen3-vl-30b-a3b-instruct", + name: "qwen/qwen3-vl-30b-a3b-instruct", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-11", + last_updated: "2025-10-11", + modalities: { input: ["text", "video", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.7 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen/qwen3-coder-30b-a3b-instruct": { + id: "qwen/qwen3-coder-30b-a3b-instruct", + name: "Qwen3 Coder 30b A3B Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-09", + last_updated: "2025-10-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.27 }, + limit: { context: 160000, output: 32768 }, + }, + "qwen/qwen3-235b-a22b-fp8": { + id: "qwen/qwen3-235b-a22b-fp8", + name: "Qwen3 235B A22B", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-04-29", + last_updated: "2025-04-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 40960, output: 20000 }, + }, + "qwen/qwen3-8b-fp8": { + id: "qwen/qwen3-8b-fp8", + name: "Qwen3 8B", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-04-29", + last_updated: "2025-04-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.035, output: 0.138 }, + limit: { context: 128000, output: 20000 }, + }, + "qwen/qwen3-vl-235b-a22b-instruct": { + id: "qwen/qwen3-vl-235b-a22b-instruct", + name: "Qwen3 VL 235B A22B Instruct", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-24", + last_updated: "2025-09-24", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.5 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen/qwen-2.5-72b-instruct": { + id: "qwen/qwen-2.5-72b-instruct", + name: "Qwen 2.5 72B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-10-15", + last_updated: "2024-10-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.38, output: 0.4 }, + limit: { context: 32000, output: 8192 }, + }, + "qwen/qwen3.5-35b-a3b": { + id: "qwen/qwen3.5-35b-a3b", + name: "Qwen3.5-35B-A3B", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-26", + last_updated: "2026-02-26", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.25, output: 2 }, + limit: { context: 262144, output: 65536 }, + }, + "kwaipilot/kat-coder-pro": { + id: "kwaipilot/kat-coder-pro", + name: "Kat Coder Pro", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01-05", + last_updated: "2026-01-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.06 }, + limit: { context: 256000, output: 128000 }, + }, + "google/gemma-4-31b-it": { + id: "google/gemma-4-31b-it", + name: "Gemma 4 31B", + family: "gemma", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-04-02", + last_updated: "2026-04-02", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.14, output: 0.4 }, + limit: { context: 262144, output: 131072 }, + }, + "google/gemma-3-27b-it": { + id: "google/gemma-3-27b-it", + name: "Gemma 3 27B", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-03-25", + last_updated: "2025-03-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.119, output: 0.2 }, + limit: { context: 98304, output: 16384 }, + }, + "google/gemma-4-26b-a4b-it": { + id: "google/gemma-4-26b-a4b-it", + name: "Gemma 4 26B A4B", + family: "gemma", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-04-02", + last_updated: "2026-04-02", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 0.4 }, + limit: { context: 262144, output: 131072 }, + }, + "moonshotai/kimi-k2.5": { + id: "moonshotai/kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3, cache_read: 0.1 }, + limit: { context: 262144, output: 262144 }, + }, + "moonshotai/kimi-k2-instruct": { + id: "moonshotai/kimi-k2-instruct", + name: "Kimi K2 Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-11", + last_updated: "2025-07-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.57, output: 2.3 }, + limit: { context: 131072, output: 131072 }, + }, + "moonshotai/kimi-k2-0905": { + id: "moonshotai/kimi-k2-0905", + name: "Kimi K2 0905", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5 }, + limit: { context: 262144, output: 262144 }, + }, + "moonshotai/kimi-k2-thinking": { + id: "moonshotai/kimi-k2-thinking", + name: "Kimi K2 Thinking", + family: "kimi", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-11-07", + last_updated: "2025-11-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5 }, + limit: { context: 262144, output: 262144 }, + }, + }, + }, + "xiaomi-token-plan-cn": { + id: "xiaomi-token-plan-cn", + env: ["XIAOMI_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://token-plan-cn.xiaomimimo.com/v1", + name: "Xiaomi Token Plan (China)", + doc: "https://platform.xiaomimimo.com/#/docs", + models: { + "mimo-v2-omni": { + id: "mimo-v2-omni", + name: "MiMo-V2-Omni", + family: "mimo", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-12", + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0 }, + limit: { context: 256000, output: 128000 }, + }, + "mimo-v2-tts": { + id: "mimo-v2-tts", + name: "MiMo-V2-TTS", + family: "mimo", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["audio"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 8000, output: 16000 }, + }, + "mimo-v2-pro": { + id: "mimo-v2-pro", + name: "MiMo-V2-Pro", + family: "mimo", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-12", + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0 }, + limit: { context: 1000000, output: 128000 }, + }, + }, + }, + wandb: { + id: "wandb", + env: ["WANDB_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.inference.wandb.ai/v1", + name: "Weights & Biases", + doc: "https://docs.wandb.ai/guides/integrations/inference/", + models: { + "Qwen/Qwen3-30B-A3B-Instruct-2507": { + id: "Qwen/Qwen3-30B-A3B-Instruct-2507", + name: "Qwen3 30B A3B Instruct 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-29", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 262144, output: 262144 }, + }, + "Qwen/Qwen3-235B-A22B-Instruct-2507": { + id: "Qwen/Qwen3-235B-A22B-Instruct-2507", + name: "Qwen3 235B A22B Instruct 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04-28", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 262144, output: 262144 }, + }, + "Qwen/Qwen3-235B-A22B-Thinking-2507": { + id: "Qwen/Qwen3-235B-A22B-Thinking-2507", + name: "Qwen3-235B-A22B-Thinking-2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-25", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 262144, output: 262144 }, + }, + "Qwen/Qwen3-Coder-480B-A35B-Instruct": { + id: "Qwen/Qwen3-Coder-480B-A35B-Instruct", + name: "Qwen3-Coder-480B-A35B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 1.5 }, + limit: { context: 262144, output: 262144 }, + }, + "zai-org/GLM-5-FP8": { + id: "zai-org/GLM-5-FP8", + name: "GLM 5", + family: "glm", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3.2 }, + limit: { context: 200000, output: 200000 }, + }, + "meta-llama/Llama-4-Scout-17B-16E-Instruct": { + id: "meta-llama/Llama-4-Scout-17B-16E-Instruct", + name: "Llama 4 Scout 17B 16E Instruct", + family: "llama", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-01-31", + last_updated: "2026-03-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.17, output: 0.66 }, + limit: { context: 64000, output: 64000 }, + }, + "meta-llama/Llama-3.3-70B-Instruct": { + id: "meta-llama/Llama-3.3-70B-Instruct", + name: "Llama-3.3-70B-Instruct", + family: "llama", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-12-06", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.71, output: 0.71 }, + limit: { context: 128000, output: 128000 }, + }, + "meta-llama/Llama-3.1-8B-Instruct": { + id: "meta-llama/Llama-3.1-8B-Instruct", + name: "Meta-Llama-3.1-8B-Instruct", + family: "llama", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.22, output: 0.22 }, + limit: { context: 128000, output: 128000 }, + }, + "meta-llama/Llama-3.1-70B-Instruct": { + id: "meta-llama/Llama-3.1-70B-Instruct", + name: "Llama 3.1 70B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-07-23", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.8, output: 0.8 }, + limit: { context: 128000, output: 128000 }, + }, + "OpenPipe/Qwen3-14B-Instruct": { + id: "OpenPipe/Qwen3-14B-Instruct", + name: "OpenPipe Qwen3 14B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-29", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.22 }, + limit: { context: 32768, output: 32768 }, + }, + "microsoft/Phi-4-mini-instruct": { + id: "microsoft/Phi-4-mini-instruct", + name: "Phi-4-mini-instruct", + family: "phi", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-12-11", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.08, output: 0.35 }, + limit: { context: 128000, output: 128000 }, + }, + "nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-FP8": { + id: "nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-FP8", + name: "NVIDIA Nemotron 3 Super 120B", + family: "nemotron", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-03-11", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 262144, output: 262144 }, + }, + "deepseek-ai/DeepSeek-V3.1": { + id: "deepseek-ai/DeepSeek-V3.1", + name: "DeepSeek V3.1", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-21", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 1.65 }, + limit: { context: 161000, output: 161000 }, + }, + "openai/gpt-oss-20b": { + id: "openai/gpt-oss-20b", + name: "gpt-oss-20b", + family: "gpt-oss", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.2 }, + limit: { context: 131072, output: 131072 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "gpt-oss-120b", + family: "gpt-oss", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 131072, output: 131072 }, + }, + "moonshotai/Kimi-K2.5": { + id: "moonshotai/Kimi-K2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-01-27", + last_updated: "2026-03-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 2.85 }, + limit: { context: 262144, output: 262144 }, + }, + "MiniMaxAI/MiniMax-M2.5": { + id: "MiniMaxAI/MiniMax-M2.5", + name: "MiniMax M2.5", + family: "minimax", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 196608, output: 196608 }, + }, }, }, chutes: { @@ -60356,9 +22389,450 @@ export const snapshot = { name: "Chutes", doc: "https://llm.chutes.ai/v1/models", models: { - "zai-org/GLM-4.7-FP8": { - id: "zai-org/GLM-4.7-FP8", - name: "GLM 4.7 FP8", + "miromind-ai/MiroThinker-v1.5-235B": { + id: "miromind-ai/MiroThinker-v1.5-235B", + name: "MiroThinker V1.5 235B", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2026-01-10", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.15 }, + limit: { context: 262144, output: 8192 }, + }, + "OpenGVLab/InternVL3-78B-TEE": { + id: "OpenGVLab/InternVL3-78B-TEE", + name: "InternVL3 78B TEE", + family: "opengvlab", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-01-06", + last_updated: "2026-01-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.39 }, + limit: { context: 32768, output: 32768 }, + }, + "NousResearch/DeepHermes-3-Mistral-24B-Preview": { + id: "NousResearch/DeepHermes-3-Mistral-24B-Preview", + name: "DeepHermes 3 Mistral 24B Preview", + family: "nousresearch", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.1 }, + limit: { context: 32768, output: 32768 }, + }, + "NousResearch/Hermes-4-405B-FP8-TEE": { + id: "NousResearch/Hermes-4-405B-FP8-TEE", + name: "Hermes 4 405B FP8 TEE", + family: "nousresearch", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 131072, output: 65536 }, + }, + "NousResearch/Hermes-4.3-36B": { + id: "NousResearch/Hermes-4.3-36B", + name: "Hermes 4.3 36B", + family: "nousresearch", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.39 }, + limit: { context: 32768, output: 8192 }, + }, + "NousResearch/Hermes-4-14B": { + id: "NousResearch/Hermes-4-14B", + name: "Hermes 4 14B", + family: "nousresearch", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.01, output: 0.05 }, + limit: { context: 40960, output: 40960 }, + }, + "NousResearch/Hermes-4-70B": { + id: "NousResearch/Hermes-4-70B", + name: "Hermes 4 70B", + family: "nousresearch", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.11, output: 0.38 }, + limit: { context: 131072, output: 131072 }, + }, + "Qwen/Qwen3-30B-A3B": { + id: "Qwen/Qwen3-30B-A3B", + name: "Qwen3 30B A3B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.06, output: 0.22 }, + limit: { context: 40960, output: 40960 }, + }, + "Qwen/Qwen3-Coder-Next": { + id: "Qwen/Qwen3-Coder-Next", + name: "Qwen3 Coder Next", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.3 }, + limit: { context: 262144, output: 65536 }, + }, + "Qwen/Qwen2.5-Coder-32B-Instruct": { + id: "Qwen/Qwen2.5-Coder-32B-Instruct", + name: "Qwen2.5 Coder 32B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.11 }, + limit: { context: 32768, output: 32768 }, + }, + "Qwen/Qwen3-235B-A22B": { + id: "Qwen/Qwen3-235B-A22B", + name: "Qwen3 235B A22B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 40960, output: 40960 }, + }, + "Qwen/Qwen2.5-VL-72B-Instruct-TEE": { + id: "Qwen/Qwen2.5-VL-72B-Instruct-TEE", + name: "Qwen2.5 VL 72B Instruct TEE", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 32768, output: 32768 }, + }, + "Qwen/Qwen3Guard-Gen-0.6B": { + id: "Qwen/Qwen3Guard-Gen-0.6B", + name: "Qwen3Guard Gen 0.6B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.01, output: 0.01, cache_read: 0.005 }, + limit: { context: 32768, output: 8192 }, + }, + "Qwen/Qwen3-Next-80B-A3B-Instruct": { + id: "Qwen/Qwen3-Next-80B-A3B-Instruct", + name: "Qwen3 Next 80B A3B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.8 }, + limit: { context: 262144, output: 262144 }, + }, + "Qwen/Qwen3-30B-A3B-Instruct-2507": { + id: "Qwen/Qwen3-30B-A3B-Instruct-2507", + name: "Qwen3 30B A3B Instruct 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.08, output: 0.33 }, + limit: { context: 262144, output: 262144 }, + }, + "Qwen/Qwen3-32B": { + id: "Qwen/Qwen3-32B", + name: "Qwen3 32B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.08, output: 0.24, cache_read: 0.04 }, + limit: { context: 40960, output: 40960 }, + }, + "Qwen/Qwen3-14B": { + id: "Qwen/Qwen3-14B", + name: "Qwen3 14B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.22 }, + limit: { context: 40960, output: 40960 }, + }, + "Qwen/Qwen3-235B-A22B-Instruct-2507-TEE": { + id: "Qwen/Qwen3-235B-A22B-Instruct-2507-TEE", + name: "Qwen3 235B A22B Instruct 2507 TEE", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.08, output: 0.55, cache_read: 0.04 }, + limit: { context: 262144, output: 65536 }, + }, + "Qwen/Qwen3-235B-A22B-Thinking-2507": { + id: "Qwen/Qwen3-235B-A22B-Thinking-2507", + name: "Qwen3 235B A22B Thinking 2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.11, output: 0.6 }, + limit: { context: 262144, output: 262144 }, + }, + "Qwen/Qwen2.5-VL-32B-Instruct": { + id: "Qwen/Qwen2.5-VL-32B-Instruct", + name: "Qwen2.5 VL 32B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.22 }, + limit: { context: 16384, output: 16384 }, + }, + "Qwen/Qwen3.5-397B-A17B-TEE": { + id: "Qwen/Qwen3.5-397B-A17B-TEE", + name: "Qwen3.5 397B A17B TEE", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-02-18", + last_updated: "2026-02-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.39, output: 2.34, cache_read: 0.195 }, + limit: { context: 262144, output: 65536 }, + }, + "Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8-TEE": { + id: "Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8-TEE", + name: "Qwen3 Coder 480B A35B Instruct FP8 TEE", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.22, output: 0.95, cache_read: 0.11 }, + limit: { context: 262144, output: 262144 }, + }, + "Qwen/Qwen3-VL-235B-A22B-Instruct": { + id: "Qwen/Qwen3-VL-235B-A22B-Instruct", + name: "Qwen3 VL 235B A22B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 262144, output: 262144 }, + }, + "Qwen/Qwen2.5-72B-Instruct": { + id: "Qwen/Qwen2.5-72B-Instruct", + name: "Qwen2.5 72B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 0.52 }, + limit: { context: 32768, output: 32768 }, + }, + "zai-org/GLM-5.1-TEE": { + id: "zai-org/GLM-5.1-TEE", + name: "GLM 5.1 TEE", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-04-08", + last_updated: "2026-04-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.95, output: 3.15, cache_read: 0.475 }, + limit: { context: 202752, output: 65535 }, + }, + "zai-org/GLM-4.7-Flash": { + id: "zai-org/GLM-4.7-Flash", + name: "GLM 4.7 Flash", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.06, output: 0.35 }, + limit: { context: 202752, output: 65535 }, + }, + "zai-org/GLM-4.5-TEE": { + id: "zai-org/GLM-4.5-TEE", + name: "GLM 4.5 TEE", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.35, output: 1.55 }, + limit: { context: 131072, output: 65536 }, + }, + "zai-org/GLM-4.6-FP8": { + id: "zai-org/GLM-4.6-FP8", + name: "GLM 4.6 FP8", attachment: false, reasoning: true, tool_call: true, @@ -60388,58 +22862,9 @@ export const snapshot = { cost: { input: 0.05, output: 0.22 }, limit: { context: 131072, output: 131072 }, }, - "zai-org/GLM-4.7-Flash": { - id: "zai-org/GLM-4.7-Flash", - name: "GLM 4.7 Flash", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.06, output: 0.35 }, - limit: { context: 202752, output: 65535 }, - }, - "zai-org/GLM-4.7-TEE": { - id: "zai-org/GLM-4.7-TEE", - name: "GLM 4.7 TEE", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 1.5 }, - limit: { context: 202752, output: 65535 }, - }, - "zai-org/GLM-4.6-TEE": { - id: "zai-org/GLM-4.6-TEE", - name: "GLM 4.6 TEE", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.4, output: 1.7, cache_read: 0.2 }, - limit: { context: 202752, output: 65536 }, - }, - "zai-org/GLM-4.5-FP8": { - id: "zai-org/GLM-4.5-FP8", - name: "GLM 4.5 FP8", + "zai-org/GLM-4.7-FP8": { + id: "zai-org/GLM-4.7-FP8", + name: "GLM 4.7 FP8", attachment: false, reasoning: true, tool_call: true, @@ -60450,7 +22875,7 @@ export const snapshot = { modalities: { input: ["text"], output: ["text"] }, open_weights: true, cost: { input: 0.3, output: 1.2 }, - limit: { context: 131072, output: 65536 }, + limit: { context: 202752, output: 65535 }, }, "zai-org/GLM-5-TEE": { id: "zai-org/GLM-5-TEE", @@ -60469,6 +22894,38 @@ export const snapshot = { cost: { input: 0.95, output: 3.15, cache_read: 0.475 }, limit: { context: 202752, output: 65535 }, }, + "zai-org/GLM-4.5-FP8": { + id: "zai-org/GLM-4.5-FP8", + name: "GLM 4.5 FP8", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 131072, output: 65536 }, + }, + "zai-org/GLM-4.7-TEE": { + id: "zai-org/GLM-4.7-TEE", + name: "GLM 4.7 TEE", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 1.5 }, + limit: { context: 202752, output: 65535 }, + }, "zai-org/GLM-4.6V": { id: "zai-org/GLM-4.6V", name: "GLM 4.6V", @@ -60486,38 +22943,6 @@ export const snapshot = { cost: { input: 0.3, output: 0.9, cache_read: 0.15 }, limit: { context: 131072, output: 65536 }, }, - "zai-org/GLM-4.6-FP8": { - id: "zai-org/GLM-4.6-FP8", - name: "GLM 4.6 FP8", - attachment: false, - reasoning: true, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-01-27", - last_updated: "2026-01-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 202752, output: 65535 }, - }, - "zai-org/GLM-4.5-TEE": { - id: "zai-org/GLM-4.5-TEE", - name: "GLM 4.5 TEE", - family: "glm", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.35, output: 1.55 }, - limit: { context: 131072, output: 65536 }, - }, "zai-org/GLM-5-Turbo": { id: "zai-org/GLM-5-Turbo", name: "GLM 5 Turbo", @@ -60535,58 +22960,10 @@ export const snapshot = { cost: { input: 0.49, output: 1.96, cache_read: 0.245 }, limit: { context: 202752, output: 65535 }, }, - "nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16": { - id: "nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16", - name: "NVIDIA Nemotron 3 Nano 30B A3B BF16", - family: "nemotron", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.06, output: 0.24 }, - limit: { context: 262144, output: 262144 }, - }, - "NousResearch/Hermes-4.3-36B": { - id: "NousResearch/Hermes-4.3-36B", - name: "Hermes 4.3 36B", - family: "nousresearch", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.39 }, - limit: { context: 32768, output: 8192 }, - }, - "NousResearch/DeepHermes-3-Mistral-24B-Preview": { - id: "NousResearch/DeepHermes-3-Mistral-24B-Preview", - name: "DeepHermes 3 Mistral 24B Preview", - family: "nousresearch", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.02, output: 0.1 }, - limit: { context: 32768, output: 32768 }, - }, - "NousResearch/Hermes-4-14B": { - id: "NousResearch/Hermes-4-14B", - name: "Hermes 4 14B", - family: "nousresearch", + "zai-org/GLM-4.6-TEE": { + id: "zai-org/GLM-4.6-TEE", + name: "GLM 4.6 TEE", + family: "glm", attachment: false, reasoning: true, tool_call: true, @@ -60597,42 +22974,23 @@ export const snapshot = { last_updated: "2026-01-10", modalities: { input: ["text"], output: ["text"] }, open_weights: true, - cost: { input: 0.01, output: 0.05 }, - limit: { context: 40960, output: 40960 }, + cost: { input: 0.4, output: 1.7, cache_read: 0.2 }, + limit: { context: 202752, output: 65536 }, }, - "NousResearch/Hermes-4-405B-FP8-TEE": { - id: "NousResearch/Hermes-4-405B-FP8-TEE", - name: "Hermes 4 405B FP8 TEE", - family: "nousresearch", + "mistralai/Devstral-2-123B-Instruct-2512-TEE": { + id: "mistralai/Devstral-2-123B-Instruct-2512-TEE", + name: "Devstral 2 123B Instruct 2512 TEE", attachment: false, - reasoning: true, + reasoning: false, tool_call: true, - interleaved: { field: "reasoning_content" }, structured_output: true, temperature: true, - release_date: "2025-12-29", + release_date: "2026-01-10", last_updated: "2026-01-10", modalities: { input: ["text"], output: ["text"] }, open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 131072, output: 65536 }, - }, - "NousResearch/Hermes-4-70B": { - id: "NousResearch/Hermes-4-70B", - name: "Hermes 4 70B", - family: "nousresearch", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.11, output: 0.38 }, - limit: { context: 131072, output: 131072 }, + cost: { input: 0.05, output: 0.22 }, + limit: { context: 262144, output: 65536 }, }, "XiaomiMiMo/MiMo-V2-Flash": { id: "XiaomiMiMo/MiMo-V2-Flash", @@ -60650,78 +23008,42 @@ export const snapshot = { cost: { input: 0.09, output: 0.29 }, limit: { context: 262144, output: 32000 }, }, - "MiniMaxAI/MiniMax-M2.5-TEE": { - id: "MiniMaxAI/MiniMax-M2.5-TEE", - name: "MiniMax M2.5 TEE", - family: "minimax", + "chutesai/Mistral-Small-3.2-24B-Instruct-2506": { + id: "chutesai/Mistral-Small-3.2-24B-Instruct-2506", + name: "Mistral Small 3.2 24B Instruct 2506", + family: "chutesai", attachment: false, - reasoning: true, + reasoning: false, tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-02-15", - last_updated: "2026-02-15", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.1, cache_read: 0.15 }, - limit: { context: 196608, output: 65536 }, - }, - "MiniMaxAI/MiniMax-M2.1-TEE": { - id: "MiniMaxAI/MiniMax-M2.1-TEE", - name: "MiniMax M2.1 TEE", - family: "minimax", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-27", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 1.12 }, - limit: { context: 196608, output: 65536 }, - }, - "deepseek-ai/DeepSeek-V3.1-Terminus-TEE": { - id: "deepseek-ai/DeepSeek-V3.1-Terminus-TEE", - name: "DeepSeek V3.1 Terminus TEE", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, structured_output: true, temperature: true, release_date: "2025-12-29", last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, + modalities: { input: ["text", "image"], output: ["text"] }, open_weights: true, - cost: { input: 0.23, output: 0.9 }, - limit: { context: 163840, output: 65536 }, + cost: { input: 0.06, output: 0.18 }, + limit: { context: 131072, output: 131072 }, }, - "deepseek-ai/DeepSeek-V3.2-TEE": { - id: "deepseek-ai/DeepSeek-V3.2-TEE", - name: "DeepSeek V3.2 TEE", - family: "deepseek", + "chutesai/Mistral-Small-3.1-24B-Instruct-2503": { + id: "chutesai/Mistral-Small-3.1-24B-Instruct-2503", + name: "Mistral Small 3.1 24B Instruct 2503", + family: "chutesai", attachment: false, - reasoning: true, + reasoning: false, tool_call: true, - interleaved: { field: "reasoning_content" }, structured_output: true, temperature: true, release_date: "2025-12-29", last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, + modalities: { input: ["text", "image"], output: ["text"] }, open_weights: true, - cost: { input: 0.28, output: 0.42, cache_read: 0.14 }, - limit: { context: 131072, output: 65536 }, + cost: { input: 0.03, output: 0.11, cache_read: 0.015 }, + limit: { context: 131072, output: 131072 }, }, - "deepseek-ai/DeepSeek-V3-0324-TEE": { - id: "deepseek-ai/DeepSeek-V3-0324-TEE", - name: "DeepSeek V3 0324 TEE", - family: "deepseek", + "nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16": { + id: "nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16", + name: "NVIDIA Nemotron 3 Nano 30B A3B BF16", + family: "nemotron", attachment: false, reasoning: false, tool_call: true, @@ -60731,25 +23053,8 @@ export const snapshot = { last_updated: "2026-01-10", modalities: { input: ["text"], output: ["text"] }, open_weights: true, - cost: { input: 0.19, output: 0.87, cache_read: 0.095 }, - limit: { context: 163840, output: 65536 }, - }, - "deepseek-ai/DeepSeek-V3.2-Speciale-TEE": { - id: "deepseek-ai/DeepSeek-V3.2-Speciale-TEE", - name: "DeepSeek V3.2 Speciale TEE", - family: "deepseek", - attachment: false, - reasoning: true, - tool_call: false, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.27, output: 0.41 }, - limit: { context: 163840, output: 65536 }, + cost: { input: 0.06, output: 0.24 }, + limit: { context: 262144, output: 262144 }, }, "deepseek-ai/DeepSeek-R1-TEE": { id: "deepseek-ai/DeepSeek-R1-TEE", @@ -60818,6 +23123,56 @@ export const snapshot = { cost: { input: 0.2, output: 0.8 }, limit: { context: 163840, output: 65536 }, }, + "deepseek-ai/DeepSeek-V3-0324-TEE": { + id: "deepseek-ai/DeepSeek-V3-0324-TEE", + name: "DeepSeek V3 0324 TEE", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.19, output: 0.87, cache_read: 0.095 }, + limit: { context: 163840, output: 65536 }, + }, + "deepseek-ai/DeepSeek-V3.2-Speciale-TEE": { + id: "deepseek-ai/DeepSeek-V3.2-Speciale-TEE", + name: "DeepSeek V3.2 Speciale TEE", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: false, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 0.41 }, + limit: { context: 163840, output: 65536 }, + }, + "deepseek-ai/DeepSeek-V3.1-Terminus-TEE": { + id: "deepseek-ai/DeepSeek-V3.1-Terminus-TEE", + name: "DeepSeek V3.1 Terminus TEE", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.23, output: 0.9 }, + limit: { context: 163840, output: 65536 }, + }, "deepseek-ai/DeepSeek-R1-0528-TEE": { id: "deepseek-ai/DeepSeek-R1-0528-TEE", name: "DeepSeek R1 0528 TEE", @@ -60835,10 +23190,61 @@ export const snapshot = { cost: { input: 0.4, output: 1.75 }, limit: { context: 163840, output: 65536 }, }, - "rednote-hilab/dots.ocr": { - id: "rednote-hilab/dots.ocr", - name: "dots.ocr", - family: "rednote", + "deepseek-ai/DeepSeek-V3.2-TEE": { + id: "deepseek-ai/DeepSeek-V3.2-TEE", + name: "DeepSeek V3.2 TEE", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.28, output: 0.42, cache_read: 0.14 }, + limit: { context: 131072, output: 65536 }, + }, + "openai/gpt-oss-20b": { + id: "openai/gpt-oss-20b", + name: "gpt oss 20b", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.1 }, + limit: { context: 131072, output: 131072 }, + }, + "openai/gpt-oss-120b-TEE": { + id: "openai/gpt-oss-120b-TEE", + name: "gpt oss 120b TEE", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.04, output: 0.18 }, + limit: { context: 131072, output: 65536 }, + }, + "unsloth/gemma-3-12b-it": { + id: "unsloth/gemma-3-12b-it", + name: "gemma 3 12b it", + family: "unsloth", attachment: false, reasoning: false, tool_call: false, @@ -60848,9 +23254,56 @@ export const snapshot = { last_updated: "2026-01-10", modalities: { input: ["text", "image"], output: ["text"] }, open_weights: true, - cost: { input: 0.01, output: 0.01, cache_read: 0.005 }, + cost: { input: 0.03, output: 0.1 }, limit: { context: 131072, output: 131072 }, }, + "unsloth/Llama-3.2-3B-Instruct": { + id: "unsloth/Llama-3.2-3B-Instruct", + name: "Llama 3.2 3B Instruct", + family: "unsloth", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-02-12", + last_updated: "2025-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.01, output: 0.01, cache_read: 0.005 }, + limit: { context: 16384, output: 16384 }, + }, + "unsloth/gemma-3-4b-it": { + id: "unsloth/gemma-3-4b-it", + name: "gemma 3 4b it", + family: "unsloth", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-12-29", + last_updated: "2026-01-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.01, output: 0.03 }, + limit: { context: 96000, output: 96000 }, + }, + "unsloth/Llama-3.2-1B-Instruct": { + id: "unsloth/Llama-3.2-1B-Instruct", + name: "Llama 3.2 1B Instruct", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.01, output: 0.01, cache_read: 0.005 }, + limit: { context: 32768, output: 8192 }, + }, "unsloth/Mistral-Nemo-Instruct-2407": { id: "unsloth/Mistral-Nemo-Instruct-2407", name: "Mistral Nemo Instruct 2407", @@ -60883,38 +23336,6 @@ export const snapshot = { cost: { input: 0.03, output: 0.11 }, limit: { context: 32768, output: 32768 }, }, - "unsloth/gemma-3-12b-it": { - id: "unsloth/gemma-3-12b-it", - name: "gemma 3 12b it", - family: "unsloth", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.1 }, - limit: { context: 131072, output: 131072 }, - }, - "unsloth/gemma-3-4b-it": { - id: "unsloth/gemma-3-4b-it", - name: "gemma 3 4b it", - family: "unsloth", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.01, output: 0.03 }, - limit: { context: 96000, output: 96000 }, - }, "unsloth/gemma-3-27b-it": { id: "unsloth/gemma-3-27b-it", name: "gemma 3 27b it", @@ -60931,36 +23352,22 @@ export const snapshot = { cost: { input: 0.04, output: 0.15, cache_read: 0.02 }, limit: { context: 128000, output: 65536 }, }, - "unsloth/Llama-3.2-1B-Instruct": { - id: "unsloth/Llama-3.2-1B-Instruct", - name: "Llama 3.2 1B Instruct", + "moonshotai/Kimi-K2-Thinking-TEE": { + id: "moonshotai/Kimi-K2-Thinking-TEE", + name: "Kimi K2 Thinking TEE", + family: "kimi-thinking", attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, temperature: true, - release_date: "2026-01-27", - last_updated: "2026-01-27", + release_date: "2025-12-29", + last_updated: "2026-01-10", modalities: { input: ["text"], output: ["text"] }, open_weights: true, - cost: { input: 0.01, output: 0.01, cache_read: 0.005 }, - limit: { context: 32768, output: 8192 }, - }, - "unsloth/Llama-3.2-3B-Instruct": { - id: "unsloth/Llama-3.2-3B-Instruct", - name: "Llama 3.2 3B Instruct", - family: "unsloth", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-02-12", - last_updated: "2025-02-12", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.01, output: 0.01, cache_read: 0.005 }, - limit: { context: 16384, output: 16384 }, + cost: { input: 0.4, output: 1.75 }, + limit: { context: 262144, output: 65535 }, }, "moonshotai/Kimi-K2-Instruct-0905": { id: "moonshotai/Kimi-K2-Instruct-0905", @@ -60996,10 +23403,10 @@ export const snapshot = { cost: { input: 0.6, output: 3 }, limit: { context: 262144, output: 65535 }, }, - "moonshotai/Kimi-K2-Thinking-TEE": { - id: "moonshotai/Kimi-K2-Thinking-TEE", - name: "Kimi K2 Thinking TEE", - family: "kimi-thinking", + "MiniMaxAI/MiniMax-M2.1-TEE": { + id: "MiniMaxAI/MiniMax-M2.1-TEE", + name: "MiniMax M2.1 TEE", + family: "minimax", attachment: false, reasoning: true, tool_call: true, @@ -61007,229 +23414,33 @@ export const snapshot = { structured_output: true, temperature: true, release_date: "2025-12-29", - last_updated: "2026-01-10", + last_updated: "2026-01-27", modalities: { input: ["text"], output: ["text"] }, open_weights: true, - cost: { input: 0.4, output: 1.75 }, - limit: { context: 262144, output: 65535 }, + cost: { input: 0.27, output: 1.12 }, + limit: { context: 196608, output: 65536 }, }, - "Qwen/Qwen3-30B-A3B": { - id: "Qwen/Qwen3-30B-A3B", - name: "Qwen3 30B A3B", - family: "qwen", + "MiniMaxAI/MiniMax-M2.5-TEE": { + id: "MiniMaxAI/MiniMax-M2.5-TEE", + name: "MiniMax M2.5 TEE", + family: "minimax", attachment: false, reasoning: true, tool_call: true, interleaved: { field: "reasoning_content" }, structured_output: true, temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", + release_date: "2026-02-15", + last_updated: "2026-02-15", modalities: { input: ["text"], output: ["text"] }, open_weights: true, - cost: { input: 0.06, output: 0.22 }, - limit: { context: 40960, output: 40960 }, + cost: { input: 0.3, output: 1.1, cache_read: 0.15 }, + limit: { context: 196608, output: 65536 }, }, - "Qwen/Qwen3-30B-A3B-Instruct-2507": { - id: "Qwen/Qwen3-30B-A3B-Instruct-2507", - name: "Qwen3 30B A3B Instruct 2507", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.08, output: 0.33 }, - limit: { context: 262144, output: 262144 }, - }, - "Qwen/Qwen3-VL-235B-A22B-Instruct": { - id: "Qwen/Qwen3-VL-235B-A22B-Instruct", - name: "Qwen3 VL 235B A22B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 262144, output: 262144 }, - }, - "Qwen/Qwen3.5-397B-A17B-TEE": { - id: "Qwen/Qwen3.5-397B-A17B-TEE", - name: "Qwen3.5 397B A17B TEE", - family: "qwen", - attachment: true, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2026-02-18", - last_updated: "2026-02-18", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.39, output: 2.34, cache_read: 0.195 }, - limit: { context: 262144, output: 65536 }, - }, - "Qwen/Qwen3-32B": { - id: "Qwen/Qwen3-32B", - name: "Qwen3 32B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.08, output: 0.24, cache_read: 0.04 }, - limit: { context: 40960, output: 40960 }, - }, - "Qwen/Qwen3-Next-80B-A3B-Instruct": { - id: "Qwen/Qwen3-Next-80B-A3B-Instruct", - name: "Qwen3 Next 80B A3B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.1, output: 0.8 }, - limit: { context: 262144, output: 262144 }, - }, - "Qwen/Qwen3-235B-A22B-Thinking-2507": { - id: "Qwen/Qwen3-235B-A22B-Thinking-2507", - name: "Qwen3 235B A22B Thinking 2507", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.11, output: 0.6 }, - limit: { context: 262144, output: 262144 }, - }, - "Qwen/Qwen3-Coder-Next": { - id: "Qwen/Qwen3-Coder-Next", - name: "Qwen3 Coder Next", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2026-02-05", - last_updated: "2026-02-05", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.07, output: 0.3 }, - limit: { context: 262144, output: 65536 }, - }, - "Qwen/Qwen2.5-Coder-32B-Instruct": { - id: "Qwen/Qwen2.5-Coder-32B-Instruct", - name: "Qwen2.5 Coder 32B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.11 }, - limit: { context: 32768, output: 32768 }, - }, - "Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8-TEE": { - id: "Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8-TEE", - name: "Qwen3 Coder 480B A35B Instruct FP8 TEE", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.22, output: 0.95, cache_read: 0.11 }, - limit: { context: 262144, output: 262144 }, - }, - "Qwen/Qwen2.5-72B-Instruct": { - id: "Qwen/Qwen2.5-72B-Instruct", - name: "Qwen2.5 72B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.13, output: 0.52 }, - limit: { context: 32768, output: 32768 }, - }, - "Qwen/Qwen3-235B-A22B-Instruct-2507-TEE": { - id: "Qwen/Qwen3-235B-A22B-Instruct-2507-TEE", - name: "Qwen3 235B A22B Instruct 2507 TEE", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: true, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.08, output: 0.55, cache_read: 0.04 }, - limit: { context: 262144, output: 65536 }, - }, - "Qwen/Qwen3-235B-A22B": { - id: "Qwen/Qwen3-235B-A22B", - name: "Qwen3 235B A22B", - family: "qwen", - attachment: false, - reasoning: true, - tool_call: true, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 40960, output: 40960 }, - }, - "Qwen/Qwen2.5-VL-72B-Instruct-TEE": { - id: "Qwen/Qwen2.5-VL-72B-Instruct-TEE", - name: "Qwen2.5 VL 72B Instruct TEE", - family: "qwen", + "rednote-hilab/dots.ocr": { + id: "rednote-hilab/dots.ocr", + name: "dots.ocr", + family: "rednote", attachment: false, reasoning: false, tool_call: false, @@ -61239,74 +23450,23 @@ export const snapshot = { last_updated: "2026-01-10", modalities: { input: ["text", "image"], output: ["text"] }, open_weights: true, - cost: { input: 0.15, output: 0.6 }, - limit: { context: 32768, output: 32768 }, - }, - "Qwen/Qwen3Guard-Gen-0.6B": { - id: "Qwen/Qwen3Guard-Gen-0.6B", - name: "Qwen3Guard Gen 0.6B", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: false, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, cost: { input: 0.01, output: 0.01, cache_read: 0.005 }, - limit: { context: 32768, output: 8192 }, + limit: { context: 131072, output: 131072 }, }, - "Qwen/Qwen3-14B": { - id: "Qwen/Qwen3-14B", - name: "Qwen3 14B", - family: "qwen", + "tngtech/TNG-R1T-Chimera-Turbo": { + id: "tngtech/TNG-R1T-Chimera-Turbo", + name: "TNG R1T Chimera Turbo", attachment: false, reasoning: true, tool_call: true, - interleaved: { field: "reasoning_content" }, structured_output: true, temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", + release_date: "2026-01-27", + last_updated: "2026-01-27", modalities: { input: ["text"], output: ["text"] }, open_weights: true, - cost: { input: 0.05, output: 0.22 }, - limit: { context: 40960, output: 40960 }, - }, - "Qwen/Qwen2.5-VL-32B-Instruct": { - id: "Qwen/Qwen2.5-VL-32B-Instruct", - name: "Qwen2.5 VL 32B Instruct", - family: "qwen", - attachment: false, - reasoning: false, - tool_call: false, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.05, output: 0.22 }, - limit: { context: 16384, output: 16384 }, - }, - "tngtech/DeepSeek-R1T-Chimera": { - id: "tngtech/DeepSeek-R1T-Chimera", - name: "DeepSeek R1T Chimera", - family: "tngtech", - attachment: false, - reasoning: true, - tool_call: false, - interleaved: { field: "reasoning_content" }, - structured_output: true, - temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text"], output: ["text"] }, - open_weights: true, - cost: { input: 0.3, output: 1.2 }, - limit: { context: 163840, output: 163840 }, + cost: { input: 0.22, output: 0.6 }, + limit: { context: 163840, output: 65536 }, }, "tngtech/DeepSeek-TNG-R1T2-Chimera": { id: "tngtech/DeepSeek-TNG-R1T2-Chimera", @@ -61325,20 +23485,22 @@ export const snapshot = { cost: { input: 0.25, output: 0.85 }, limit: { context: 163840, output: 163840 }, }, - "tngtech/TNG-R1T-Chimera-Turbo": { - id: "tngtech/TNG-R1T-Chimera-Turbo", - name: "TNG R1T Chimera Turbo", + "tngtech/DeepSeek-R1T-Chimera": { + id: "tngtech/DeepSeek-R1T-Chimera", + name: "DeepSeek R1T Chimera", + family: "tngtech", attachment: false, reasoning: true, - tool_call: true, + tool_call: false, + interleaved: { field: "reasoning_content" }, structured_output: true, temperature: true, - release_date: "2026-01-27", - last_updated: "2026-01-27", + release_date: "2025-12-29", + last_updated: "2026-01-10", modalities: { input: ["text"], output: ["text"] }, open_weights: true, - cost: { input: 0.22, output: 0.6 }, - limit: { context: 163840, output: 65536 }, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 163840, output: 163840 }, }, "tngtech/TNG-R1T-Chimera-TEE": { id: "tngtech/TNG-R1T-Chimera-TEE", @@ -61357,118 +23519,42698 @@ export const snapshot = { cost: { input: 0.25, output: 0.85 }, limit: { context: 163840, output: 65536 }, }, - "mistralai/Devstral-2-123B-Instruct-2512-TEE": { - id: "mistralai/Devstral-2-123B-Instruct-2512-TEE", - name: "Devstral 2 123B Instruct 2512 TEE", + }, + }, + dinference: { + id: "dinference", + env: ["DINFERENCE_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.dinference.com/v1", + name: "DInference", + doc: "https://dinference.com", + models: { + "glm-4.7": { + id: "glm-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12", + last_updated: "2025-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.45, output: 1.65 }, + limit: { context: 200000, output: 128000 }, + }, + "glm-5": { + id: "glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02", + last_updated: "2026-02", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.75, output: 2.4 }, + limit: { context: 200000, output: 128000 }, + }, + "gpt-oss-120b": { + id: "gpt-oss-120b", + name: "GPT OSS 120B", attachment: false, reasoning: false, tool_call: true, - structured_output: true, temperature: true, - release_date: "2026-01-10", - last_updated: "2026-01-10", + release_date: "2025-08", + last_updated: "2025-08", modalities: { input: ["text"], output: ["text"] }, open_weights: true, - cost: { input: 0.05, output: 0.22 }, - limit: { context: 262144, output: 65536 }, + cost: { input: 0.0675, output: 0.27 }, + limit: { context: 131072, output: 32768 }, }, - "openai/gpt-oss-120b-TEE": { - id: "openai/gpt-oss-120b-TEE", - name: "gpt oss 120b TEE", - family: "gpt-oss", + }, + }, + vivgrid: { + id: "vivgrid", + env: ["VIVGRID_API_KEY"], + npm: "@ai-sdk/openai", + api: "https://api.vivgrid.com/v1", + name: "Vivgrid", + doc: "https://docs.vivgrid.com/models", + models: { + "gpt-5.1-codex-max": { + id: "gpt-5.1-codex-max", + name: "GPT-5.1 Codex Max", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "gemini-3.1-flash-lite-preview": { + id: "gemini-3.1-flash-lite-preview", + name: "Gemini 3.1 Flash Lite Preview", + family: "gemini-flash-lite", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-03-03", + last_updated: "2026-03-03", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1.5, cache_read: 0.025, cache_write: 1 }, + limit: { context: 1048576, output: 65536 }, + provider: { npm: "@ai-sdk/openai-compatible" }, + }, + "glm-5": { + id: "glm-5", + name: "GLM-5", + family: "glm", attachment: false, reasoning: true, tool_call: true, interleaved: { field: "reasoning_content" }, structured_output: true, temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", + release_date: "2026-02-12", + last_updated: "2026-02-12", modalities: { input: ["text"], output: ["text"] }, open_weights: true, - cost: { input: 0.04, output: 0.18 }, - limit: { context: 131072, output: 65536 }, + cost: { input: 1, output: 3.2, cache_read: 0.2 }, + limit: { context: 202752, output: 131000 }, + provider: { npm: "@ai-sdk/openai-compatible" }, + }, + "gemini-3.1-pro-preview": { + id: "gemini-3.1-pro-preview", + name: "Gemini 3.1 Pro Preview", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-02-19", + last_updated: "2026-02-19", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, + limit: { context: 1048576, output: 65536 }, + provider: { npm: "@ai-sdk/openai-compatible" }, + }, + "gpt-5-mini": { + id: "gpt-5-mini", + name: "GPT-5 Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.03 }, + limit: { context: 272000, output: 128000 }, + provider: { npm: "@ai-sdk/openai-compatible" }, + }, + "gpt-5.3-codex": { + id: "gpt-5.3-codex", + name: "GPT-5.3 Codex", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-02-24", + last_updated: "2026-02-24", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, output: 128000 }, + }, + "gpt-5.4-mini": { + id: "gpt-5.4-mini", + name: "GPT-5.4 Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-17", + last_updated: "2026-03-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.75, output: 4.5, cache_read: 0.075 }, + limit: { context: 400000, input: 272000, output: 128000 }, + provider: { npm: "@ai-sdk/openai-compatible" }, + }, + "gpt-5.4-nano": { + id: "gpt-5.4-nano", + name: "GPT-5.4 Nano", + family: "gpt-nano", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-17", + last_updated: "2026-03-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.25, cache_read: 0.02 }, + limit: { context: 400000, input: 272000, output: 128000 }, + provider: { npm: "@ai-sdk/openai-compatible" }, + }, + "gpt-5.2-codex": { + id: "gpt-5.2-codex", + name: "GPT-5.2 Codex", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-01-14", + last_updated: "2026-01-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, output: 128000 }, + }, + "gpt-5.4": { + id: "gpt-5.4", + name: "GPT-5.4", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 15, cache_read: 0.25 }, + limit: { context: 400000, input: 272000, output: 128000 }, + provider: { npm: "@ai-sdk/openai-compatible" }, + }, + "deepseek-v3.2": { + id: "deepseek-v3.2", + name: "DeepSeek-V3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.28, output: 0.42 }, + limit: { context: 128000, output: 128000 }, + provider: { npm: "@ai-sdk/openai-compatible" }, + }, + "gpt-5.1-codex": { + id: "gpt-5.1-codex", + name: "GPT-5.1 Codex", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + }, + }, + deepinfra: { + id: "deepinfra", + env: ["DEEPINFRA_API_KEY"], + npm: "@ai-sdk/deepinfra", + name: "Deep Infra", + doc: "https://deepinfra.com/models", + models: { + "Qwen/Qwen3-Coder-480B-A35B-Instruct-Turbo": { + id: "Qwen/Qwen3-Coder-480B-A35B-Instruct-Turbo", + name: "Qwen3 Coder 480B A35B Instruct Turbo", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 262144, output: 66536 }, + }, + "Qwen/Qwen3-Coder-480B-A35B-Instruct": { + id: "Qwen/Qwen3-Coder-480B-A35B-Instruct", + name: "Qwen3 Coder 480B A35B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 1.6 }, + limit: { context: 262144, output: 66536 }, + }, + "zai-org/GLM-4.7-Flash": { + id: "zai-org/GLM-4.7-Flash", + name: "GLM-4.7-Flash", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.06, output: 0.4 }, + limit: { context: 202752, output: 16384 }, + }, + "zai-org/GLM-4.5": { + id: "zai-org/GLM-4.5", + name: "GLM-4.5", + family: "glm", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2 }, + limit: { context: 131072, output: 98304 }, + status: "deprecated", + }, + "zai-org/GLM-4.7": { + id: "zai-org/GLM-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.43, output: 1.75, cache_read: 0.08 }, + limit: { context: 202752, output: 16384 }, + }, + "zai-org/GLM-5.1": { + id: "zai-org/GLM-5.1", + name: "GLM-5.1", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-04-07", + last_updated: "2026-04-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.4, output: 4.4, cache_read: 0.26 }, + limit: { context: 202752, output: 16384 }, + }, + "zai-org/GLM-5": { + id: "zai-org/GLM-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-12", + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.8, output: 2.56, cache_read: 0.16 }, + limit: { context: 202752, output: 16384 }, + }, + "zai-org/GLM-4.6V": { + id: "zai-org/GLM-4.6V", + name: "GLM-4.6V", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.9 }, + limit: { context: 204800, output: 131072 }, + }, + "zai-org/GLM-4.6": { + id: "zai-org/GLM-4.6", + name: "GLM-4.6", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.43, output: 1.74, cache_read: 0.08 }, + limit: { context: 204800, output: 131072 }, + }, + "meta-llama/Llama-4-Scout-17B-16E-Instruct": { + id: "meta-llama/Llama-4-Scout-17B-16E-Instruct", + name: "Llama 4 Scout 17B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.08, output: 0.3 }, + limit: { context: 10000000, output: 16384 }, + }, + "meta-llama/Llama-3.1-8B-Instruct": { + id: "meta-llama/Llama-3.1-8B-Instruct", + name: "Llama 3.1 8B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.05 }, + limit: { context: 131072, output: 16384 }, + }, + "meta-llama/Llama-3.1-70B-Instruct": { + id: "meta-llama/Llama-3.1-70B-Instruct", + name: "Llama 3.1 70B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 0.4 }, + limit: { context: 131072, output: 16384 }, + }, + "meta-llama/Llama-3.1-8B-Instruct-Turbo": { + id: "meta-llama/Llama-3.1-8B-Instruct-Turbo", + name: "Llama 3.1 8B Turbo", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.03 }, + limit: { context: 131072, output: 16384 }, + }, + "meta-llama/Llama-3.3-70B-Instruct-Turbo": { + id: "meta-llama/Llama-3.3-70B-Instruct-Turbo", + name: "Llama 3.3 70B Turbo", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.32 }, + limit: { context: 131072, output: 16384 }, + }, + "meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8": { + id: "meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8", + name: "Llama 4 Maverick 17B FP8", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 1000000, output: 16384 }, + }, + "meta-llama/Llama-3.1-70B-Instruct-Turbo": { + id: "meta-llama/Llama-3.1-70B-Instruct-Turbo", + name: "Llama 3.1 70B Turbo", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 0.4 }, + limit: { context: 131072, output: 16384 }, + }, + "deepseek-ai/DeepSeek-R1-0528": { + id: "deepseek-ai/DeepSeek-R1-0528", + name: "DeepSeek-R1-0528", + attachment: false, + reasoning: true, + tool_call: false, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-07", + release_date: "2025-05-28", + last_updated: "2025-05-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 2.15, cache_read: 0.35 }, + limit: { context: 163840, output: 64000 }, + }, + "deepseek-ai/DeepSeek-V3.2": { + id: "deepseek-ai/DeepSeek-V3.2", + name: "DeepSeek-V3.2", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-12", + release_date: "2025-12-02", + last_updated: "2025-12-02", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.26, output: 0.38, cache_read: 0.13 }, + limit: { context: 163840, output: 64000 }, }, "openai/gpt-oss-20b": { id: "openai/gpt-oss-20b", - name: "gpt oss 20b", + name: "GPT OSS 20B", family: "gpt-oss", attachment: false, reasoning: true, tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.14 }, + limit: { context: 131072, output: 16384 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "GPT OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.24 }, + limit: { context: 131072, output: 16384 }, + }, + "moonshotai/Kimi-K2-Thinking": { + id: "moonshotai/Kimi-K2-Thinking", + name: "Kimi K2 Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-10", + release_date: "2025-11-06", + last_updated: "2025-11-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.47, output: 2 }, + limit: { context: 131072, output: 32768 }, + }, + "moonshotai/Kimi-K2-Instruct": { + id: "moonshotai/Kimi-K2-Instruct", + name: "Kimi K2", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-07-11", + last_updated: "2025-07-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 2 }, + limit: { context: 131072, output: 32768 }, + }, + "moonshotai/Kimi-K2-Instruct-0905": { + id: "moonshotai/Kimi-K2-Instruct-0905", + name: "Kimi K2 0905", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 2, cache_read: 0.15 }, + limit: { context: 262144, output: 262144 }, + }, + "moonshotai/Kimi-K2.5": { + id: "moonshotai/Kimi-K2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, interleaved: { field: "reasoning_content" }, structured_output: true, temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", + knowledge: "2025-01", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 2.8 }, + limit: { context: 262144, output: 32768 }, + }, + "MiniMaxAI/MiniMax-M2": { + id: "MiniMaxAI/MiniMax-M2", + name: "MiniMax M2", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-10", + release_date: "2025-11-13", + last_updated: "2025-11-13", modalities: { input: ["text"], output: ["text"] }, open_weights: true, - cost: { input: 0.02, output: 0.1 }, - limit: { context: 131072, output: 131072 }, + cost: { input: 0.254, output: 1.02 }, + limit: { context: 262144, output: 32768 }, }, - "chutesai/Mistral-Small-3.2-24B-Instruct-2506": { - id: "chutesai/Mistral-Small-3.2-24B-Instruct-2506", - name: "Mistral Small 3.2 24B Instruct 2506", - family: "chutesai", + "MiniMaxAI/MiniMax-M2.5": { + id: "MiniMaxAI/MiniMax-M2.5", + name: "MiniMax M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-06", + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 0.95, cache_read: 0.03, cache_write: 0.375 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMaxAI/MiniMax-M2.1": { + id: "MiniMaxAI/MiniMax-M2.1", + name: "MiniMax M2.1", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-06", + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.28, output: 1.2 }, + limit: { context: 196608, output: 196608 }, + }, + "anthropic/claude-3-7-sonnet-latest": { + id: "anthropic/claude-3-7-sonnet-latest", + name: "Claude Sonnet 3.7 (Latest)", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10-31", + release_date: "2025-03-13", + last_updated: "2025-03-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3.3, output: 16.5, cache_read: 0.33 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-4-opus": { + id: "anthropic/claude-4-opus", + name: "Claude Opus 4", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-06-12", + last_updated: "2025-06-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 16.5, output: 82.5 }, + limit: { context: 200000, output: 32000 }, + }, + }, + }, + "qiniu-ai": { + id: "qiniu-ai", + env: ["QINIU_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.qnaigc.com/v1", + name: "Qiniu", + doc: "https://developer.qiniu.com/aitokenapi", + models: { + "qwen3-235b-a22b": { + id: "qwen3-235b-a22b", + name: "Qwen 3 235B A22B", attachment: false, reasoning: false, tool_call: true, - structured_output: true, + structured_output: false, temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.06, output: 0.18 }, - limit: { context: 131072, output: 131072 }, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 32000 }, }, - "chutesai/Mistral-Small-3.1-24B-Instruct-2503": { - id: "chutesai/Mistral-Small-3.1-24B-Instruct-2503", - name: "Mistral Small 3.1 24B Instruct 2503", - family: "chutesai", + "doubao-seed-1.6-flash": { + id: "doubao-seed-1.6-flash", + name: "Doubao-Seed 1.6 Flash", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-15", + last_updated: "2025-08-15", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 32000 }, + }, + "qwen3-235b-a22b-instruct-2507": { + id: "qwen3-235b-a22b-instruct-2507", + name: "Qwen3 235b A22B Instruct 2507", attachment: false, reasoning: false, tool_call: true, - structured_output: true, + structured_output: false, temperature: true, - release_date: "2025-12-29", - last_updated: "2026-01-10", - modalities: { input: ["text", "image"], output: ["text"] }, - open_weights: true, - cost: { input: 0.03, output: 0.11, cache_read: 0.015 }, - limit: { context: 131072, output: 131072 }, + release_date: "2025-08-12", + last_updated: "2025-08-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 262144, output: 64000 }, }, - "miromind-ai/MiroThinker-v1.5-235B": { - id: "miromind-ai/MiroThinker-v1.5-235B", - name: "MiroThinker V1.5 235B", + "doubao-seed-2.0-code": { + id: "doubao-seed-2.0-code", + name: "Doubao Seed 2.0 Code", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2026-02-14", + last_updated: "2026-02-14", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 128000 }, + }, + "deepseek-v3-0324": { + id: "deepseek-v3-0324", + name: "DeepSeek-V3-0324", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 16000 }, + }, + "doubao-1.5-thinking-pro": { + id: "doubao-1.5-thinking-pro", + name: "Doubao 1.5 Thinking Pro", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 16000 }, + }, + "claude-3.7-sonnet": { + id: "claude-3.7-sonnet", + name: "Claude 3.7 Sonnet", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + limit: { context: 200000, output: 128000 }, + }, + "qwen3.5-397b-a17b": { + id: "qwen3.5-397b-a17b", + name: "Qwen3.5 397B A17B", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2026-02-22", + last_updated: "2026-02-22", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 64000 }, + }, + "qwen-vl-max-2025-01-25": { + id: "qwen-vl-max-2025-01-25", + name: "Qwen VL-MAX-2025-01-25", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 4096 }, + }, + "qwen3-32b": { + id: "qwen3-32b", + name: "Qwen3 32B", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 40000, output: 4096 }, + }, + "doubao-1.5-pro-32k": { + id: "doubao-1.5-pro-32k", + name: "Doubao 1.5 Pro 32k", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 12000 }, + }, + "qwen2.5-vl-72b-instruct": { + id: "qwen2.5-vl-72b-instruct", + name: "Qwen 2.5 VL 72B Instruct", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 8192 }, + }, + "gemini-2.0-flash": { + id: "gemini-2.0-flash", + name: "Gemini 2.0 Flash", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 1048576, output: 8192 }, + }, + "qwen3-vl-30b-a3b-thinking": { + id: "qwen3-vl-30b-a3b-thinking", + name: "Qwen3-Vl 30b A3b Thinking", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2026-02-09", + last_updated: "2026-02-09", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 32000 }, + }, + "gemini-3.0-pro-image-preview": { + id: "gemini-3.0-pro-image-preview", + name: "Gemini 3.0 Pro Image Preview", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-11-20", + last_updated: "2025-11-20", + modalities: { input: ["text", "image"], output: ["text", "image"] }, + open_weights: false, + limit: { context: 32768, output: 8192 }, + }, + "gemini-2.5-pro": { + id: "gemini-2.5-pro", + name: "Gemini 2.5 Pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, + open_weights: false, + limit: { context: 1048576, output: 65536 }, + }, + "claude-4.5-opus": { + id: "claude-4.5-opus", + name: "Claude 4.5 Opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-11-25", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + limit: { context: 200000, output: 200000 }, + }, + "deepseek-r1": { + id: "deepseek-r1", + name: "DeepSeek-R1", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 32000 }, + }, + "claude-4.0-opus": { + id: "claude-4.0-opus", + name: "Claude 4.0 Opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + limit: { context: 200000, output: 32000 }, + }, + "claude-4.5-haiku": { + id: "claude-4.5-haiku", + name: "Claude 4.5 Haiku", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-10-16", + last_updated: "2025-10-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + limit: { context: 200000, output: 64000 }, + }, + "qwen3-max": { + id: "qwen3-max", + name: "Qwen3 Max", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-09-24", + last_updated: "2025-09-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 262144, output: 65536 }, + }, + "gemini-3.0-flash-preview": { + id: "gemini-3.0-flash-preview", + name: "Gemini 3.0 Flash Preview", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-12-18", + last_updated: "2025-12-18", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + limit: { context: 1000000, output: 64000 }, + }, + "gemini-2.5-flash-image": { + id: "gemini-2.5-flash-image", + name: "Gemini 2.5 Flash Image", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-10-22", + last_updated: "2025-10-22", + modalities: { input: ["text", "image"], output: ["image"] }, + open_weights: false, + limit: { context: 32768, output: 8192 }, + }, + "glm-4.5": { + id: "glm-4.5", + name: "GLM 4.5", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 131072, output: 98304 }, + }, + "claude-3.5-sonnet": { + id: "claude-3.5-sonnet", + name: "Claude 3.5 Sonnet", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-09-09", + last_updated: "2025-09-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + limit: { context: 200000, output: 8200 }, + }, + "claude-4.0-sonnet": { + id: "claude-4.0-sonnet", + name: "Claude 4.0 Sonnet", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + limit: { context: 200000, output: 64000 }, + }, + "qwen3-30b-a3b-instruct-2507": { + id: "qwen3-30b-a3b-instruct-2507", + name: "Qwen3 30b A3b Instruct 2507", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2026-02-04", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 32000 }, + }, + "doubao-seed-1.6-thinking": { + id: "doubao-seed-1.6-thinking", + name: "Doubao-Seed 1.6 Thinking", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-15", + last_updated: "2025-08-15", + modalities: { input: ["image", "text", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 32000 }, + }, + "gemini-2.5-flash": { + id: "gemini-2.5-flash", + name: "Gemini 2.5 Flash", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 1048576, output: 64000 }, + }, + "qwen3-235b-a22b-thinking-2507": { + id: "qwen3-235b-a22b-thinking-2507", + name: "Qwen3 235B A22B Thinking 2507", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-12", + last_updated: "2025-08-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 262144, output: 4096 }, + }, + "qwen3-next-80b-a3b-thinking": { + id: "qwen3-next-80b-a3b-thinking", + name: "Qwen3 Next 80B A3B Thinking", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-09-12", + last_updated: "2025-09-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 131072, output: 32768 }, + }, + "qwen3-30b-a3b-thinking-2507": { + id: "qwen3-30b-a3b-thinking-2507", + name: "Qwen3 30b A3b Thinking 2507", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2026-02-04", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 126000, output: 32000 }, + }, + "glm-4.5-air": { + id: "glm-4.5-air", + name: "GLM 4.5 Air", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 131000, output: 4096 }, + }, + "deepseek-v3.1": { + id: "deepseek-v3.1", + name: "DeepSeek-V3.1", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-19", + last_updated: "2025-08-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 32000 }, + }, + "qwen3-30b-a3b": { + id: "qwen3-30b-a3b", + name: "Qwen3 30B A3B", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 40000, output: 4096 }, + }, + "claude-4.1-opus": { + id: "claude-4.1-opus", + name: "Claude 4.1 Opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-06", + last_updated: "2025-08-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + limit: { context: 200000, output: 32000 }, + }, + "doubao-seed-2.0-mini": { + id: "doubao-seed-2.0-mini", + name: "Doubao Seed 2.0 Mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2026-02-14", + last_updated: "2026-02-14", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 32000 }, + }, + "qwen3-next-80b-a3b-instruct": { + id: "qwen3-next-80b-a3b-instruct", + name: "Qwen3 Next 80B A3B Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-09-12", + last_updated: "2025-09-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 131072, output: 32768 }, + }, + "doubao-seed-1.6": { + id: "doubao-seed-1.6", + name: "Doubao-Seed 1.6", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-15", + last_updated: "2025-08-15", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 32000 }, + }, + "qwen2.5-vl-7b-instruct": { + id: "qwen2.5-vl-7b-instruct", + name: "Qwen 2.5 VL 7B Instruct", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 8192 }, + }, + "kling-v2-6": { + id: "kling-v2-6", + name: "Kling-V2 6", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2026-01-13", + last_updated: "2026-01-13", + modalities: { input: ["text", "image", "video"], output: ["video"] }, + open_weights: false, + limit: { context: 99999999, output: 99999999 }, + }, + "MiniMax-M1": { + id: "MiniMax-M1", + name: "MiniMax M1", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 1000000, output: 80000 }, + }, + "gemini-3.0-pro-preview": { + id: "gemini-3.0-pro-preview", + name: "Gemini 3.0 Pro Preview", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-11-19", + last_updated: "2025-11-19", + modalities: { input: ["text", "image", "video", "pdf", "audio"], output: ["text"] }, + open_weights: false, + limit: { context: 1000000, output: 64000 }, + }, + "doubao-seed-2.0-lite": { + id: "doubao-seed-2.0-lite", + name: "Doubao Seed 2.0 Lite", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2026-02-14", + last_updated: "2026-02-14", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 32000 }, + }, + "qwen3-coder-480b-a35b-instruct": { + id: "qwen3-coder-480b-a35b-instruct", + name: "Qwen3 Coder 480B A35B Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-14", + last_updated: "2025-08-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 262000, output: 4096 }, + }, + "claude-3.5-haiku": { + id: "claude-3.5-haiku", + name: "Claude 3.5 Haiku", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-26", + last_updated: "2025-08-26", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + limit: { context: 200000, output: 8192 }, + }, + "gpt-oss-20b": { + id: "gpt-oss-20b", + name: "gpt-oss-20b", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-06", + last_updated: "2025-08-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 4096 }, + }, + "qwen-turbo": { + id: "qwen-turbo", + name: "Qwen-Turbo", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 1000000, output: 4096 }, + }, + "kimi-k2": { + id: "kimi-k2", + name: "Kimi K2", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 128000 }, + }, + "gemini-2.5-flash-lite": { + id: "gemini-2.5-flash-lite", + name: "Gemini 2.5 Flash Lite", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 1048576, output: 64000 }, + }, + "mimo-v2-flash": { + id: "mimo-v2-flash", + name: "Mimo-V2-Flash", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 256000 }, + }, + "qwen3-max-preview": { + id: "qwen3-max-preview", + name: "Qwen3 Max Preview", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-09-06", + last_updated: "2025-09-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 64000 }, + }, + "gpt-oss-120b": { + id: "gpt-oss-120b", + name: "gpt-oss-120b", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-06", + last_updated: "2025-08-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 4096 }, + }, + "doubao-1.5-vision-pro": { + id: "doubao-1.5-vision-pro", + name: "Doubao 1.5 Vision Pro", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 16000 }, + }, + "claude-4.5-sonnet": { + id: "claude-4.5-sonnet", + name: "Claude 4.5 Sonnet", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + limit: { context: 200000, output: 64000 }, + }, + "deepseek-v3": { + id: "deepseek-v3", + name: "DeepSeek-V3", attachment: false, reasoning: false, tool_call: false, structured_output: false, temperature: true, - release_date: "2026-01-10", + release_date: "2025-08-13", + last_updated: "2025-08-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 16000 }, + }, + "deepseek-r1-0528": { + id: "deepseek-r1-0528", + name: "DeepSeek-R1-0528", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 32000 }, + }, + "gemini-2.0-flash-lite": { + id: "gemini-2.0-flash-lite", + name: "Gemini 2.0 Flash Lite", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 1048576, output: 8192 }, + }, + "qwen-max-2025-01-25": { + id: "qwen-max-2025-01-25", + name: "Qwen2.5-Max-2025-01-25", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 4096 }, + }, + "doubao-seed-2.0-pro": { + id: "doubao-seed-2.0-pro", + name: "Doubao Seed 2.0 Pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2026-02-14", + last_updated: "2026-02-14", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 128000 }, + }, + "deepseek/deepseek-v3.2-exp-thinking": { + id: "deepseek/deepseek-v3.2-exp-thinking", + name: "DeepSeek/DeepSeek-V3.2-Exp-Thinking", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 32000 }, + }, + "deepseek/deepseek-v3.1-terminus-thinking": { + id: "deepseek/deepseek-v3.1-terminus-thinking", + name: "DeepSeek/DeepSeek-V3.1-Terminus-Thinking", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-09-22", + last_updated: "2025-09-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 32000 }, + }, + "deepseek/deepseek-v3.2-exp": { + id: "deepseek/deepseek-v3.2-exp", + name: "DeepSeek/DeepSeek-V3.2-Exp", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 32000 }, + }, + "deepseek/deepseek-v3.2-251201": { + id: "deepseek/deepseek-v3.2-251201", + name: "Deepseek/DeepSeek-V3.2", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 32000 }, + }, + "deepseek/deepseek-math-v2": { + id: "deepseek/deepseek-math-v2", + name: "Deepseek/Deepseek-Math-V2", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-12-04", + last_updated: "2025-12-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 160000, output: 160000 }, + }, + "deepseek/deepseek-v3.1-terminus": { + id: "deepseek/deepseek-v3.1-terminus", + name: "DeepSeek/DeepSeek-V3.1-Terminus", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-09-22", + last_updated: "2025-09-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 32000 }, + }, + "stepfun-ai/gelab-zero-4b-preview": { + id: "stepfun-ai/gelab-zero-4b-preview", + name: "Stepfun-Ai/Gelab Zero 4b Preview", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + limit: { context: 8192, output: 4096 }, + }, + "stepfun/step-3.5-flash": { + id: "stepfun/step-3.5-flash", + name: "Stepfun/Step-3.5 Flash", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2026-02-02", + last_updated: "2026-02-02", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + limit: { context: 64000, output: 4096 }, + }, + "x-ai/grok-4-fast": { + id: "x-ai/grok-4-fast", + name: "x-AI/Grok-4-Fast", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-09-20", + last_updated: "2025-09-20", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 2000000, output: 2000000 }, + }, + "x-ai/grok-code-fast-1": { + id: "x-ai/grok-code-fast-1", + name: "x-AI/Grok-Code-Fast 1", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-09-02", + last_updated: "2025-09-02", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 10000 }, + }, + "x-ai/grok-4-fast-reasoning": { + id: "x-ai/grok-4-fast-reasoning", + name: "X-Ai/Grok-4-Fast-Reasoning", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-12-18", + last_updated: "2025-12-18", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 2000000, output: 2000000 }, + }, + "x-ai/grok-4.1-fast-non-reasoning": { + id: "x-ai/grok-4.1-fast-non-reasoning", + name: "X-Ai/Grok 4.1 Fast Non Reasoning", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-12-19", + last_updated: "2025-12-19", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 2000000, output: 2000000 }, + }, + "x-ai/grok-4.1-fast": { + id: "x-ai/grok-4.1-fast", + name: "x-AI/Grok-4.1-Fast", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-11-20", + last_updated: "2025-11-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 2000000, output: 2000000 }, + }, + "x-ai/grok-4-fast-non-reasoning": { + id: "x-ai/grok-4-fast-non-reasoning", + name: "X-Ai/Grok-4-Fast-Non-Reasoning", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-12-18", + last_updated: "2025-12-18", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 2000000, output: 2000000 }, + }, + "x-ai/grok-4.1-fast-reasoning": { + id: "x-ai/grok-4.1-fast-reasoning", + name: "X-Ai/Grok 4.1 Fast Reasoning", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-12-19", + last_updated: "2025-12-19", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 20000000, output: 2000000 }, + }, + "openai/gpt-5.2": { + id: "openai/gpt-5.2", + name: "OpenAI/GPT-5.2", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5": { + id: "openai/gpt-5", + name: "OpenAI/GPT-5", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-09-19", + last_updated: "2025-09-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 400000, output: 128000 }, + }, + "z-ai/glm-4.7": { + id: "z-ai/glm-4.7", + name: "Z-Ai/GLM 4.7", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 200000, output: 200000 }, + }, + "z-ai/glm-5": { + id: "z-ai/glm-5", + name: "Z-Ai/GLM 5", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 200000, output: 128000 }, + }, + "z-ai/autoglm-phone-9b": { + id: "z-ai/autoglm-phone-9b", + name: "Z-Ai/Autoglm Phone 9b", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + limit: { context: 12800, output: 4096 }, + }, + "z-ai/glm-4.6": { + id: "z-ai/glm-4.6", + name: "Z-AI/GLM 4.6", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-10-11", + last_updated: "2025-10-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 200000, output: 200000 }, + }, + "minimax/minimax-m2": { + id: "minimax/minimax-m2", + name: "Minimax/Minimax-M2", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-10-28", + last_updated: "2025-10-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 200000, output: 128000 }, + }, + "minimax/minimax-m2.1": { + id: "minimax/minimax-m2.1", + name: "Minimax/Minimax-M2.1", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 204800, output: 128000 }, + }, + "minimax/minimax-m2.5": { + id: "minimax/minimax-m2.5", + name: "Minimax/Minimax-M2.5", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 204800, output: 128000 }, + }, + "minimax/minimax-m2.5-highspeed": { + id: "minimax/minimax-m2.5-highspeed", + name: "Minimax/Minimax-M2.5 Highspeed", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2026-02-14", + last_updated: "2026-02-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 204800, output: 128000 }, + }, + "moonshotai/kimi-k2.5": { + id: "moonshotai/kimi-k2.5", + name: "Moonshotai/Kimi-K2.5", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2026-01-28", + last_updated: "2026-01-28", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 256000 }, + }, + "moonshotai/kimi-k2-0905": { + id: "moonshotai/kimi-k2-0905", + name: "Kimi K2 0905", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-09-08", + last_updated: "2025-09-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 100000 }, + }, + "moonshotai/kimi-k2-thinking": { + id: "moonshotai/kimi-k2-thinking", + name: "Kimi K2 Thinking", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-11-07", + last_updated: "2025-11-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 100000 }, + }, + "xiaomi/mimo-v2-flash": { + id: "xiaomi/mimo-v2-flash", + name: "Xiaomi/Mimo-V2-Flash", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-12-26", + last_updated: "2025-12-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 256000 }, + }, + "meituan/longcat-flash-chat": { + id: "meituan/longcat-flash-chat", + name: "Meituan/Longcat-Flash-Chat", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-11-05", + last_updated: "2025-11-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 131072, output: 131072 }, + }, + "meituan/longcat-flash-lite": { + id: "meituan/longcat-flash-lite", + name: "Meituan/Longcat-Flash-Lite", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2026-02-06", + last_updated: "2026-02-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 320000 }, + }, + }, + }, + kilo: { + id: "kilo", + env: ["KILO_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.kilo.ai/api/gateway", + name: "Kilo Gateway", + doc: "https://kilo.ai", + models: { + "giga-potato": { + id: "giga-potato", + name: "Giga Potato (free)", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-08-27", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 32000 }, + }, + "corethink:free": { + id: "corethink:free", + name: "CoreThink (free)", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-08-27", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 78000, output: 8192 }, + }, + "giga-potato-thinking": { + id: "giga-potato-thinking", + name: "Giga Potato Thinking (free)", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-27", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 32000 }, + }, + "morph-warp-grep-v2": { + id: "morph-warp-grep-v2", + name: "Morph: WarpGrep V2", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-08-27", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 32000 }, + }, + "ai21/jamba-large-1.7": { + id: "ai21/jamba-large-1.7", + name: "AI21: Jamba Large 1.7", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-08-09", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8 }, + limit: { context: 256000, output: 4096 }, + }, + "alibaba/tongyi-deepresearch-30b-a3b": { + id: "alibaba/tongyi-deepresearch-30b-a3b", + name: "Tongyi DeepResearch 30B A3B", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-09-18", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.09, output: 0.45 }, + limit: { context: 131072, output: 131072 }, + }, + "inflection/inflection-3-pi": { + id: "inflection/inflection-3-pi", + name: "Inflection: Inflection 3 Pi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-10-11", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10 }, + limit: { context: 8000, output: 1024 }, + }, + "inflection/inflection-3-productivity": { + id: "inflection/inflection-3-productivity", + name: "Inflection: Inflection 3 Productivity", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-10-11", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10 }, + limit: { context: 8000, output: 1024 }, + }, + "liquid/lfm2-8b-a1b": { + id: "liquid/lfm2-8b-a1b", + name: "LiquidAI: LFM2-8B-A1B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-10-20", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.01, output: 0.02 }, + limit: { context: 32768, output: 32768 }, + }, + "liquid/lfm-2.2-6b": { + id: "liquid/lfm-2.2-6b", + name: "LiquidAI: LFM2-2.6B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-10-20", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.01, output: 0.02 }, + limit: { context: 32768, output: 32768 }, + }, + "liquid/lfm-2-24b-a2b": { + id: "liquid/lfm-2-24b-a2b", + name: "LiquidAI: LFM2-24B-A2B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2026-02-26", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.12 }, + limit: { context: 32768, output: 32768 }, + }, + "writer/palmyra-x5": { + id: "writer/palmyra-x5", + name: "Writer: Palmyra X5", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-28", + last_updated: "2025-04-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 6 }, + limit: { context: 1040000, output: 8192 }, + }, + "ibm-granite/granite-4.0-h-micro": { + id: "ibm-granite/granite-4.0-h-micro", + name: "IBM: Granite 4.0 Micro", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-10-20", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.017, output: 0.11 }, + limit: { context: 131000, output: 32768 }, + }, + "essentialai/rnj-1-instruct": { + id: "essentialai/rnj-1-instruct", + name: "EssentialAI: Rnj 1 Instruct", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-12-05", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.15 }, + limit: { context: 32768, output: 6554 }, + }, + "perplexity/sonar-pro": { + id: "perplexity/sonar-pro", + name: "Perplexity: Sonar Pro", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-01-01", + last_updated: "2025-09-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 200000, output: 8000 }, + }, + "perplexity/sonar-deep-research": { + id: "perplexity/sonar-deep-research", + name: "Perplexity: Sonar Deep Research", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-01-27", + last_updated: "2025-01-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8 }, + limit: { context: 128000, output: 25600 }, + }, + "perplexity/sonar": { + id: "perplexity/sonar", + name: "Perplexity: Sonar", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-01-01", + last_updated: "2025-09-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 1 }, + limit: { context: 127072, output: 25415 }, + }, + "perplexity/sonar-pro-search": { + id: "perplexity/sonar-pro-search", + name: "Perplexity: Sonar Pro Search", + attachment: true, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-10-31", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 200000, output: 8000 }, + }, + "perplexity/sonar-reasoning-pro": { + id: "perplexity/sonar-reasoning-pro", + name: "Perplexity: Sonar Reasoning Pro", + attachment: true, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2024-01-01", + last_updated: "2025-09-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8 }, + limit: { context: 128000, output: 25600 }, + }, + "deepseek/deepseek-chat-v3.1": { + id: "deepseek/deepseek-chat-v3.1", + name: "DeepSeek: DeepSeek V3.1", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-21", + last_updated: "2025-08-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.75 }, + limit: { context: 32768, output: 7168 }, + }, + "deepseek/deepseek-chat": { + id: "deepseek/deepseek-chat", + name: "DeepSeek: DeepSeek V3", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-12-01", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.32, output: 0.89, cache_read: 0.15 }, + limit: { context: 163840, output: 163840 }, + }, + "deepseek/deepseek-r1-distill-llama-70b": { + id: "deepseek/deepseek-r1-distill-llama-70b", + name: "DeepSeek: R1 Distill Llama 70B", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-01-23", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.7, output: 0.8, cache_read: 0.015 }, + limit: { context: 131072, output: 16384 }, + }, + "deepseek/deepseek-r1": { + id: "deepseek/deepseek-r1", + name: "DeepSeek: R1", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.7, output: 2.5 }, + limit: { context: 64000, output: 16000 }, + }, + "deepseek/deepseek-v3.2-speciale": { + id: "deepseek/deepseek-v3.2-speciale", + name: "DeepSeek: DeepSeek V3.2 Speciale", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-12-01", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 1.2, cache_read: 0.135 }, + limit: { context: 163840, output: 163840 }, + }, + "deepseek/deepseek-r1-distill-qwen-32b": { + id: "deepseek/deepseek-r1-distill-qwen-32b", + name: "DeepSeek: R1 Distill Qwen 32B", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-01-01", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.29, output: 0.29 }, + limit: { context: 32768, output: 32768 }, + }, + "deepseek/deepseek-v3.2-exp": { + id: "deepseek/deepseek-v3.2-exp", + name: "DeepSeek: DeepSeek V3.2 Exp", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-01-01", + last_updated: "2025-09-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 0.41 }, + limit: { context: 163840, output: 65536 }, + }, + "deepseek/deepseek-v3.2": { + id: "deepseek/deepseek-v3.2", + name: "DeepSeek: DeepSeek V3.2", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12-01", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.26, output: 0.38, cache_read: 0.125 }, + limit: { context: 163840, output: 65536 }, + }, + "deepseek/deepseek-chat-v3-0324": { + id: "deepseek/deepseek-chat-v3-0324", + name: "DeepSeek: DeepSeek V3 0324", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-03-24", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.77, cache_read: 0.095 }, + limit: { context: 163840, output: 65536 }, + }, + "deepseek/deepseek-r1-0528": { + id: "deepseek/deepseek-r1-0528", + name: "DeepSeek: R1 0528", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-05-28", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.45, output: 2.15, cache_read: 0.2 }, + limit: { context: 163840, output: 65536 }, + }, + "deepseek/deepseek-v3.1-terminus": { + id: "deepseek/deepseek-v3.1-terminus", + name: "DeepSeek: DeepSeek V3.1 Terminus", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-09-22", + last_updated: "2025-09-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.21, output: 0.79, cache_read: 0.13 }, + limit: { context: 163840, output: 32768 }, + }, + "openrouter/hunter-alpha": { + id: "openrouter/hunter-alpha", + name: "Hunter Alpha", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-12", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 1048576, output: 32000 }, + }, + "openrouter/auto": { + id: "openrouter/auto", + name: "Auto Router", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-15", + last_updated: "2026-03-15", + modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["image", "text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 2000000, output: 32768 }, + }, + "openrouter/bodybuilder": { + id: "openrouter/bodybuilder", + name: "Body Builder (beta)", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2026-03-15", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 32768 }, + status: "beta", + }, + "openrouter/healer-alpha": { + id: "openrouter/healer-alpha", + name: "Healer Alpha", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-12", + last_updated: "2026-03-15", + modalities: { input: ["audio", "image", "text", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 32000 }, + }, + "openrouter/free": { + id: "openrouter/free", + name: "Free Models Router", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-01", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 200000, output: 32768 }, + }, + "arcee-ai/trinity-mini": { + id: "arcee-ai/trinity-mini", + name: "Arcee AI: Trinity Mini", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12", + last_updated: "2026-01-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.045, output: 0.15 }, + limit: { context: 131072, output: 131072 }, + }, + "arcee-ai/virtuoso-large": { + id: "arcee-ai/virtuoso-large", + name: "Arcee AI: Virtuoso Large", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-05-06", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.75, output: 1.2 }, + limit: { context: 131072, output: 64000 }, + }, + "arcee-ai/spotlight": { + id: "arcee-ai/spotlight", + name: "Arcee AI: Spotlight", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-05-06", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.18, output: 0.18 }, + limit: { context: 131072, output: 65537 }, + }, + "arcee-ai/maestro-reasoning": { + id: "arcee-ai/maestro-reasoning", + name: "Arcee AI: Maestro Reasoning", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-05-06", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.9, output: 3.3 }, + limit: { context: 131072, output: 32000 }, + }, + "arcee-ai/trinity-large-preview:free": { + id: "arcee-ai/trinity-large-preview:free", + name: "Arcee AI: Trinity Large Preview (free)", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2026-01-28", + last_updated: "2026-01-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 131000, output: 26200 }, + }, + "arcee-ai/coder-large": { + id: "arcee-ai/coder-large", + name: "Arcee AI: Coder Large", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-05-06", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 0.8 }, + limit: { context: 32768, output: 32768 }, + }, + "deepcogito/cogito-v2.1-671b": { + id: "deepcogito/cogito-v2.1-671b", + name: "Deep Cogito: Cogito v2.1 671B", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-11-14", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.25, output: 1.25 }, + limit: { context: 128000, output: 32768 }, + }, + "upstage/solar-pro-3": { + id: "upstage/solar-pro-3", + name: "Upstage: Solar Pro 3", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-01-27", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 128000, output: 32768 }, + }, + "nex-agi/deepseek-v3.1-nex-n1": { + id: "nex-agi/deepseek-v3.1-nex-n1", + name: "Nex AGI: DeepSeek V3.1 Nex N1", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-01-01", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 1 }, + limit: { context: 131072, output: 163840 }, + }, + "bytedance-seed/seed-1.6": { + id: "bytedance-seed/seed-1.6", + name: "ByteDance Seed: Seed 1.6", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-09", + last_updated: "2025-09", + modalities: { input: ["image", "text", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2 }, + limit: { context: 262144, output: 32768 }, + }, + "bytedance-seed/seed-2.0-lite": { + id: "bytedance-seed/seed-2.0-lite", + name: "ByteDance Seed: Seed-2.0-Lite", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-10", + last_updated: "2026-03-15", + modalities: { input: ["image", "text", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.25, output: 2 }, + limit: { context: 262144, output: 131072 }, + }, + "bytedance-seed/seed-1.6-flash": { + id: "bytedance-seed/seed-1.6-flash", + name: "ByteDance Seed: Seed 1.6 Flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12-23", + last_updated: "2026-03-15", + modalities: { input: ["image", "text", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.075, output: 0.3 }, + limit: { context: 262144, output: 32768 }, + }, + "bytedance-seed/seed-2.0-mini": { + id: "bytedance-seed/seed-2.0-mini", + name: "ByteDance Seed: Seed-2.0-Mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-27", + last_updated: "2026-03-15", + modalities: { input: ["image", "text", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 262144, output: 131072 }, + }, + "mancer/weaver": { + id: "mancer/weaver", + name: "Mancer: Weaver (alpha)", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2023-08-02", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.75, output: 1 }, + limit: { context: 8000, output: 2000 }, + }, + "anthracite-org/magnum-v4-72b": { + id: "anthracite-org/magnum-v4-72b", + name: "Magnum v4 72B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-10-22", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 3, output: 5 }, + limit: { context: 16384, output: 2048 }, + }, + "kilo-auto/balanced": { + id: "kilo-auto/balanced", + name: "Kilo Auto Balanced", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-15", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 3 }, + limit: { context: 204800, output: 131072 }, + }, + "kilo-auto/frontier": { + id: "kilo-auto/frontier", + name: "Kilo Auto Frontier", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-15", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25 }, + limit: { context: 1000000, output: 128000 }, + }, + "kilo-auto/small": { + id: "kilo-auto/small", + name: "Kilo Auto Small", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-15", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.4 }, + limit: { context: 400000, output: 128000 }, + }, + "kilo-auto/free": { + id: "kilo-auto/free", + name: "Kilo Auto Free", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-15", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "undi95/remm-slerp-l2-13b": { + id: "undi95/remm-slerp-l2-13b", + name: "ReMM SLERP 13B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2023-07-22", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.45, output: 0.65 }, + limit: { context: 6144, output: 4096 }, + }, + "allenai/olmo-2-0325-32b-instruct": { + id: "allenai/olmo-2-0325-32b-instruct", + name: "AllenAI: Olmo 2 32B Instruct", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2025-03-15", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.2 }, + limit: { context: 128000, output: 32768 }, + }, + "allenai/molmo-2-8b": { + id: "allenai/molmo-2-8b", + name: "AllenAI: Molmo2 8B", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2026-01-09", + last_updated: "2026-01-31", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 36864, output: 36864 }, + }, + "allenai/olmo-3-7b-think": { + id: "allenai/olmo-3-7b-think", + name: "AllenAI: Olmo 3 7B Think", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-11-22", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.12, output: 0.2 }, + limit: { context: 65536, output: 65536 }, + }, + "allenai/olmo-3.1-32b-instruct": { + id: "allenai/olmo-3.1-32b-instruct", + name: "AllenAI: Olmo 3.1 32B Instruct", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2026-01-07", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.6 }, + limit: { context: 65536, output: 32768 }, + }, + "allenai/olmo-3.1-32b-think": { + id: "allenai/olmo-3.1-32b-think", + name: "AllenAI: Olmo 3.1 32B Think", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-12-17", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.5 }, + limit: { context: 65536, output: 65536 }, + }, + "allenai/olmo-3-7b-instruct": { + id: "allenai/olmo-3-7b-instruct", + name: "AllenAI: Olmo 3 7B Instruct", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-11-22", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.2 }, + limit: { context: 65536, output: 65536 }, + }, + "allenai/olmo-3-32b-think": { + id: "allenai/olmo-3-32b-think", + name: "AllenAI: Olmo 3 32B Think", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-11-22", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.5 }, + limit: { context: 65536, output: 65536 }, + }, + "nousresearch/hermes-2-pro-llama-3-8b": { + id: "nousresearch/hermes-2-pro-llama-3-8b", + name: "NousResearch: Hermes 2 Pro - Llama-3 8B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-05-27", + last_updated: "2024-06-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.14, output: 0.14 }, + limit: { context: 8192, output: 8192 }, + }, + "nousresearch/hermes-4-405b": { + id: "nousresearch/hermes-4-405b", + name: "Nous: Hermes 4 405B", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-08-25", + last_updated: "2025-08-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3 }, + limit: { context: 131072, output: 26215 }, + }, + "nousresearch/hermes-3-llama-3.1-70b": { + id: "nousresearch/hermes-3-llama-3.1-70b", + name: "Nous: Hermes 3 70B Instruct", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-08-18", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.3 }, + limit: { context: 131072, output: 32768 }, + }, + "nousresearch/hermes-4-70b": { + id: "nousresearch/hermes-4-70b", + name: "Nous: Hermes 4 70B", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-08-25", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 0.4, cache_read: 0.055 }, + limit: { context: 131072, output: 131072 }, + }, + "nousresearch/hermes-3-llama-3.1-405b": { + id: "nousresearch/hermes-3-llama-3.1-405b", + name: "Nous: Hermes 3 405B Instruct", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-08-16", + last_updated: "2024-08-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 1 }, + limit: { context: 131072, output: 16384 }, + }, + "kilo/auto": { + id: "kilo/auto", + name: "Kilo: Auto", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2024-06-01", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25 }, + limit: { context: 1000000, output: 128000 }, + }, + "kilo/auto-small": { + id: "kilo/auto-small", + name: "Deprecated Kilo Auto Small", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-15", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.4 }, + limit: { context: 400000, output: 128000 }, + }, + "kilo/auto-free": { + id: "kilo/auto-free", + name: "Deprecated Kilo Auto Free", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-15", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "morph/morph-v3-fast": { + id: "morph/morph-v3-fast", + name: "Morph: Morph V3 Fast", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-08-15", + last_updated: "2024-08-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 1.2 }, + limit: { context: 81920, output: 38000 }, + }, + "morph/morph-v3-large": { + id: "morph/morph-v3-large", + name: "Morph: Morph V3 Large", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-08-15", + last_updated: "2024-08-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.9, output: 1.9 }, + limit: { context: 262144, output: 131072 }, + }, + "eleutherai/llemma_7b": { + id: "eleutherai/llemma_7b", + name: "EleutherAI: Llemma 7b", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-14", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.8, output: 1.2 }, + limit: { context: 4096, output: 4096 }, + }, + "stepfun/step-3.5-flash:free": { + id: "stepfun/step-3.5-flash:free", + name: "StepFun: Step 3.5 Flash (free)", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-01-29", + last_updated: "2026-01-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 256000 }, + }, + "stepfun/step-3.5-flash": { + id: "stepfun/step-3.5-flash", + name: "StepFun: Step 3.5 Flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-01-29", + last_updated: "2026-01-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3, cache_read: 0.02 }, + limit: { context: 256000, output: 256000 }, + }, + "alpindale/goliath-120b": { + id: "alpindale/goliath-120b", + name: "Goliath 120B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2023-11-10", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 3.75, output: 7.5 }, + limit: { context: 6144, output: 1024 }, + }, + "mistralai/mistral-nemo": { + id: "mistralai/mistral-nemo", + name: "Mistral: Mistral Nemo", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-07-01", + last_updated: "2024-07-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.04 }, + limit: { context: 131072, output: 16384 }, + }, + "mistralai/mistral-saba": { + id: "mistralai/mistral-saba", + name: "Mistral: Saba", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-02-17", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.6 }, + limit: { context: 32768, output: 32768 }, + }, + "mistralai/mistral-large-2512": { + id: "mistralai/mistral-large-2512", + name: "Mistral: Mistral Large 3 2512", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-11-01", + last_updated: "2025-12-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 1.5 }, + limit: { context: 262144, output: 52429 }, + }, + "mistralai/devstral-medium": { + id: "mistralai/devstral-medium", + name: "Mistral: Devstral Medium", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-07-10", + last_updated: "2025-07-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 2 }, + limit: { context: 131072, output: 26215 }, + }, + "mistralai/mistral-small-3.1-24b-instruct": { + id: "mistralai/mistral-small-3.1-24b-instruct", + name: "Mistral: Mistral Small 3.1 24B", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-03-17", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.35, output: 0.56, cache_read: 0.015 }, + limit: { context: 128000, output: 131072 }, + }, + "mistralai/pixtral-large-2411": { + id: "mistralai/pixtral-large-2411", + name: "Mistral: Pixtral Large 2411", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-11-19", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: true, + cost: { input: 2, output: 6 }, + limit: { context: 131072, output: 32768 }, + }, + "mistralai/devstral-2512": { + id: "mistralai/devstral-2512", + name: "Mistral: Devstral 2 2512", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-09-12", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 2, cache_read: 0.025 }, + limit: { context: 262144, output: 65536 }, + }, + "mistralai/codestral-2508": { + id: "mistralai/codestral-2508", + name: "Mistral: Codestral 2508", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-08-01", + last_updated: "2025-08-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.9 }, + limit: { context: 256000, output: 51200 }, + }, + "mistralai/mistral-small-24b-instruct-2501": { + id: "mistralai/mistral-small-24b-instruct-2501", + name: "Mistral: Mistral Small 3", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-12-29", last_updated: "2026-01-10", modalities: { input: ["text"], output: ["text"] }, open_weights: true, - cost: { input: 0.3, output: 1.2, cache_read: 0.15 }, + cost: { input: 0.05, output: 0.08 }, + limit: { context: 32768, output: 16384 }, + }, + "mistralai/mistral-large-2411": { + id: "mistralai/mistral-large-2411", + name: "Mistral Large 2411", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-07-24", + last_updated: "2024-11-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2, output: 6 }, + limit: { context: 131072, output: 26215 }, + }, + "mistralai/mixtral-8x22b-instruct": { + id: "mistralai/mixtral-8x22b-instruct", + name: "Mistral: Mixtral 8x22B Instruct", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-04-17", + last_updated: "2024-04-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2, output: 6 }, + limit: { context: 65536, output: 13108 }, + }, + "mistralai/mistral-large-2407": { + id: "mistralai/mistral-large-2407", + name: "Mistral Large 2407", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-11-19", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2, output: 6 }, + limit: { context: 131072, output: 32768 }, + }, + "mistralai/ministral-8b-2512": { + id: "mistralai/ministral-8b-2512", + name: "Mistral: Ministral 3 8B 2512", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-12-02", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.15 }, + limit: { context: 262144, output: 32768 }, + }, + "mistralai/mistral-medium-3.1": { + id: "mistralai/mistral-medium-3.1", + name: "Mistral: Mistral Medium 3.1", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-08-12", + last_updated: "2025-08-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2 }, + limit: { context: 131072, output: 26215 }, + }, + "mistralai/ministral-3b-2512": { + id: "mistralai/ministral-3b-2512", + name: "Mistral: Ministral 3 3B 2512", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-12-02", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 131072, output: 32768 }, + }, + "mistralai/voxtral-small-24b-2507": { + id: "mistralai/voxtral-small-24b-2507", + name: "Mistral: Voxtral Small 24B 2507", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-07-01", + last_updated: "2025-07-01", + modalities: { input: ["text", "audio"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 32000, output: 6400 }, + }, + "mistralai/mixtral-8x7b-instruct": { + id: "mistralai/mixtral-8x7b-instruct", + name: "Mistral: Mixtral 8x7B Instruct", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2023-12-10", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.54, output: 0.54 }, + limit: { context: 32768, output: 16384 }, + }, + "mistralai/mistral-medium-3": { + id: "mistralai/mistral-medium-3", + name: "Mistral: Mistral Medium 3", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-05-07", + last_updated: "2025-05-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2 }, + limit: { context: 131072, output: 26215 }, + }, + "mistralai/mistral-small-3.2-24b-instruct": { + id: "mistralai/mistral-small-3.2-24b-instruct", + name: "Mistral: Mistral Small 3.2 24B", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-06-20", + last_updated: "2025-06-20", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.06, output: 0.18, cache_read: 0.03 }, + limit: { context: 131072, output: 131072 }, + }, + "mistralai/mistral-small-creative": { + id: "mistralai/mistral-small-creative", + name: "Mistral: Mistral Small Creative", + attachment: false, + reasoning: false, + tool_call: true, + release_date: "2025-12-17", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 32768, output: 32768 }, + }, + "mistralai/devstral-small": { + id: "mistralai/devstral-small", + name: "Mistral: Devstral Small 1.1", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-05-07", + last_updated: "2025-07-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 131072, output: 26215 }, + }, + "mistralai/mistral-large": { + id: "mistralai/mistral-large", + name: "Mistral Large", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-07-24", + last_updated: "2025-12-02", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2, output: 6 }, + limit: { context: 128000, output: 25600 }, + }, + "mistralai/mistral-7b-instruct-v0.1": { + id: "mistralai/mistral-7b-instruct-v0.1", + name: "Mistral: Mistral 7B Instruct v0.1", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.11, output: 0.19 }, + limit: { context: 2824, output: 565 }, + }, + "mistralai/ministral-14b-2512": { + id: "mistralai/ministral-14b-2512", + name: "Mistral: Ministral 3 14B 2512", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-12-16", + last_updated: "2025-12-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 262144, output: 52429 }, + }, + "meta-llama/llama-3.3-70b-instruct": { + id: "meta-llama/llama-3.3-70b-instruct", + name: "Meta: Llama 3.3 70B Instruct", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-08-01", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.32 }, + limit: { context: 131072, output: 16384 }, + }, + "meta-llama/llama-4-scout": { + id: "meta-llama/llama-4-scout", + name: "Meta: Llama 4 Scout", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.08, output: 0.3 }, + limit: { context: 327680, output: 16384 }, + }, + "meta-llama/llama-guard-3-8b": { + id: "meta-llama/llama-guard-3-8b", + name: "Llama Guard 3 8B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-04-18", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.06 }, + limit: { context: 131072, output: 26215 }, + }, + "meta-llama/llama-4-maverick": { + id: "meta-llama/llama-4-maverick", + name: "Meta: Llama 4 Maverick", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-04-05", + last_updated: "2025-12-24", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 1048576, output: 16384 }, + }, + "meta-llama/llama-3.2-11b-vision-instruct": { + id: "meta-llama/llama-3.2-11b-vision-instruct", + name: "Meta: Llama 3.2 11B Vision Instruct", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-09-25", + last_updated: "2024-09-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.049, output: 0.049 }, + limit: { context: 131072, output: 16384 }, + }, + "meta-llama/llama-guard-4-12b": { + id: "meta-llama/llama-guard-4-12b", + name: "Meta: Llama Guard 4 12B", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.18, output: 0.18 }, + limit: { context: 163840, output: 32768 }, + }, + "meta-llama/llama-3.1-70b-instruct": { + id: "meta-llama/llama-3.1-70b-instruct", + name: "Meta: Llama 3.1 70B Instruct", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-07-16", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 0.4 }, + limit: { context: 131072, output: 26215 }, + }, + "meta-llama/llama-3.1-405b": { + id: "meta-llama/llama-3.1-405b", + name: "Meta: Llama 3.1 405B (base)", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-08-02", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 4, output: 4 }, + limit: { context: 32768, output: 32768 }, + }, + "meta-llama/llama-3.2-1b-instruct": { + id: "meta-llama/llama-3.2-1b-instruct", + name: "Meta: Llama 3.2 1B Instruct", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-09-18", + last_updated: "2026-01-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.027, output: 0.2 }, + limit: { context: 60000, output: 12000 }, + }, + "meta-llama/llama-3.2-3b-instruct": { + id: "meta-llama/llama-3.2-3b-instruct", + name: "Meta: Llama 3.2 3B Instruct", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-09-18", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.051, output: 0.34 }, + limit: { context: 80000, output: 16384 }, + }, + "meta-llama/llama-3-8b-instruct": { + id: "meta-llama/llama-3-8b-instruct", + name: "Meta: Llama 3 8B Instruct", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-04-25", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.04 }, + limit: { context: 8192, output: 16384 }, + }, + "meta-llama/llama-3.1-8b-instruct": { + id: "meta-llama/llama-3.1-8b-instruct", + name: "Meta: Llama 3.1 8B Instruct", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-07-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.05 }, + limit: { context: 16384, output: 16384 }, + }, + "meta-llama/llama-3-70b-instruct": { + id: "meta-llama/llama-3-70b-instruct", + name: "Meta: Llama 3 70B Instruct", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.51, output: 0.74 }, + limit: { context: 8192, output: 8000 }, + }, + "meta-llama/llama-3.1-405b-instruct": { + id: "meta-llama/llama-3.1-405b-instruct", + name: "Meta: Llama 3.1 405B Instruct", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-07-16", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 4, output: 4 }, + limit: { context: 131000, output: 26200 }, + }, + "x-ai/grok-code-fast-1:optimized:free": { + id: "x-ai/grok-code-fast-1:optimized:free", + name: "xAI: Grok Code Fast 1 Optimized (experimental, free)", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-27", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 10000 }, + }, + "x-ai/grok-4.20-multi-agent-beta": { + id: "x-ai/grok-4.20-multi-agent-beta", + name: "xAI: Grok 4.20 Multi-Agent Beta", + attachment: true, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2026-03-12", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6 }, + limit: { context: 2000000, output: 32768 }, + }, + "x-ai/grok-4-fast": { + id: "x-ai/grok-4-fast", + name: "xAI: Grok 4 Fast", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-19", + last_updated: "2025-08-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + "x-ai/grok-code-fast-1": { + id: "x-ai/grok-code-fast-1", + name: "xAI: Grok Code Fast 1", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-26", + last_updated: "2025-08-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.5, cache_read: 0.02 }, + limit: { context: 256000, output: 10000 }, + }, + "x-ai/grok-3-beta": { + id: "x-ai/grok-3-beta", + name: "xAI: Grok 3 Beta", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.75 }, + limit: { context: 131072, output: 26215 }, + }, + "x-ai/grok-4": { + id: "x-ai/grok-4", + name: "xAI: Grok 4", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.75 }, + limit: { context: 256000, output: 51200 }, + }, + "x-ai/grok-3-mini": { + id: "x-ai/grok-3-mini", + name: "xAI: Grok 3 Mini", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.5, cache_read: 0.075 }, + limit: { context: 131072, output: 26215 }, + }, + "x-ai/grok-4.1-fast": { + id: "x-ai/grok-4.1-fast", + name: "xAI: Grok 4.1 Fast", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-11-19", + last_updated: "2025-11-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + "x-ai/grok-4.20-beta": { + id: "x-ai/grok-4.20-beta", + name: "xAI: Grok 4.20 Beta", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-12", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6 }, + limit: { context: 2000000, output: 32768 }, + }, + "x-ai/grok-3-mini-beta": { + id: "x-ai/grok-3-mini-beta", + name: "xAI: Grok 3 Mini Beta", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.5, cache_read: 0.075 }, + limit: { context: 131072, output: 26215 }, + }, + "x-ai/grok-3": { + id: "x-ai/grok-3", + name: "xAI: Grok 3", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.75 }, + limit: { context: 131072, output: 26215 }, + }, + "tencent/hunyuan-a13b-instruct": { + id: "tencent/hunyuan-a13b-instruct", + name: "Tencent: Hunyuan A13B Instruct", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-06-30", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.57 }, + limit: { context: 131072, output: 131072 }, + }, + "gryphe/mythomax-l2-13b": { + id: "gryphe/mythomax-l2-13b", + name: "MythoMax 13B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-04-25", + last_updated: "2024-04-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.06, output: 0.06 }, + limit: { context: 4096, output: 4096 }, + }, + "sao10k/l3-euryale-70b": { + id: "sao10k/l3-euryale-70b", + name: "Sao10k: Llama 3 Euryale 70B v2.1", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-06-18", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.48, output: 1.48 }, + limit: { context: 8192, output: 8192 }, + }, + "sao10k/l3-lunaris-8b": { + id: "sao10k/l3-lunaris-8b", + name: "Sao10K: Llama 3 8B Lunaris", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-08-13", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.04, output: 0.05 }, + limit: { context: 8192, output: 8192 }, + }, + "sao10k/l3.3-euryale-70b": { + id: "sao10k/l3.3-euryale-70b", + name: "Sao10K: Llama 3.3 Euryale 70B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-12-18", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.65, output: 0.75 }, + limit: { context: 131072, output: 16384 }, + }, + "sao10k/l3.1-70b-hanami-x1": { + id: "sao10k/l3.1-70b-hanami-x1", + name: "Sao10K: Llama 3.1 70B Hanami x1", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-01-08", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 3, output: 3 }, + limit: { context: 16000, output: 16000 }, + }, + "sao10k/l3.1-euryale-70b": { + id: "sao10k/l3.1-euryale-70b", + name: "Sao10K: Llama 3.1 Euryale 70B v2.2", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-08-28", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.85, output: 0.85 }, + limit: { context: 131072, output: 16384 }, + }, + "microsoft/wizardlm-2-8x22b": { + id: "microsoft/wizardlm-2-8x22b", + name: "WizardLM-2 8x22B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-04-24", + last_updated: "2024-04-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.62, output: 0.62 }, + limit: { context: 65535, output: 8000 }, + }, + "microsoft/phi-4": { + id: "microsoft/phi-4", + name: "Microsoft: Phi 4", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.06, output: 0.14 }, + limit: { context: 16384, output: 16384 }, + }, + "cohere/command-r7b-12-2024": { + id: "cohere/command-r7b-12-2024", + name: "Cohere: Command R7B (12-2024)", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-02-27", + last_updated: "2024-02-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.0375, output: 0.15 }, + limit: { context: 128000, output: 4000 }, + }, + "cohere/command-a": { + id: "cohere/command-a", + name: "Cohere: Command A", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-03-13", + last_updated: "2025-03-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.5, output: 10 }, + limit: { context: 256000, output: 8192 }, + }, + "cohere/command-r-plus-08-2024": { + id: "cohere/command-r-plus-08-2024", + name: "Cohere: Command R+ (08-2024)", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-08-30", + last_updated: "2024-08-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.5, output: 10 }, + limit: { context: 128000, output: 4000 }, + }, + "cohere/command-r-08-2024": { + id: "cohere/command-r-08-2024", + name: "Cohere: Command R (08-2024)", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-08-30", + last_updated: "2024-08-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 128000, output: 4000 }, + }, + "prime-intellect/intellect-3": { + id: "prime-intellect/intellect-3", + name: "Prime Intellect: INTELLECT-3", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-11-26", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 1.1 }, + limit: { context: 131072, output: 131072 }, + }, + "nvidia/llama-3.3-nemotron-super-49b-v1.5": { + id: "nvidia/llama-3.3-nemotron-super-49b-v1.5", + name: "NVIDIA: Llama 3.3 Nemotron Super 49B V1.5", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-03-16", + last_updated: "2025-03-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 131072, output: 26215 }, + }, + "nvidia/nemotron-3-nano-30b-a3b": { + id: "nvidia/nemotron-3-nano-30b-a3b", + name: "NVIDIA: Nemotron 3 Nano 30B A3B", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2024-12", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.2 }, + limit: { context: 262144, output: 52429 }, + }, + "nvidia/nemotron-nano-12b-v2-vl": { + id: "nvidia/nemotron-nano-12b-v2-vl", + name: "NVIDIA: Nemotron Nano 12B 2 VL", + attachment: true, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-10-28", + last_updated: "2026-01-31", + modalities: { input: ["image", "text", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.6 }, + limit: { context: 131072, output: 26215 }, + }, + "nvidia/nemotron-3-super-120b-a12b:free": { + id: "nvidia/nemotron-3-super-120b-a12b:free", + name: "NVIDIA: Nemotron 3 Super (free)", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-12", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 262144 }, + }, + "nvidia/nemotron-nano-9b-v2": { + id: "nvidia/nemotron-nano-9b-v2", + name: "NVIDIA: Nemotron Nano 9B V2", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-18", + last_updated: "2025-08-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.04, output: 0.16 }, + limit: { context: 131072, output: 26215 }, + }, + "nvidia/llama-3.1-nemotron-70b-instruct": { + id: "nvidia/llama-3.1-nemotron-70b-instruct", + name: "NVIDIA: Llama 3.1 Nemotron 70B Instruct", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-10-12", + last_updated: "2024-10-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.2, output: 1.2 }, + limit: { context: 131072, output: 16384 }, + }, + "inception/mercury-2": { + id: "inception/mercury-2", + name: "Inception: Mercury 2", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-24", + last_updated: "2026-02-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 0.75, cache_read: 0.025 }, + limit: { context: 128000, output: 50000 }, + }, + "inception/mercury": { + id: "inception/mercury", + name: "Inception: Mercury", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-06-26", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 0.75 }, + limit: { context: 128000, output: 32000 }, + }, + "inception/mercury-coder": { + id: "inception/mercury-coder", + name: "Inception: Mercury Coder", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-02-26", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 0.75 }, + limit: { context: 128000, output: 32000 }, + }, + "openai/gpt-5.1-codex-max": { + id: "openai/gpt-5.1-codex-max", + name: "OpenAI: GPT-5.1-Codex-Max", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.2-chat": { + id: "openai/gpt-5.2-chat", + name: "OpenAI: GPT-5.2 Chat", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-12-11", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-4o-mini-search-preview": { + id: "openai/gpt-4o-mini-search-preview", + name: "OpenAI: GPT-4o-mini Search Preview", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-01", + last_updated: "2025-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-5-chat": { + id: "openai/gpt-5-chat", + name: "OpenAI: GPT-5 Chat", + attachment: true, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-08-07", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-4o-2024-05-13": { + id: "openai/gpt-4o-2024-05-13", + name: "OpenAI: GPT-4o (2024-05-13)", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-05-13", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 15 }, + limit: { context: 128000, output: 4096 }, + }, + "openai/gpt-5.3-chat": { + id: "openai/gpt-5.3-chat", + name: "OpenAI: GPT-5.3 Chat", + attachment: true, + reasoning: false, + tool_call: true, + release_date: "2026-03-04", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-5.2-pro": { + id: "openai/gpt-5.2-pro", + name: "OpenAI: GPT-5.2 Pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-12-11", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 21, output: 168 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-4-1106-preview": { + id: "openai/gpt-4-1106-preview", + name: "OpenAI: GPT-4 Turbo (older v1106)", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2023-11-06", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 10, output: 30 }, + limit: { context: 128000, output: 4096 }, + }, + "openai/gpt-4o-audio-preview": { + id: "openai/gpt-4o-audio-preview", + name: "OpenAI: GPT-4o Audio", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-08-15", + last_updated: "2026-03-15", + modalities: { input: ["audio", "text"], output: ["audio", "text"] }, + open_weights: false, + cost: { input: 2.5, output: 10 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-5-mini": { + id: "openai/gpt-5-mini", + name: "OpenAI: GPT-5 Mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-08-07", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.025 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5-nano": { + id: "openai/gpt-5-nano", + name: "OpenAI: GPT-5 Nano", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-08-07", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.4, cache_read: 0.005 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.3-codex": { + id: "openai/gpt-5.3-codex", + name: "OpenAI: GPT-5.3-Codex", + attachment: true, + reasoning: true, + tool_call: true, + release_date: "2026-02-25", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-3.5-turbo-16k": { + id: "openai/gpt-3.5-turbo-16k", + name: "OpenAI: GPT-3.5 Turbo 16k", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2023-08-28", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 4 }, + limit: { context: 16385, output: 4096 }, + }, + "openai/gpt-4-turbo": { + id: "openai/gpt-4-turbo", + name: "OpenAI: GPT-4 Turbo", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2023-09-13", + last_updated: "2024-04-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 10, output: 30 }, + limit: { context: 128000, output: 4096 }, + }, + "openai/gpt-5.2": { + id: "openai/gpt-5.2", + name: "OpenAI: GPT-5.2", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-12-11", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/o3-pro": { + id: "openai/o3-pro", + name: "OpenAI: o3 Pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-04-16", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 20, output: 80 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/o3-mini-high": { + id: "openai/o3-mini-high", + name: "OpenAI: o3 Mini High", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-01-31", + last_updated: "2026-03-15", + modalities: { input: ["pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-4o-mini": { + id: "openai/gpt-4o-mini", + name: "OpenAI: GPT-4o-mini", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-07-18", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6, cache_read: 0.075 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/o4-mini-deep-research": { + id: "openai/o4-mini-deep-research", + name: "OpenAI: o4 Mini Deep Research", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2024-06-26", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-5.1-chat": { + id: "openai/gpt-5.1-chat", + name: "OpenAI: GPT-5.1 Chat", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-11-13", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/o4-mini": { + id: "openai/o4-mini", + name: "OpenAI: o4 Mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-04-16", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.275 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-5.2-codex": { + id: "openai/gpt-5.2-codex", + name: "OpenAI: GPT-5.2-Codex", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2026-01-14", + last_updated: "2026-01-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-4o-mini-2024-07-18": { + id: "openai/gpt-4o-mini-2024-07-18", + name: "OpenAI: GPT-4o-mini (2024-07-18)", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-07-18", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-5.1-codex-mini": { + id: "openai/gpt-5.1-codex-mini", + name: "OpenAI: GPT-5.1-Codex-Mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.025 }, + limit: { context: 400000, output: 100000 }, + }, + "openai/gpt-4o-2024-08-06": { + id: "openai/gpt-4o-2024-08-06", + name: "OpenAI: GPT-4o (2024-08-06)", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-08-06", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10, cache_read: 1.25 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-5-image": { + id: "openai/gpt-5-image", + name: "OpenAI: GPT-5 Image", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-10-14", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["image", "text"] }, + open_weights: false, + cost: { input: 10, output: 10 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.1": { + id: "openai/gpt-5.1", + name: "OpenAI: GPT-5.1", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-11-13", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/o1": { + id: "openai/o1", + name: "OpenAI: o1", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-12-05", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 60, cache_read: 7.5 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-5.4-pro": { + id: "openai/gpt-5.4-pro", + name: "OpenAI: GPT-5.4 Pro", + attachment: true, + reasoning: true, + tool_call: true, + release_date: "2026-03-06", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 30, output: 180 }, + limit: { context: 1050000, output: 128000 }, + }, + "openai/gpt-3.5-turbo": { + id: "openai/gpt-3.5-turbo", + name: "OpenAI: GPT-3.5 Turbo", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2023-03-01", + last_updated: "2023-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 1.5 }, + limit: { context: 16385, output: 4096 }, + }, + "openai/o3-deep-research": { + id: "openai/o3-deep-research", + name: "OpenAI: o3 Deep Research", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2024-06-26", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 10, output: 40, cache_read: 2.5 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/o3-mini": { + id: "openai/o3-mini", + name: "OpenAI: o3 Mini", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-12-20", + last_updated: "2026-03-15", + modalities: { input: ["pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-4-turbo-preview": { + id: "openai/gpt-4-turbo-preview", + name: "OpenAI: GPT-4 Turbo Preview", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-01-25", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 10, output: 30 }, + limit: { context: 128000, output: 4096 }, + }, + "openai/o1-pro": { + id: "openai/o1-pro", + name: "OpenAI: o1-pro", + attachment: true, + reasoning: true, + tool_call: false, + temperature: false, + release_date: "2025-03-19", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 150, output: 600 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-4": { + id: "openai/gpt-4", + name: "OpenAI: GPT-4", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2023-03-14", + last_updated: "2024-04-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 30, output: 60 }, + limit: { context: 8191, output: 4096 }, + }, + "openai/gpt-4-0314": { + id: "openai/gpt-4-0314", + name: "OpenAI: GPT-4 (older v0314)", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2023-05-28", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 30, output: 60 }, + limit: { context: 8191, output: 4096 }, + }, + "openai/gpt-5-codex": { + id: "openai/gpt-5-codex", + name: "OpenAI: GPT-5 Codex", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.4": { + id: "openai/gpt-5.4", + name: "OpenAI: GPT-5.4", + attachment: true, + reasoning: true, + tool_call: true, + release_date: "2026-03-06", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 15 }, + limit: { context: 1050000, output: 128000 }, + }, + "openai/gpt-audio": { + id: "openai/gpt-audio", + name: "OpenAI: GPT Audio", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2026-01-20", + last_updated: "2026-03-15", + modalities: { input: ["audio", "text"], output: ["audio", "text"] }, + open_weights: false, + cost: { input: 2.5, output: 10 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-4o:extended": { + id: "openai/gpt-4o:extended", + name: "OpenAI: GPT-4o (extended)", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-05-13", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 6, output: 18 }, + limit: { context: 128000, output: 64000 }, + }, + "openai/gpt-4o-search-preview": { + id: "openai/gpt-4o-search-preview", + name: "OpenAI: GPT-4o Search Preview", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2025-03-13", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-4.1-nano": { + id: "openai/gpt-4.1-nano", + name: "OpenAI: GPT-4.1 Nano", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-04-14", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, + limit: { context: 1047576, output: 32768 }, + }, + "openai/o4-mini-high": { + id: "openai/o4-mini-high", + name: "OpenAI: o4 Mini High", + attachment: true, + reasoning: true, + tool_call: true, + release_date: "2025-04-17", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/o3": { + id: "openai/o3", + name: "OpenAI: o3", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-04-16", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-oss-20b": { + id: "openai/gpt-oss-20b", + name: "OpenAI: gpt-oss-20b", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.14 }, + limit: { context: 131072, output: 26215 }, + }, + "openai/gpt-5-pro": { + id: "openai/gpt-5-pro", + name: "OpenAI: GPT-5 Pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-10-06", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 120 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-audio-mini": { + id: "openai/gpt-audio-mini", + name: "OpenAI: GPT Audio Mini", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2026-01-20", + last_updated: "2026-03-15", + modalities: { input: ["audio", "text"], output: ["audio", "text"] }, + open_weights: false, + cost: { input: 0.6, output: 2.4 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-4o": { + id: "openai/gpt-4o", + name: "OpenAI: GPT-4o", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-05-13", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10, cache_read: 1.25 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-3.5-turbo-0613": { + id: "openai/gpt-3.5-turbo-0613", + name: "OpenAI: GPT-3.5 Turbo (older v0613)", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2023-06-13", + last_updated: "2023-06-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 2 }, + limit: { context: 4095, output: 4096 }, + }, + "openai/gpt-5-image-mini": { + id: "openai/gpt-5-image-mini", + name: "OpenAI: GPT-5 Image Mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-10-16", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["image", "text"] }, + open_weights: false, + cost: { input: 2.5, output: 2 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5": { + id: "openai/gpt-5", + name: "OpenAI: GPT-5", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-08-07", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-oss-safeguard-20b": { + id: "openai/gpt-oss-safeguard-20b", + name: "OpenAI: gpt-oss-safeguard-20b", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-10-29", + last_updated: "2025-10-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.075, output: 0.3, cache_read: 0.037 }, + limit: { context: 131072, output: 65536 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "OpenAI: gpt-oss-120b", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.039, output: 0.19 }, + limit: { context: 131072, output: 26215 }, + }, + "openai/gpt-3.5-turbo-instruct": { + id: "openai/gpt-3.5-turbo-instruct", + name: "OpenAI: GPT-3.5 Turbo Instruct", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2023-03-01", + last_updated: "2023-09-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.5, output: 2 }, + limit: { context: 4095, output: 4096 }, + }, + "openai/gpt-4.1": { + id: "openai/gpt-4.1", + name: "OpenAI: GPT-4.1", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-04-14", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 1047576, output: 32768 }, + }, + "openai/gpt-4.1-mini": { + id: "openai/gpt-4.1-mini", + name: "OpenAI: GPT-4.1 Mini", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-04-14", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.6, cache_read: 0.1 }, + limit: { context: 1047576, output: 32768 }, + }, + "openai/gpt-5.1-codex": { + id: "openai/gpt-5.1-codex", + name: "OpenAI: GPT-5.1-Codex", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-4o-2024-11-20": { + id: "openai/gpt-4o-2024-11-20", + name: "OpenAI: GPT-4o (2024-11-20)", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-11-20", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10, cache_read: 1.25 }, + limit: { context: 128000, output: 16384 }, + }, + "amazon/nova-lite-v1": { + id: "amazon/nova-lite-v1", + name: "Amazon: Nova Lite 1.0", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-12-06", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.06, output: 0.24 }, + limit: { context: 300000, output: 5120 }, + }, + "amazon/nova-pro-v1": { + id: "amazon/nova-pro-v1", + name: "Amazon: Nova Pro 1.0", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-12-03", + last_updated: "2024-12-03", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 3.2 }, + limit: { context: 300000, output: 5120 }, + }, + "amazon/nova-premier-v1": { + id: "amazon/nova-premier-v1", + name: "Amazon: Nova Premier 1.0", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-11-01", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 12.5 }, + limit: { context: 1000000, output: 32000 }, + }, + "amazon/nova-2-lite-v1": { + id: "amazon/nova-2-lite-v1", + name: "Amazon: Nova 2 Lite", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2024-12-01", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5 }, + limit: { context: 1000000, output: 65535 }, + }, + "amazon/nova-micro-v1": { + id: "amazon/nova-micro-v1", + name: "Amazon: Nova Micro 1.0", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-12-06", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.035, output: 0.14 }, + limit: { context: 128000, output: 5120 }, + }, + "z-ai/glm-4.7": { + id: "z-ai/glm-4.7", + name: "Z.ai: GLM 4.7", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12-22", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.38, output: 1.98, cache_read: 0.2 }, + limit: { context: 202752, output: 65535 }, + }, + "z-ai/glm-5": { + id: "z-ai/glm-5", + name: "Z.ai: GLM 5", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.72, output: 2.3 }, + limit: { context: 202752, output: 131072 }, + }, + "z-ai/glm-4-32b": { + id: "z-ai/glm-4-32b", + name: "Z.ai: GLM 4 32B ", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-07-25", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 128000, output: 32768 }, + }, + "z-ai/glm-5.1": { + id: "z-ai/glm-5.1", + name: "Z.ai: GLM 5.1", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-27", + last_updated: "2026-03-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.26, output: 3.96 }, + limit: { context: 202752, output: 131072 }, + }, + "z-ai/glm-4.5": { + id: "z-ai/glm-4.5", + name: "Z.ai: GLM 4.5", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-07-28", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2, cache_read: 0.175 }, + limit: { context: 131072, output: 98304 }, + }, + "z-ai/glm-4.5-air": { + id: "z-ai/glm-4.5-air", + name: "Z.ai: GLM 4.5 Air", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 0.85, cache_read: 0.025 }, + limit: { context: 131072, output: 98304 }, + }, + "z-ai/glm-4.5v": { + id: "z-ai/glm-4.5v", + name: "Z.ai: GLM 4.5V", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-11", + last_updated: "2025-08-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 1.8, cache_read: 0.11 }, + limit: { context: 65536, output: 16384 }, + }, + "z-ai/glm-4.6": { + id: "z-ai/glm-4.6", + name: "Z.ai: GLM 4.6", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-09-30", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.39, output: 1.9, cache_read: 0.175 }, + limit: { context: 204800, output: 204800 }, + }, + "z-ai/glm-4.6v": { + id: "z-ai/glm-4.6v", + name: "Z.ai: GLM 4.6V", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-09-30", + last_updated: "2026-01-10", + modalities: { input: ["image", "text", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.9 }, + limit: { context: 131072, output: 131072 }, + }, + "z-ai/glm-4.7-flash": { + id: "z-ai/glm-4.7-flash", + name: "Z.ai: GLM 4.7 Flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.06, output: 0.4, cache_read: 0.01 }, + limit: { context: 202752, output: 40551 }, + }, + "baidu/ernie-4.5-vl-424b-a47b": { + id: "baidu/ernie-4.5-vl-424b-a47b", + name: "Baidu: ERNIE 4.5 VL 424B A47B ", + attachment: true, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-06-30", + last_updated: "2026-01", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.42, output: 1.25 }, + limit: { context: 123000, output: 16000 }, + }, + "baidu/ernie-4.5-vl-28b-a3b": { + id: "baidu/ernie-4.5-vl-28b-a3b", + name: "Baidu: ERNIE 4.5 VL 28B A3B", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-06-30", + last_updated: "2025-06-30", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.14, output: 0.56 }, + limit: { context: 30000, output: 8000 }, + }, + "baidu/ernie-4.5-21b-a3b": { + id: "baidu/ernie-4.5-21b-a3b", + name: "Baidu: ERNIE 4.5 21B A3B", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-06-30", + last_updated: "2025-06-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.28 }, + limit: { context: 120000, output: 8000 }, + }, + "baidu/ernie-4.5-300b-a47b": { + id: "baidu/ernie-4.5-300b-a47b", + name: "Baidu: ERNIE 4.5 300B A47B ", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-06-30", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.28, output: 1.1 }, + limit: { context: 123000, output: 12000 }, + }, + "baidu/ernie-4.5-21b-a3b-thinking": { + id: "baidu/ernie-4.5-21b-a3b-thinking", + name: "Baidu: ERNIE 4.5 21B A3B Thinking", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-09-19", + last_updated: "2025-09-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.28 }, + limit: { context: 131072, output: 65536 }, + }, + "relace/relace-apply-3": { + id: "relace/relace-apply-3", + name: "Relace: Relace Apply 3", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2025-09-26", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.85, output: 1.25 }, + limit: { context: 256000, output: 128000 }, + }, + "relace/relace-search": { + id: "relace/relace-search", + name: "Relace: Relace Search", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-12-09", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 3 }, + limit: { context: 256000, output: 128000 }, + }, + "minimax/minimax-m2.7": { + id: "minimax/minimax-m2.7", + name: "MiniMax: MiniMax M2.7", + family: "minimax-m2.7", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.06 }, + limit: { context: 204800, output: 131072 }, + }, + "minimax/minimax-m2": { + id: "minimax/minimax-m2", + name: "MiniMax: MiniMax M2", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-10-23", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.255, output: 1, cache_read: 0.03 }, + limit: { context: 196608, output: 196608 }, + }, + "minimax/minimax-01": { + id: "minimax/minimax-01", + name: "MiniMax: MiniMax-01", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-01-15", + last_updated: "2025-01-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 1.1 }, + limit: { context: 1000192, output: 1000192 }, + }, + "minimax/minimax-m2.1": { + id: "minimax/minimax-m2.1", + name: "MiniMax: MiniMax M2.1", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 0.95, cache_read: 0.03 }, + limit: { context: 196608, output: 39322 }, + }, + "minimax/minimax-m1": { + id: "minimax/minimax-m1", + name: "MiniMax: MiniMax M1", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 2.2 }, + limit: { context: 1000000, output: 40000 }, + }, + "minimax/minimax-m2-her": { + id: "minimax/minimax-m2-her", + name: "MiniMax: MiniMax M2-her", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2026-01-23", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 65536, output: 2048 }, + }, + "minimax/minimax-m2.5": { + id: "minimax/minimax-m2.5", + name: "MiniMax: MiniMax M2.5", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.25, output: 1.2, cache_read: 0.029 }, + limit: { context: 196608, output: 196608 }, + }, + "qwen/qwen3-235b-a22b": { + id: "qwen/qwen3-235b-a22b", + name: "Qwen: Qwen3 235B A22B", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2024-12-01", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.455, output: 1.82, cache_read: 0.15 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen/qwen3.5-122b-a10b": { + id: "qwen/qwen3.5-122b-a10b", + name: "Qwen: Qwen3.5-122B-A10B", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-26", + last_updated: "2026-03-15", + modalities: { input: ["image", "text", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.26, output: 2.08 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen/qwen2.5-coder-7b-instruct": { + id: "qwen/qwen2.5-coder-7b-instruct", + name: "Qwen: Qwen2.5 Coder 7B Instruct", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-09-17", + last_updated: "2024-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.09 }, + limit: { context: 32768, output: 6554 }, + }, + "qwen/qwen3-coder-plus": { + id: "qwen/qwen3-coder-plus", + name: "Qwen: Qwen3 Coder Plus", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-07-01", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.65, output: 3.25, cache_read: 0.2 }, + limit: { context: 1000000, output: 65536 }, + }, + "qwen/qwen3.5-27b": { + id: "qwen/qwen3.5-27b", + name: "Qwen: Qwen3.5-27B", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-26", + last_updated: "2026-03-15", + modalities: { input: ["image", "text", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.195, output: 1.56 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen/qwen3-235b-a22b-2507": { + id: "qwen/qwen3-235b-a22b-2507", + name: "Qwen: Qwen3 235B A22B Instruct 2507", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-04", + last_updated: "2026-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.071, output: 0.1 }, + limit: { context: 262144, output: 52429 }, + }, + "qwen/qwen3-8b": { + id: "qwen/qwen3-8b", + name: "Qwen: Qwen3 8B", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-04", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.4, cache_read: 0.05 }, + limit: { context: 40960, output: 8192 }, + }, + "qwen/qwen3.5-397b-a17b": { + id: "qwen/qwen3.5-397b-a17b", + name: "Qwen: Qwen3.5 397B A17B", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-15", + last_updated: "2026-03-15", + modalities: { input: ["image", "text", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.39, output: 2.34 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen/qwen-vl-plus": { + id: "qwen/qwen-vl-plus", + name: "Qwen: Qwen VL Plus", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-01-25", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1365, output: 0.4095, cache_read: 0.042 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen/qwen3-32b": { + id: "qwen/qwen3-32b", + name: "Qwen: Qwen3 32B", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2024-12-01", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.08, output: 0.24, cache_read: 0.04 }, + limit: { context: 40960, output: 40960 }, + }, + "qwen/qwen2.5-vl-72b-instruct": { + id: "qwen/qwen2.5-vl-72b-instruct", + name: "Qwen: Qwen2.5 VL 72B Instruct", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-02-01", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.8, output: 0.8, cache_read: 0.075 }, + limit: { context: 32768, output: 32768 }, + }, + "qwen/qwen-max": { + id: "qwen/qwen-max", + name: "Qwen: Qwen-Max ", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-04-03", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.04, output: 4.16, cache_read: 0.32 }, + limit: { context: 32768, output: 8192 }, + }, + "qwen/qwen-plus": { + id: "qwen/qwen-plus", + name: "Qwen: Qwen-Plus", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-01-25", + last_updated: "2025-09-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.2, cache_read: 0.08 }, + limit: { context: 1000000, output: 32768 }, + }, + "qwen/qwen3-vl-235b-a22b-thinking": { + id: "qwen/qwen3-vl-235b-a22b-thinking", + name: "Qwen: Qwen3 VL 235B A22B Thinking", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-09-24", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.26, output: 2.6 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen/qwen3-vl-30b-a3b-thinking": { + id: "qwen/qwen3-vl-30b-a3b-thinking", + name: "Qwen: Qwen3 VL 30B A3B Thinking", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-10-11", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 1.56 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen/qwen2.5-vl-32b-instruct": { + id: "qwen/qwen2.5-vl-32b-instruct", + name: "Qwen: Qwen2.5 VL 32B Instruct", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-03-24", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.6, cache_read: 0.025 }, + limit: { context: 128000, output: 16384 }, + }, + "qwen/qwen3-vl-8b-instruct": { + id: "qwen/qwen3-vl-8b-instruct", + name: "Qwen: Qwen3 VL 8B Instruct", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-10-15", + last_updated: "2025-11-25", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.08, output: 0.5 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen/qwen3.5-flash-02-23": { + id: "qwen/qwen3.5-flash-02-23", + name: "Qwen: Qwen3.5-Flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-26", + last_updated: "2026-03-15", + modalities: { input: ["image", "text", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 1000000, output: 65536 }, + }, + "qwen/qwen3-max": { + id: "qwen/qwen3-max", + name: "Qwen: Qwen3 Max", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-09-05", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.2, output: 6, cache_read: 0.24 }, + limit: { context: 262144, output: 32768 }, + }, + "qwen/qwen-plus-2025-07-28": { + id: "qwen/qwen-plus-2025-07-28", + name: "Qwen: Qwen Plus 0728", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-09-09", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.26, output: 0.78 }, + limit: { context: 1000000, output: 32768 }, + }, + "qwen/qwen3-30b-a3b-instruct-2507": { + id: "qwen/qwen3-30b-a3b-instruct-2507", + name: "Qwen: Qwen3 30B A3B Instruct 2507", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-07-29", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.09, output: 0.3, cache_read: 0.04 }, + limit: { context: 262144, output: 262144 }, + }, + "qwen/qwen3-vl-32b-instruct": { + id: "qwen/qwen3-vl-32b-instruct", + name: "Qwen: Qwen3 VL 32B Instruct", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-10-21", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.104, output: 0.416 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen/qwen3-235b-a22b-thinking-2507": { + id: "qwen/qwen3-235b-a22b-thinking-2507", + name: "Qwen: Qwen3 235B A22B Thinking 2507", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-07-25", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.11, output: 0.6 }, + limit: { context: 262144, output: 262144 }, + }, + "qwen/qwen3-next-80b-a3b-thinking": { + id: "qwen/qwen3-next-80b-a3b-thinking", + name: "Qwen: Qwen3 Next 80B A3B Thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-09-11", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.0975, output: 0.78 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen/qwen3-30b-a3b-thinking-2507": { + id: "qwen/qwen3-30b-a3b-thinking-2507", + name: "Qwen: Qwen3 30B A3B Thinking 2507", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-07-29", + last_updated: "2025-07-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.051, output: 0.34 }, + limit: { context: 32768, output: 6554 }, + }, + "qwen/qwen-2.5-7b-instruct": { + id: "qwen/qwen-2.5-7b-instruct", + name: "Qwen: Qwen2.5 7B Instruct", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-09", + last_updated: "2025-04-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.04, output: 0.1 }, + limit: { context: 32768, output: 6554 }, + }, + "qwen/qwen-vl-max": { + id: "qwen/qwen-vl-max", + name: "Qwen: Qwen VL Max", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-04-08", + last_updated: "2025-08-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 3.2 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen/qwen3-coder-flash": { + id: "qwen/qwen3-coder-flash", + name: "Qwen: Qwen3 Coder Flash", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-07-23", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.195, output: 0.975, cache_read: 0.06 }, + limit: { context: 1000000, output: 65536 }, + }, + "qwen/qwen3-30b-a3b": { + id: "qwen/qwen3-30b-a3b", + name: "Qwen: Qwen3 30B A3B", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-04", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.08, output: 0.28, cache_read: 0.03 }, + limit: { context: 40960, output: 40960 }, + }, + "qwen/qwq-32b": { + id: "qwen/qwq-32b", + name: "Qwen: QwQ 32B", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2024-11-28", + last_updated: "2025-04-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.4 }, + limit: { context: 32768, output: 32768 }, + }, + "qwen/qwen3-next-80b-a3b-instruct": { + id: "qwen/qwen3-next-80b-a3b-instruct", + name: "Qwen: Qwen3 Next 80B A3B Instruct", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-09-11", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.09, output: 1.1 }, + limit: { context: 131072, output: 52429 }, + }, + "qwen/qwen3-coder-next": { + id: "qwen/qwen3-coder-next", + name: "Qwen: Qwen3 Coder Next", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2026-02-02", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.12, output: 0.75, cache_read: 0.035 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen/qwen-2.5-coder-32b-instruct": { + id: "qwen/qwen-2.5-coder-32b-instruct", + name: "Qwen2.5 Coder 32B Instruct", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-11-11", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.2, cache_read: 0.015 }, + limit: { context: 32768, output: 8192 }, + }, + "qwen/qwen3-vl-30b-a3b-instruct": { + id: "qwen/qwen3-vl-30b-a3b-instruct", + name: "Qwen: Qwen3 VL 30B A3B Instruct", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-10-05", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 0.52 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen/qwen3-coder-30b-a3b-instruct": { + id: "qwen/qwen3-coder-30b-a3b-instruct", + name: "Qwen: Qwen3 Coder 30B A3B Instruct", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-07-31", + last_updated: "2025-07-31", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.27 }, + limit: { context: 160000, output: 32768 }, + }, + "qwen/qwen3-max-thinking": { + id: "qwen/qwen3-max-thinking", + name: "Qwen: Qwen3 Max Thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-01-23", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.78, output: 3.9 }, + limit: { context: 262144, output: 32768 }, + }, + "qwen/qwen-turbo": { + id: "qwen/qwen-turbo", + name: "Qwen: Qwen-Turbo", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-11-01", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.0325, output: 0.13, cache_read: 0.01 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen/qwen3-vl-235b-a22b-instruct": { + id: "qwen/qwen3-vl-235b-a22b-instruct", + name: "Qwen: Qwen3 VL 235B A22B Instruct", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-09-23", + last_updated: "2026-01-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.88, cache_read: 0.11 }, + limit: { context: 262144, output: 52429 }, + }, + "qwen/qwen3-coder": { + id: "qwen/qwen3-coder", + name: "Qwen: Qwen3 Coder 480B A35B", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.22, output: 1, cache_read: 0.022 }, + limit: { context: 262144, output: 52429 }, + }, + "qwen/qwen-2.5-vl-7b-instruct": { + id: "qwen/qwen-2.5-vl-7b-instruct", + name: "Qwen: Qwen2.5-VL 7B Instruct", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-08-28", + last_updated: "2024-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 32768, output: 6554 }, + }, + "qwen/qwen3.5-9b": { + id: "qwen/qwen3.5-9b", + name: "Qwen: Qwen3.5-9B", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-10", + last_updated: "2026-03-15", + modalities: { input: ["image", "text", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.15 }, + limit: { context: 256000, output: 32768 }, + }, + "qwen/qwen3-vl-8b-thinking": { + id: "qwen/qwen3-vl-8b-thinking", + name: "Qwen: Qwen3 VL 8B Thinking", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-10-15", + last_updated: "2025-11-25", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.117, output: 1.365 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen/qwen-plus-2025-07-28:thinking": { + id: "qwen/qwen-plus-2025-07-28:thinking", + name: "Qwen: Qwen Plus 0728 (thinking)", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-09-09", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.26, output: 0.78 }, + limit: { context: 1000000, output: 32768 }, + }, + "qwen/qwen-2.5-72b-instruct": { + id: "qwen/qwen-2.5-72b-instruct", + name: "Qwen2.5 72B Instruct", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-09", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.12, output: 0.39 }, + limit: { context: 32768, output: 16384 }, + }, + "qwen/qwen3-14b": { + id: "qwen/qwen3-14b", + name: "Qwen: Qwen3 14B", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-04", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.06, output: 0.24, cache_read: 0.025 }, + limit: { context: 40960, output: 40960 }, + }, + "qwen/qwen3.5-35b-a3b": { + id: "qwen/qwen3.5-35b-a3b", + name: "Qwen: Qwen3.5-35B-A3B", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-26", + last_updated: "2026-03-15", + modalities: { input: ["image", "text", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1625, output: 1.3 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen/qwen3.5-plus-02-15": { + id: "qwen/qwen3.5-plus-02-15", + name: "Qwen: Qwen3.5 Plus 2026-02-15", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-15", + last_updated: "2026-03-15", + modalities: { input: ["image", "text", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.26, output: 1.56 }, + limit: { context: 1000000, output: 65536 }, + }, + "alfredpros/codellama-7b-instruct-solidity": { + id: "alfredpros/codellama-7b-instruct-solidity", + name: "AlfredPros: CodeLLaMa 7B Instruct Solidity", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-14", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.8, output: 1.2 }, + limit: { context: 4096, output: 4096 }, + }, + "kwaipilot/kat-coder-pro": { + id: "kwaipilot/kat-coder-pro", + name: "Kwaipilot: KAT-Coder-Pro V1", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-09-30", + last_updated: "2025-10-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.207, output: 0.828, cache_read: 0.0414 }, + limit: { context: 256000, output: 128000 }, + }, + "google/gemini-2.5-pro-preview-05-06": { + id: "google/gemini-2.5-pro-preview-05-06", + name: "Google: Gemini 2.5 Pro Preview 05-06", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-05-06", + last_updated: "2026-03-15", + modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, reasoning: 10, cache_read: 0.125, cache_write: 0.375 }, + limit: { context: 1048576, output: 65535 }, + }, + "google/gemini-3.1-pro-preview-customtools": { + id: "google/gemini-3.1-pro-preview-customtools", + name: "Google: Gemini 3.1 Pro Preview Custom Tools", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-26", + last_updated: "2026-03-15", + modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, reasoning: 12 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-2.5-flash-lite-preview-09-2025": { + id: "google/gemini-2.5-flash-lite-preview-09-2025", + name: "Google: Gemini 2.5 Flash Lite Preview 09-2025", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-09-25", + last_updated: "2026-03-15", + modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, reasoning: 0.4, cache_read: 0.01, cache_write: 0.083333 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-2.0-flash-001": { + id: "google/gemini-2.0-flash-001", + name: "Google: Gemini 2.0 Flash", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-12-11", + last_updated: "2026-03-15", + modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.025, cache_write: 0.083333 }, + limit: { context: 1048576, output: 8192 }, + }, + "google/gemma-3n-e4b-it": { + id: "google/gemma-3n-e4b-it", + name: "Google: Gemma 3n 4B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-05-20", + last_updated: "2025-05-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.04 }, + limit: { context: 32768, output: 6554 }, + }, + "google/gemini-3.1-flash-lite-preview": { + id: "google/gemini-3.1-flash-lite-preview", + name: "Google: Gemini 3.1 Flash Lite Preview", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-03", + last_updated: "2026-03-15", + modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1.5, reasoning: 1.5 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-3.1-pro-preview": { + id: "google/gemini-3.1-pro-preview", + name: "Google: Gemini 3.1 Pro Preview", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-19", + last_updated: "2026-03-15", + modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, reasoning: 12 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-3-flash-preview": { + id: "google/gemini-3-flash-preview", + name: "Google: Gemini 3 Flash Preview", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12-17", + last_updated: "2026-03-15", + modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 3, reasoning: 3, cache_read: 0.05, cache_write: 0.083333 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-3-pro-preview": { + id: "google/gemini-3-pro-preview", + name: "Google: Gemini 3 Pro Preview", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-11-18", + last_updated: "2026-03-15", + modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, reasoning: 12, cache_read: 0.2, cache_write: 0.375 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-2.5-pro": { + id: "google/gemini-2.5-pro", + name: "Google: Gemini 2.5 Pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-03-20", + last_updated: "2026-03-15", + modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, reasoning: 10, cache_read: 0.125, cache_write: 0.375 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemma-2-9b-it": { + id: "google/gemma-2-9b-it", + name: "Google: Gemma 2 9B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-06-28", + last_updated: "2024-06-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.09 }, + limit: { context: 8192, output: 1639 }, + }, + "google/gemini-3-pro-image-preview": { + id: "google/gemini-3-pro-image-preview", + name: "Google: Nano Banana Pro (Gemini 3 Pro Image Preview)", + attachment: true, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-11-20", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["image", "text"] }, + open_weights: false, + cost: { input: 2, output: 12, reasoning: 12 }, + limit: { context: 65536, output: 32768 }, + }, + "google/gemini-2.5-flash-image": { + id: "google/gemini-2.5-flash-image", + name: "Google: Nano Banana (Gemini 2.5 Flash Image)", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-10-08", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["image", "text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5 }, + limit: { context: 32768, output: 32768 }, + }, + "google/gemma-3-12b-it": { + id: "google/gemma-3-12b-it", + name: "Google: Gemma 3 12B", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-03-13", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.04, output: 0.13, cache_read: 0.015 }, + limit: { context: 131072, output: 131072 }, + }, + "google/gemini-2.5-flash": { + id: "google/gemini-2.5-flash", + name: "Google: Gemini 2.5 Flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-07-17", + last_updated: "2026-03-15", + modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5, reasoning: 2.5, cache_read: 0.03, cache_write: 0.083333 }, + limit: { context: 1048576, output: 65535 }, + }, + "google/gemini-3.1-flash-image-preview": { + id: "google/gemini-3.1-flash-image-preview", + name: "Google: Nano Banana 2 (Gemini 3.1 Flash Image Preview)", + attachment: true, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2026-02-26", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["image", "text"] }, + open_weights: false, + cost: { input: 0.5, output: 3 }, + limit: { context: 65536, output: 65536 }, + }, + "google/gemma-3-4b-it": { + id: "google/gemma-3-4b-it", + name: "Google: Gemma 3 4B", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-03-13", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.04, output: 0.08 }, + limit: { context: 131072, output: 19200 }, + }, + "google/gemini-2.5-pro-preview": { + id: "google/gemini-2.5-pro-preview", + name: "Google: Gemini 2.5 Pro Preview 06-05", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-06-05", + last_updated: "2026-03-15", + modalities: { input: ["audio", "image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, reasoning: 10, cache_read: 0.125, cache_write: 0.375 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemma-2-27b-it": { + id: "google/gemma-2-27b-it", + name: "Google: Gemma 2 27B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-06-24", + last_updated: "2024-06-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.65, output: 0.65 }, + limit: { context: 8192, output: 2048 }, + }, + "google/gemma-3-27b-it": { + id: "google/gemma-3-27b-it", + name: "Google: Gemma 3 27B", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-03-12", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.11, cache_read: 0.02 }, + limit: { context: 128000, output: 65536 }, + }, + "google/gemini-2.5-flash-lite": { + id: "google/gemini-2.5-flash-lite", + name: "Google: Gemini 2.5 Flash Lite", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-06-17", + last_updated: "2026-03-15", + modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, reasoning: 0.4, cache_read: 0.01, cache_write: 0.083333 }, + limit: { context: 1048576, output: 65535 }, + }, + "google/gemini-2.0-flash-lite-001": { + id: "google/gemini-2.0-flash-lite-001", + name: "Google: Gemini 2.0 Flash Lite", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-12-11", + last_updated: "2026-03-15", + modalities: { input: ["audio", "image", "pdf", "text", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.075, output: 0.3 }, + limit: { context: 1048576, output: 8192 }, + }, + "moonshotai/kimi-k2.5": { + id: "moonshotai/kimi-k2.5", + name: "MoonshotAI: Kimi K2.5", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-01-27", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.45, output: 2.2 }, + limit: { context: 262144, output: 65535 }, + }, + "moonshotai/kimi-k2-0905": { + id: "moonshotai/kimi-k2-0905", + name: "MoonshotAI: Kimi K2 0905", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 2, cache_read: 0.15 }, + limit: { context: 131072, output: 26215 }, + }, + "moonshotai/kimi-k2": { + id: "moonshotai/kimi-k2", + name: "MoonshotAI: Kimi K2 0711", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-07-11", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.2 }, + limit: { context: 131000, output: 26215 }, + }, + "moonshotai/kimi-k2-thinking": { + id: "moonshotai/kimi-k2-thinking", + name: "MoonshotAI: Kimi K2 Thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-11-06", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.47, output: 2, cache_read: 0.2 }, + limit: { context: 131072, output: 65535 }, + }, + "aion-labs/aion-1.0": { + id: "aion-labs/aion-1.0", + name: "AionLabs: Aion-1.0", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-02-05", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 4, output: 8 }, + limit: { context: 131072, output: 32768 }, + }, + "aion-labs/aion-rp-llama-3.1-8b": { + id: "aion-labs/aion-rp-llama-3.1-8b", + name: "AionLabs: Aion-RP 1.0 (8B)", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-02-05", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 1.6 }, + limit: { context: 32768, output: 32768 }, + }, + "aion-labs/aion-2.0": { + id: "aion-labs/aion-2.0", + name: "AionLabs: Aion-2.0", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2026-02-24", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 1.6 }, + limit: { context: 131072, output: 32768 }, + }, + "aion-labs/aion-1.0-mini": { + id: "aion-labs/aion-1.0-mini", + name: "AionLabs: Aion-1.0-Mini", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-02-05", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.7, output: 1.4 }, + limit: { context: 131072, output: 32768 }, + }, + "thedrummer/unslopnemo-12b": { + id: "thedrummer/unslopnemo-12b", + name: "TheDrummer: UnslopNemo 12B", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-11-09", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 0.4 }, + limit: { context: 32768, output: 32768 }, + }, + "thedrummer/cydonia-24b-v4.1": { + id: "thedrummer/cydonia-24b-v4.1", + name: "TheDrummer: Cydonia 24B V4.1", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-09-27", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.5 }, + limit: { context: 131072, output: 131072 }, + }, + "thedrummer/skyfall-36b-v2": { + id: "thedrummer/skyfall-36b-v2", + name: "TheDrummer: Skyfall 36B V2", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-03-11", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 0.8 }, + limit: { context: 32768, output: 32768 }, + }, + "thedrummer/rocinante-12b": { + id: "thedrummer/rocinante-12b", + name: "TheDrummer: Rocinante 12B", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-09-30", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.17, output: 0.43 }, + limit: { context: 32768, output: 32768 }, + }, + "anthropic/claude-opus-4.1": { + id: "anthropic/claude-opus-4.1", + name: "Anthropic: Claude Opus 4.1", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "anthropic/claude-3.7-sonnet:thinking": { + id: "anthropic/claude-3.7-sonnet:thinking", + name: "Anthropic: Claude 3.7 Sonnet (thinking)", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-02-19", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-3.7-sonnet": { + id: "anthropic/claude-3.7-sonnet", + name: "Anthropic: Claude 3.7 Sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-02-19", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-opus-4.6": { + id: "anthropic/claude-opus-4.6", + name: "Anthropic: Claude Opus 4.6", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 1000000, output: 128000 }, + }, + "anthropic/claude-3.5-sonnet": { + id: "anthropic/claude-3.5-sonnet", + name: "Anthropic: Claude 3.5 Sonnet", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-10-22", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 6, output: 30 }, + limit: { context: 200000, output: 8192 }, + }, + "anthropic/claude-sonnet-4": { + id: "anthropic/claude-sonnet-4", + name: "Anthropic: Claude Sonnet 4", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-05-22", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-sonnet-4.5": { + id: "anthropic/claude-sonnet-4.5", + name: "Anthropic: Claude Sonnet 4.5", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-09-29", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 1000000, output: 64000 }, + }, + "anthropic/claude-opus-4.5": { + id: "anthropic/claude-opus-4.5", + name: "Anthropic: Claude Opus 4.5", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-11-24", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-3-haiku": { + id: "anthropic/claude-3-haiku", + name: "Anthropic: Claude 3 Haiku", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-03-07", + last_updated: "2024-03-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1.25, cache_read: 0.03, cache_write: 0.3 }, + limit: { context: 200000, output: 4096 }, + }, + "anthropic/claude-opus-4": { + id: "anthropic/claude-opus-4", + name: "Anthropic: Claude Opus 4", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-05-22", + last_updated: "2026-03-15", + modalities: { input: ["image", "pdf", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "anthropic/claude-3.5-haiku": { + id: "anthropic/claude-3.5-haiku", + name: "Anthropic: Claude 3.5 Haiku", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, + limit: { context: 200000, output: 8192 }, + }, + "anthropic/claude-haiku-4.5": { + id: "anthropic/claude-haiku-4.5", + name: "Anthropic: Claude Haiku 4.5", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-sonnet-4.6": { + id: "anthropic/claude-sonnet-4.6", + name: "Anthropic: Claude Sonnet 4.6", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-17", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 1000000, output: 128000 }, + }, + "switchpoint/router": { + id: "switchpoint/router", + name: "Switchpoint Router", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2025-07-12", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.85, output: 3.4 }, + limit: { context: 131072, output: 32768 }, + }, + "xiaomi/mimo-v2-flash": { + id: "xiaomi/mimo-v2-flash", + name: "Xiaomi: MiMo-V2-Flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12-14", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.09, output: 0.29, cache_read: 0.045 }, + limit: { context: 262144, output: 65536 }, + }, + "bytedance/ui-tars-1.5-7b": { + id: "bytedance/ui-tars-1.5-7b", + name: "ByteDance: UI-TARS 7B ", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-07-23", + last_updated: "2026-03-15", + modalities: { input: ["image", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.2 }, + limit: { context: 128000, output: 2048 }, + }, + "tngtech/deepseek-r1t2-chimera": { + id: "tngtech/deepseek-r1t2-chimera", + name: "TNG: DeepSeek R1T2 Chimera", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-07-08", + last_updated: "2025-07-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.25, output: 0.85, cache_read: 0.125 }, + limit: { context: 163840, output: 163840 }, + }, + "meituan/longcat-flash-chat": { + id: "meituan/longcat-flash-chat", + name: "Meituan: LongCat Flash Chat", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-08-30", + last_updated: "2026-03-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.8, cache_read: 0.2 }, + limit: { context: 131072, output: 131072 }, + }, + }, + }, + "sap-ai-core": { + id: "sap-ai-core", + env: ["AICORE_SERVICE_KEY"], + npm: "@jerome-benoit/sap-ai-provider-v2", + name: "SAP AI Core", + doc: "https://help.sap.com/docs/sap-ai-core", + models: { + "anthropic--claude-4.6-opus": { + id: "anthropic--claude-4.6-opus", + name: "anthropic--claude-4.6-opus", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2026-02-05", + last_updated: "2026-03-13", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 1000000, output: 128000 }, + }, + "anthropic--claude-3-haiku": { + id: "anthropic--claude-3-haiku", + name: "anthropic--claude-3-haiku", + family: "claude-haiku", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-08-31", + release_date: "2024-03-13", + last_updated: "2024-03-13", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1.25, cache_read: 0.03, cache_write: 0.3 }, + limit: { context: 200000, output: 4096 }, + }, + "anthropic--claude-3-opus": { + id: "anthropic--claude-3-opus", + name: "anthropic--claude-3-opus", + family: "claude-opus", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-08-31", + release_date: "2024-02-29", + last_updated: "2024-02-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 4096 }, + }, + "gpt-5-mini": { + id: "gpt-5-mini", + name: "gpt-5-mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.025 }, + limit: { context: 400000, output: 128000 }, + }, + "gpt-5-nano": { + id: "gpt-5-nano", + name: "gpt-5-nano", + family: "gpt-nano", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.4, cache_read: 0.005 }, + limit: { context: 400000, output: 128000 }, + }, + "gemini-2.5-pro": { + id: "gemini-2.5-pro", + name: "gemini-2.5-pro", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-03-25", + last_updated: "2025-06-05", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 1048576, output: 65536 }, + }, + "anthropic--claude-3.7-sonnet": { + id: "anthropic--claude-3.7-sonnet", + name: "anthropic--claude-3.7-sonnet", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10-31", + release_date: "2025-02-24", + last_updated: "2025-02-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "sonar-pro": { + id: "sonar-pro", + name: "sonar-pro", + family: "sonar-pro", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-09-01", + release_date: "2024-01-01", + last_updated: "2025-09-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 200000, output: 8192 }, + }, + "anthropic--claude-4.5-sonnet": { + id: "anthropic--claude-4.5-sonnet", + name: "anthropic--claude-4.5-sonnet", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic--claude-4.6-sonnet": { + id: "anthropic--claude-4.6-sonnet", + name: "anthropic--claude-4.6-sonnet", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2026-02-17", + last_updated: "2026-03-13", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 1000000, output: 64000 }, + }, + "sonar-deep-research": { + id: "sonar-deep-research", + name: "sonar-deep-research", + family: "sonar-deep-research", + attachment: false, + reasoning: true, + tool_call: false, + temperature: false, + knowledge: "2025-01", + release_date: "2025-02-01", + last_updated: "2025-09-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, reasoning: 3 }, + limit: { context: 128000, output: 32768 }, + }, + "gemini-2.5-flash": { + id: "gemini-2.5-flash", + name: "gemini-2.5-flash", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-03-25", + last_updated: "2025-06-05", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5, cache_read: 0.03, input_audio: 1 }, + limit: { context: 1048576, output: 65536 }, + }, + "anthropic--claude-4.5-opus": { + id: "anthropic--claude-4.5-opus", + name: "anthropic--claude-4.5-opus", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2025-11-24", + last_updated: "2025-11-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 64000 }, + }, + sonar: { + id: "sonar", + name: "sonar", + family: "sonar", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-09-01", + release_date: "2024-01-01", + last_updated: "2025-09-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 1 }, + limit: { context: 128000, output: 4096 }, + }, + "anthropic--claude-4-opus": { + id: "anthropic--claude-4-opus", + name: "anthropic--claude-4-opus", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "anthropic--claude-3-sonnet": { + id: "anthropic--claude-3-sonnet", + name: "anthropic--claude-3-sonnet", + family: "claude-sonnet", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-08-31", + release_date: "2024-03-04", + last_updated: "2024-03-04", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 4096 }, + }, + "anthropic--claude-4-sonnet": { + id: "anthropic--claude-4-sonnet", + name: "anthropic--claude-4-sonnet", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "gemini-2.5-flash-lite": { + id: "gemini-2.5-flash-lite", + name: "gemini-2.5-flash-lite", + family: "gemini-flash-lite", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, + limit: { context: 1048576, output: 65536 }, + }, + "anthropic--claude-4.5-haiku": { + id: "anthropic--claude-4.5-haiku", + name: "anthropic--claude-4.5-haiku", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-02-28", + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 200000, output: 64000 }, + }, + "gpt-5": { + id: "gpt-5", + name: "gpt-5", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "gpt-4.1": { + id: "gpt-4.1", + name: "gpt-4.1", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 1047576, output: 32768 }, + }, + "gpt-4.1-mini": { + id: "gpt-4.1-mini", + name: "gpt-4.1-mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.6, cache_read: 0.1 }, + limit: { context: 1047576, output: 32768 }, + }, + "anthropic--claude-3.5-sonnet": { + id: "anthropic--claude-3.5-sonnet", + name: "anthropic--claude-3.5-sonnet", + family: "claude-sonnet", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04-30", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 8192 }, + }, + }, + }, + morph: { + id: "morph", + env: ["MORPH_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.morphllm.com/v1", + name: "Morph", + doc: "https://docs.morphllm.com/api-reference/introduction", + models: { + auto: { + id: "auto", + name: "Auto", + family: "auto", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-06-01", + last_updated: "2024-06-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.85, output: 1.55 }, + limit: { context: 32000, output: 32000 }, + }, + "morph-v3-fast": { + id: "morph-v3-fast", + name: "Morph v3 Fast", + family: "morph", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-08-15", + last_updated: "2024-08-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 1.2 }, + limit: { context: 16000, output: 16000 }, + }, + "morph-v3-large": { + id: "morph-v3-large", + name: "Morph v3 Large", + family: "morph", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-08-15", + last_updated: "2024-08-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.9, output: 1.9 }, + limit: { context: 32000, output: 32000 }, + }, + }, + }, + "cloudflare-ai-gateway": { + id: "cloudflare-ai-gateway", + env: ["CLOUDFLARE_API_TOKEN", "CLOUDFLARE_ACCOUNT_ID", "CLOUDFLARE_GATEWAY_ID"], + npm: "ai-gateway-provider", + name: "Cloudflare AI Gateway", + doc: "https://developers.cloudflare.com/ai-gateway/", + models: { + "workers-ai/@cf/myshell-ai/melotts": { + id: "workers-ai/@cf/myshell-ai/melotts", + name: "MyShell MeloTTS", + family: "melotts", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/ibm-granite/granite-4.0-h-micro": { + id: "workers-ai/@cf/ibm-granite/granite-4.0-h-micro", + name: "IBM Granite 4.0 H Micro", + family: "granite", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.017, output: 0.11 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/huggingface/distilbert-sst-2-int8": { + id: "workers-ai/@cf/huggingface/distilbert-sst-2-int8", + name: "DistilBERT SST-2 INT8", + family: "distilbert", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.026, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/zai-org/glm-4.7-flash": { + id: "workers-ai/@cf/zai-org/glm-4.7-flash", + name: "GLM-4.7-Flash", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.06, output: 0.4 }, + limit: { context: 131072, output: 131072 }, + }, + "workers-ai/@cf/pipecat-ai/smart-turn-v2": { + id: "workers-ai/@cf/pipecat-ai/smart-turn-v2", + name: "Pipecat Smart Turn v2", + family: "smart-turn", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/mistralai/mistral-small-3.1-24b-instruct": { + id: "workers-ai/@cf/mistralai/mistral-small-3.1-24b-instruct", + name: "Mistral Small 3.1 24B Instruct", + family: "mistral-small", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-11", + last_updated: "2025-04-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.35, output: 0.56 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/facebook/bart-large-cnn": { + id: "workers-ai/@cf/facebook/bart-large-cnn", + name: "BART Large CNN", + family: "bart", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-09", + last_updated: "2025-04-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/aisingapore/gemma-sea-lion-v4-27b-it": { + id: "workers-ai/@cf/aisingapore/gemma-sea-lion-v4-27b-it", + name: "Gemma SEA-LION v4 27B IT", + family: "gemma", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.35, output: 0.56 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/nvidia/nemotron-3-120b-a12b": { + id: "workers-ai/@cf/nvidia/nemotron-3-120b-a12b", + name: "Nemotron 3 Super 120B", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-03-11", + last_updated: "2026-03-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 1.5 }, + limit: { context: 256000, output: 256000 }, + }, + "workers-ai/@cf/deepseek-ai/deepseek-r1-distill-qwen-32b": { + id: "workers-ai/@cf/deepseek-ai/deepseek-r1-distill-qwen-32b", + name: "DeepSeek R1 Distill Qwen 32B", + family: "deepseek-thinking", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 4.88 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/openai/gpt-oss-20b": { + id: "workers-ai/@cf/openai/gpt-oss-20b", + name: "GPT OSS 20B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.3 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/openai/gpt-oss-120b": { + id: "workers-ai/@cf/openai/gpt-oss-120b", + name: "GPT OSS 120B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.35, output: 0.75 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/mistral/mistral-7b-instruct-v0.1": { + id: "workers-ai/@cf/mistral/mistral-7b-instruct-v0.1", + name: "Mistral 7B Instruct v0.1", + family: "mistral", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.11, output: 0.19 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/meta/llama-4-scout-17b-16e-instruct": { + id: "workers-ai/@cf/meta/llama-4-scout-17b-16e-instruct", + name: "Llama 4 Scout 17B 16E Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 0.85 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/meta/llama-3-8b-instruct-awq": { + id: "workers-ai/@cf/meta/llama-3-8b-instruct-awq", + name: "Llama 3 8B Instruct AWQ", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.12, output: 0.27 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/meta/llama-guard-3-8b": { + id: "workers-ai/@cf/meta/llama-guard-3-8b", + name: "Llama Guard 3 8B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.48, output: 0.03 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/meta/m2m100-1.2b": { + id: "workers-ai/@cf/meta/m2m100-1.2b", + name: "M2M100 1.2B", + family: "m2m", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.34, output: 0.34 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/meta/llama-2-7b-chat-fp16": { + id: "workers-ai/@cf/meta/llama-2-7b-chat-fp16", + name: "Llama 2 7B Chat FP16", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.56, output: 6.67 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/meta/llama-3.2-11b-vision-instruct": { + id: "workers-ai/@cf/meta/llama-3.2-11b-vision-instruct", + name: "Llama 3.2 11B Vision Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.049, output: 0.68 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/meta/llama-3.3-70b-instruct-fp8-fast": { + id: "workers-ai/@cf/meta/llama-3.3-70b-instruct-fp8-fast", + name: "Llama 3.3 70B Instruct FP8 Fast", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.29, output: 2.25 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/meta/llama-3.2-1b-instruct": { + id: "workers-ai/@cf/meta/llama-3.2-1b-instruct", + name: "Llama 3.2 1B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.027, output: 0.2 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/meta/llama-3.1-8b-instruct-fp8": { + id: "workers-ai/@cf/meta/llama-3.1-8b-instruct-fp8", + name: "Llama 3.1 8B Instruct FP8", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.29 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/meta/llama-3.2-3b-instruct": { + id: "workers-ai/@cf/meta/llama-3.2-3b-instruct", + name: "Llama 3.2 3B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.051, output: 0.34 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/meta/llama-3.1-8b-instruct-awq": { + id: "workers-ai/@cf/meta/llama-3.1-8b-instruct-awq", + name: "Llama 3.1 8B Instruct AWQ", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.12, output: 0.27 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/meta/llama-3-8b-instruct": { + id: "workers-ai/@cf/meta/llama-3-8b-instruct", + name: "Llama 3 8B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.28, output: 0.83 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/meta/llama-3.1-8b-instruct": { + id: "workers-ai/@cf/meta/llama-3.1-8b-instruct", + name: "Llama 3.1 8B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.28, output: 0.8299999999999998 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/qwen/qwen2.5-coder-32b-instruct": { + id: "workers-ai/@cf/qwen/qwen2.5-coder-32b-instruct", + name: "Qwen 2.5 Coder 32B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-11", + last_updated: "2025-04-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.66, output: 1 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/qwen/qwen3-embedding-0.6b": { + id: "workers-ai/@cf/qwen/qwen3-embedding-0.6b", + name: "Qwen3 Embedding 0.6B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.012, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/qwen/qwq-32b": { + id: "workers-ai/@cf/qwen/qwq-32b", + name: "QwQ 32B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-11", + last_updated: "2025-04-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.66, output: 1 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/qwen/qwen3-30b-a3b-fp8": { + id: "workers-ai/@cf/qwen/qwen3-30b-a3b-fp8", + name: "Qwen3 30B A3B FP8", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.051, output: 0.34 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/google/gemma-3-12b-it": { + id: "workers-ai/@cf/google/gemma-3-12b-it", + name: "Gemma 3 12B IT", + family: "gemma", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-11", + last_updated: "2025-04-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.35, output: 0.56 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/moonshotai/kimi-k2.5": { + id: "workers-ai/@cf/moonshotai/kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3, cache_read: 0.1 }, + limit: { context: 256000, output: 256000 }, + }, + "workers-ai/@cf/ai4bharat/indictrans2-en-indic-1B": { + id: "workers-ai/@cf/ai4bharat/indictrans2-en-indic-1B", + name: "IndicTrans2 EN-Indic 1B", + family: "indictrans", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.34, output: 0.34 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/pfnet/plamo-embedding-1b": { + id: "workers-ai/@cf/pfnet/plamo-embedding-1b", + name: "PLaMo Embedding 1B", + family: "plamo", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.019, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/baai/bge-small-en-v1.5": { + id: "workers-ai/@cf/baai/bge-small-en-v1.5", + name: "BGE Small EN v1.5", + family: "bge", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.02, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/baai/bge-large-en-v1.5": { + id: "workers-ai/@cf/baai/bge-large-en-v1.5", + name: "BGE Large EN v1.5", + family: "bge", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/baai/bge-reranker-base": { + id: "workers-ai/@cf/baai/bge-reranker-base", + name: "BGE Reranker Base", + family: "bge", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-09", + last_updated: "2025-04-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.0031, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/baai/bge-base-en-v1.5": { + id: "workers-ai/@cf/baai/bge-base-en-v1.5", + name: "BGE Base EN v1.5", + family: "bge", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.067, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/baai/bge-m3": { + id: "workers-ai/@cf/baai/bge-m3", + name: "BGE M3", + family: "bge", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.012, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/deepgram/aura-2-en": { + id: "workers-ai/@cf/deepgram/aura-2-en", + name: "Deepgram Aura 2 (EN)", + family: "aura", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/deepgram/aura-2-es": { + id: "workers-ai/@cf/deepgram/aura-2-es", + name: "Deepgram Aura 2 (ES)", + family: "aura", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "workers-ai/@cf/deepgram/nova-3": { + id: "workers-ai/@cf/deepgram/nova-3", + name: "Deepgram Nova 3", + family: "nova", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-5.3-codex": { + id: "openai/gpt-5.3-codex", + name: "GPT-5.3 Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, input: 272000, output: 128000 }, + provider: { npm: "ai-gateway-provider" }, + }, + "openai/gpt-4-turbo": { + id: "openai/gpt-4-turbo", + name: "GPT-4 Turbo", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + knowledge: "2023-12", + release_date: "2023-11-06", + last_updated: "2024-04-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 10, output: 30 }, + limit: { context: 128000, output: 4096 }, + }, + "openai/gpt-5.2": { + id: "openai/gpt-5.2", + name: "GPT-5.2", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/o3-pro": { + id: "openai/o3-pro", + name: "o3-pro", + family: "o-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05", + release_date: "2025-06-10", + last_updated: "2025-06-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 20, output: 80 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-4o-mini": { + id: "openai/gpt-4o-mini", + name: "GPT-4o mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-09", + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6, cache_read: 0.08 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/o4-mini": { + id: "openai/o4-mini", + name: "o4-mini", + family: "o-mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05", + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.28 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-5.2-codex": { + id: "openai/gpt-5.2-codex", + name: "GPT-5.2 Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, input: 272000, output: 128000 }, + provider: { npm: "ai-gateway-provider" }, + }, + "openai/gpt-5.1": { + id: "openai/gpt-5.1", + name: "GPT-5.1", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.13 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/o1": { + id: "openai/o1", + name: "o1", + family: "o", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2023-09", + release_date: "2024-12-05", + last_updated: "2024-12-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 60, cache_read: 7.5 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-3.5-turbo": { + id: "openai/gpt-3.5-turbo", + name: "GPT-3.5-turbo", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + knowledge: "2021-09-01", + release_date: "2023-03-01", + last_updated: "2023-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 1.5, cache_read: 1.25 }, + limit: { context: 16385, output: 4096 }, + }, + "openai/o3-mini": { + id: "openai/o3-mini", + name: "o3-mini", + family: "o-mini", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05", + release_date: "2024-12-20", + last_updated: "2025-01-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-4": { + id: "openai/gpt-4", + name: "GPT-4", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + knowledge: "2023-11", + release_date: "2023-11-06", + last_updated: "2024-04-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 30, output: 60 }, + limit: { context: 8192, output: 8192 }, + }, + "openai/gpt-5.4": { + id: "openai/gpt-5.4", + name: "GPT-5.4", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 15, cache_read: 0.25 }, + limit: { context: 1050000, input: 922000, output: 128000 }, + provider: { npm: "ai-gateway-provider" }, + }, + "openai/o3": { + id: "openai/o3", + name: "o3", + family: "o", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05", + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-4o": { + id: "openai/gpt-4o", + name: "GPT-4o", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-09", + release_date: "2024-05-13", + last_updated: "2024-08-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10, cache_read: 1.25 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-5.1-codex": { + id: "openai/gpt-5.1-codex", + name: "GPT-5.1 Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "anthropic/claude-haiku-4-5": { + id: "anthropic/claude-haiku-4-5", + name: "Claude Haiku 4.5 (latest)", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-02-28", + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-sonnet-4-6": { + id: "anthropic/claude-sonnet-4-6", + name: "Claude Sonnet 4.6", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2026-02-17", + last_updated: "2026-02-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 3, + output: 15, + cache_read: 0.3, + cache_write: 3.75, + context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, + }, + limit: { context: 1000000, output: 64000 }, + provider: { npm: "ai-gateway-provider" }, + }, + "anthropic/claude-opus-4-1": { + id: "anthropic/claude-opus-4-1", + name: "Claude Opus 4.1 (latest)", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "anthropic/claude-3-5-haiku": { + id: "anthropic/claude-3-5-haiku", + name: "Claude Haiku 3.5 (latest)", + family: "claude-haiku", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07-31", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, + limit: { context: 200000, output: 8192 }, + }, + "anthropic/claude-3.5-sonnet": { + id: "anthropic/claude-3.5-sonnet", + name: "Claude Sonnet 3.5 v2", + family: "claude-sonnet", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04-30", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 8192 }, + }, + "anthropic/claude-sonnet-4": { + id: "anthropic/claude-sonnet-4", + name: "Claude Sonnet 4 (latest)", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-opus-4-5": { + id: "anthropic/claude-opus-4-5", + name: "Claude Opus 4.5 (latest)", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-24", + last_updated: "2025-11-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-3-haiku": { + id: "anthropic/claude-3-haiku", + name: "Claude Haiku 3", + family: "claude-haiku", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-08-31", + release_date: "2024-03-13", + last_updated: "2024-03-13", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1.25, cache_read: 0.03, cache_write: 0.3 }, + limit: { context: 200000, output: 4096 }, + }, + "anthropic/claude-opus-4": { + id: "anthropic/claude-opus-4", + name: "Claude Opus 4 (latest)", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "anthropic/claude-opus-4-6": { + id: "anthropic/claude-opus-4-6", + name: "Claude Opus 4.6 (latest)", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08-31", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 5, + output: 25, + cache_read: 0.5, + cache_write: 6.25, + context_over_200k: { input: 10, output: 37.5, cache_read: 1, cache_write: 12.5 }, + }, + limit: { context: 1000000, output: 128000 }, + }, + "anthropic/claude-3.5-haiku": { + id: "anthropic/claude-3.5-haiku", + name: "Claude Haiku 3.5 (latest)", + family: "claude-haiku", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07-31", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, + limit: { context: 200000, output: 8192 }, + }, + "anthropic/claude-sonnet-4-5": { + id: "anthropic/claude-sonnet-4-5", + name: "Claude Sonnet 4.5 (latest)", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-3-sonnet": { + id: "anthropic/claude-3-sonnet", + name: "Claude Sonnet 3", + family: "claude-sonnet", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-08-31", + release_date: "2024-03-04", + last_updated: "2024-03-04", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 0.3 }, + limit: { context: 200000, output: 4096 }, + }, + "anthropic/claude-3-opus": { + id: "anthropic/claude-3-opus", + name: "Claude Opus 3", + family: "claude-opus", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-08-31", + release_date: "2024-02-29", + last_updated: "2024-02-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 4096 }, + }, + }, + }, + "github-copilot": { + id: "github-copilot", + env: ["GITHUB_TOKEN"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.githubcopilot.com", + name: "GitHub Copilot", + doc: "https://docs.github.com/en/copilot", + models: { + "gpt-5.1-codex-max": { + id: "gpt-5.1-codex-max", + name: "GPT-5.1-Codex-max", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-12-04", + last_updated: "2025-12-04", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 400000, input: 128000, output: 128000 }, + }, + "claude-opus-4.6": { + id: "claude-opus-4.6", + name: "Claude Opus 4.6", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 144000, input: 128000, output: 64000 }, + }, + "gemini-3.1-pro-preview": { + id: "gemini-3.1-pro-preview", + name: "Gemini 3.1 Pro Preview", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-02-19", + last_updated: "2026-02-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, input: 128000, output: 64000 }, + }, + "gemini-3-flash-preview": { + id: "gemini-3-flash-preview", + name: "Gemini 3 Flash", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, input: 128000, output: 64000 }, + }, + "gpt-5-mini": { + id: "gpt-5-mini", + name: "GPT-5-mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-06", + release_date: "2025-08-13", + last_updated: "2025-08-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 264000, input: 128000, output: 64000 }, + }, + "gemini-3-pro-preview": { + id: "gemini-3-pro-preview", + name: "Gemini 3 Pro Preview", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, input: 128000, output: 64000 }, + }, + "gpt-5.3-codex": { + id: "gpt-5.3-codex", + name: "GPT-5.3-Codex", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-02-24", + last_updated: "2026-02-24", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gemini-2.5-pro": { + id: "gemini-2.5-pro", + name: "Gemini 2.5 Pro", + family: "gemini-pro", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-03-20", + last_updated: "2025-06-05", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, input: 128000, output: 64000 }, + }, + "gpt-5.2": { + id: "gpt-5.2", + name: "GPT-5.2", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 264000, input: 128000, output: 64000 }, + }, + "gpt-5.4-mini": { + id: "gpt-5.4-mini", + name: "GPT-5.4 Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-17", + last_updated: "2026-03-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gpt-5.2-codex": { + id: "gpt-5.2-codex", + name: "GPT-5.2-Codex", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gpt-5.1-codex-mini": { + id: "gpt-5.1-codex-mini", + name: "GPT-5.1-Codex-mini", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 400000, input: 128000, output: 128000 }, + }, + "claude-sonnet-4": { + id: "claude-sonnet-4", + name: "Claude Sonnet 4", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 216000, input: 128000, output: 16000 }, + }, + "grok-code-fast-1": { + id: "grok-code-fast-1", + name: "Grok Code Fast 1", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2025-08-27", + last_updated: "2025-08-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, input: 128000, output: 64000 }, + }, + "gpt-5.1": { + id: "gpt-5.1", + name: "GPT-5.1", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 264000, input: 128000, output: 64000 }, + }, + "claude-sonnet-4.5": { + id: "claude-sonnet-4.5", + name: "Claude Sonnet 4.5", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 144000, input: 128000, output: 32000 }, + }, + "claude-opus-41": { + id: "claude-opus-41", + name: "Claude Opus 4.1", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 80000, output: 16000 }, + }, + "claude-opus-4.5": { + id: "claude-opus-4.5", + name: "Claude Opus 4.5", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-24", + last_updated: "2025-08-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 160000, input: 128000, output: 32000 }, + }, + "gpt-5.4": { + id: "gpt-5.4", + name: "GPT-5.4", + family: "gpt", + attachment: false, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gpt-4o": { + id: "gpt-4o", + name: "GPT-4o", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-09", + release_date: "2024-05-13", + last_updated: "2024-05-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, input: 64000, output: 4096 }, + }, + "gpt-5": { + id: "gpt-5", + name: "GPT-5", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 128000 }, + }, + "claude-haiku-4.5": { + id: "claude-haiku-4.5", + name: "Claude Haiku 4.5", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-02-28", + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 144000, input: 128000, output: 32000 }, + }, + "gpt-4.1": { + id: "gpt-4.1", + name: "GPT-4.1", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, input: 64000, output: 16384 }, + }, + "claude-sonnet-4.6": { + id: "claude-sonnet-4.6", + name: "Claude Sonnet 4.6", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-17", + last_updated: "2026-02-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 200000, input: 128000, output: 32000 }, + }, + "gpt-5.1-codex": { + id: "gpt-5.1-codex", + name: "GPT-5.1-Codex", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 400000, input: 128000, output: 128000 }, + }, + }, + }, + mixlayer: { + id: "mixlayer", + env: ["MIXLAYER_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://models.mixlayer.ai/v1", + name: "Mixlayer", + doc: "https://docs.mixlayer.com", + models: { + "qwen/qwen3.5-122b-a10b": { + id: "qwen/qwen3.5-122b-a10b", + name: "Qwen3.5 122B A10B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 3.2 }, + limit: { context: 262144, output: 262144 }, + }, + "qwen/qwen3.5-27b": { + id: "qwen/qwen3.5-27b", + name: "Qwen3.5 27B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 2.4 }, + limit: { context: 262144, output: 262144 }, + }, + "qwen/qwen3.5-397b-a17b": { + id: "qwen/qwen3.5-397b-a17b", + name: "Qwen3.5 397B A17B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3.6 }, + limit: { context: 262144, output: 262144 }, + }, + "qwen/qwen3.5-9b": { + id: "qwen/qwen3.5-9b", + name: "Qwen3.5 9B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 262144, output: 262144 }, + }, + "qwen/qwen3.5-35b-a3b": { + id: "qwen/qwen3.5-35b-a3b", + name: "Qwen3.5 35B A3B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.25, output: 1.3 }, + limit: { context: 262144, output: 262144 }, + }, + }, + }, + "xiaomi-token-plan-sgp": { + id: "xiaomi-token-plan-sgp", + env: ["XIAOMI_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://token-plan-sgp.xiaomimimo.com/v1", + name: "Xiaomi Token Plan (Singapore)", + doc: "https://platform.xiaomimimo.com/#/docs", + models: { + "mimo-v2-pro": { + id: "mimo-v2-pro", + name: "MiMo-V2-Pro", + family: "mimo", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-12", + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0 }, + limit: { context: 1000000, output: 128000 }, + }, + "mimo-v2-tts": { + id: "mimo-v2-tts", + name: "MiMo-V2-TTS", + family: "mimo", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["audio"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 8000, output: 16000 }, + }, + "mimo-v2-omni": { + id: "mimo-v2-omni", + name: "MiMo-V2-Omni", + family: "mimo", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-12", + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0 }, + limit: { context: 256000, output: 128000 }, + }, + }, + }, + zai: { + id: "zai", + env: ["ZHIPU_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.z.ai/api/paas/v4", + name: "Z.AI", + doc: "https://docs.z.ai/guides/overview/pricing", + models: { + "glm-5v-turbo": { + id: "glm-5v-turbo", + name: "glm-5v-turbo", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-04-01", + last_updated: "2026-04-01", + modalities: { input: ["text", "image", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.2, output: 4, cache_read: 0.24, cache_write: 0 }, + limit: { context: 200000, output: 131072 }, + }, + "glm-4.7": { + id: "glm-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2, cache_read: 0.11, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "glm-5": { + id: "glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3.2, cache_read: 0.2, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "glm-4.7-flashx": { + id: "glm-4.7-flashx", + name: "GLM-4.7-FlashX", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.4, cache_read: 0.01, cache_write: 0 }, + limit: { context: 200000, output: 131072 }, + }, + "glm-5.1": { + id: "glm-5.1", + name: "GLM-5.1", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-03-27", + last_updated: "2026-03-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.4, output: 4.4, cache_read: 0.26, cache_write: 0 }, + limit: { context: 200000, output: 131072 }, + }, + "glm-4.5": { + id: "glm-4.5", + name: "GLM-4.5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2, cache_read: 0.11, cache_write: 0 }, + limit: { context: 131072, output: 98304 }, + }, + "glm-4.5-air": { + id: "glm-4.5-air", + name: "GLM-4.5-Air", + family: "glm-air", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 1.1, cache_read: 0.03, cache_write: 0 }, + limit: { context: 131072, output: 98304 }, + }, + "glm-5-turbo": { + id: "glm-5-turbo", + name: "GLM-5-Turbo", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-03-16", + last_updated: "2026-03-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.2, output: 4, cache_read: 0.24, cache_write: 0 }, + limit: { context: 200000, output: 131072 }, + }, + "glm-4.5v": { + id: "glm-4.5v", + name: "GLM-4.5V", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-08-11", + last_updated: "2025-08-11", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 1.8 }, + limit: { context: 64000, output: 16384 }, + }, + "glm-4.6": { + id: "glm-4.6", + name: "GLM-4.6", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2, cache_read: 0.11, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "glm-4.6v": { + id: "glm-4.6v", + name: "GLM-4.6V", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-08", + last_updated: "2025-12-08", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.9 }, + limit: { context: 128000, output: 32768 }, + }, + "glm-4.5-flash": { + id: "glm-4.5-flash", + name: "GLM-4.5-Flash", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 131072, output: 98304 }, + }, + "glm-4.7-flash": { + id: "glm-4.7-flash", + name: "GLM-4.7-Flash", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 200000, output: 131072 }, + }, + }, + }, + opencode: { + id: "opencode", + env: ["OPENCODE_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://opencode.ai/zen/v1", + name: "OpenCode Zen", + doc: "https://opencode.ai/docs/zen", + models: { + "gpt-5.1-codex-max": { + id: "gpt-5.1-codex-max", + name: "GPT-5.1 Codex Max", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, input: 272000, output: 128000 }, + provider: { npm: "@ai-sdk/openai" }, + }, + "claude-haiku-4-5": { + id: "claude-haiku-4-5", + name: "Claude Haiku 4.5", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-02-28", + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 200000, output: 64000 }, + provider: { npm: "@ai-sdk/anthropic" }, + }, + "kimi-k2.5": { + id: "kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-10", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3, cache_read: 0.08 }, + limit: { context: 262144, output: 65536 }, + }, + "glm-4.7": { + id: "glm-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2, cache_read: 0.1 }, + limit: { context: 204800, output: 131072 }, + status: "deprecated", + }, + "glm-5": { + id: "glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3.2, cache_read: 0.2 }, + limit: { context: 204800, output: 131072 }, + }, + "glm-4.7-free": { + id: "glm-4.7-free", + name: "GLM-4.7 Free", + family: "glm-free", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0 }, + limit: { context: 204800, output: 131072 }, + status: "deprecated", + }, + "gemini-3.1-pro": { + id: "gemini-3.1-pro", + name: "Gemini 3.1 Pro Preview", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-02-19", + last_updated: "2026-02-19", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, + limit: { context: 1048576, output: 65536 }, + provider: { npm: "@ai-sdk/google" }, + }, + "claude-sonnet-4-6": { + id: "claude-sonnet-4-6", + name: "Claude Sonnet 4.6", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2026-02-17", + last_updated: "2026-02-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 1000000, output: 64000 }, + provider: { npm: "@ai-sdk/anthropic" }, + }, + "kimi-k2.5-free": { + id: "kimi-k2.5-free", + name: "Kimi K2.5 Free", + family: "kimi-free", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-10", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0 }, + limit: { context: 262144, output: 262144 }, + status: "deprecated", + }, + "gpt-5-nano": { + id: "gpt-5-nano", + name: "GPT-5 Nano", + family: "gpt-nano", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0 }, + limit: { context: 400000, input: 272000, output: 128000 }, + provider: { npm: "@ai-sdk/openai" }, + }, + "gpt-5.3-codex": { + id: "gpt-5.3-codex", + name: "GPT-5.3 Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-02-24", + last_updated: "2026-02-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, input: 272000, output: 128000 }, + provider: { npm: "@ai-sdk/openai" }, + }, + "minimax-m2.5-free": { + id: "minimax-m2.5-free", + name: "MiniMax M2.5 Free", + family: "minimax-free", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0 }, + limit: { context: 204800, output: 131072 }, + provider: { npm: "@ai-sdk/anthropic" }, + }, + "gpt-5.2": { + id: "gpt-5.2", + name: "GPT-5.2", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, input: 272000, output: 128000 }, + provider: { npm: "@ai-sdk/openai" }, + }, + "big-pickle": { + id: "big-pickle", + name: "Big Pickle", + family: "big-pickle", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-10-17", + last_updated: "2025-10-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 200000, output: 128000 }, + provider: { npm: "@ai-sdk/anthropic" }, + }, + "claude-opus-4-1": { + id: "claude-opus-4-1", + name: "Claude Opus 4.1", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + provider: { npm: "@ai-sdk/anthropic" }, + }, + "gpt-5.4-mini": { + id: "gpt-5.4-mini", + name: "GPT-5.4 Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-17", + last_updated: "2026-03-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.75, output: 4.5, cache_read: 0.075 }, + limit: { context: 400000, input: 272000, output: 128000 }, + provider: { npm: "@ai-sdk/openai" }, + }, + "claude-3-5-haiku": { + id: "claude-3-5-haiku", + name: "Claude Haiku 3.5", + family: "claude-haiku", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07-31", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, + limit: { context: 200000, output: 8192 }, + provider: { npm: "@ai-sdk/anthropic" }, + }, + "minimax-m2.1": { + id: "minimax-m2.1", + name: "MiniMax M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-01", + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.1 }, + limit: { context: 204800, output: 131072 }, + status: "deprecated", + }, + "glm-5.1": { + id: "glm-5.1", + name: "GLM-5.1", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2026-04-07", + last_updated: "2026-04-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.4, output: 4.4, cache_read: 0.26 }, + limit: { context: 204800, output: 131072 }, + }, + "gpt-5.4-nano": { + id: "gpt-5.4-nano", + name: "GPT-5.4 Nano", + family: "gpt-nano", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-17", + last_updated: "2026-03-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.25, cache_read: 0.02 }, + limit: { context: 400000, input: 272000, output: 128000 }, + provider: { npm: "@ai-sdk/openai" }, + }, + "gpt-5.2-codex": { + id: "gpt-5.2-codex", + name: "GPT-5.2 Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-01-14", + last_updated: "2026-01-14", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, input: 272000, output: 128000 }, + provider: { npm: "@ai-sdk/openai" }, + }, + "gpt-5.1-codex-mini": { + id: "gpt-5.1-codex-mini", + name: "GPT-5.1 Codex Mini", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.025 }, + limit: { context: 400000, input: 272000, output: 128000 }, + provider: { npm: "@ai-sdk/openai" }, + }, + "claude-sonnet-4": { + id: "claude-sonnet-4", + name: "Claude Sonnet 4", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 3, + output: 15, + cache_read: 0.3, + cache_write: 3.75, + context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, + }, + limit: { context: 1000000, output: 64000 }, + provider: { npm: "@ai-sdk/anthropic" }, + }, + "gemini-3-flash": { + id: "gemini-3-flash", + name: "Gemini 3 Flash", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 3, cache_read: 0.05 }, + limit: { context: 1048576, output: 65536 }, + provider: { npm: "@ai-sdk/google" }, + }, + "trinity-large-preview-free": { + id: "trinity-large-preview-free", + name: "Trinity Large Preview", + family: "trinity", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2026-01-28", + last_updated: "2026-01-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 131072 }, + status: "deprecated", + }, + "gpt-5.1": { + id: "gpt-5.1", + name: "GPT-5.1", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.07, output: 8.5, cache_read: 0.107 }, + limit: { context: 400000, input: 272000, output: 128000 }, + provider: { npm: "@ai-sdk/openai" }, + }, + "gpt-5.4-pro": { + id: "gpt-5.4-pro", + name: "GPT-5.4 Pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 30, output: 180, cache_read: 30 }, + limit: { context: 1050000, input: 922000, output: 128000 }, + provider: { npm: "@ai-sdk/openai" }, + }, + "glm-5-free": { + id: "glm-5-free", + name: "GLM-5 Free", + family: "glm-free", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0 }, + limit: { context: 204800, output: 131072 }, + status: "deprecated", + }, + "claude-opus-4-5": { + id: "claude-opus-4-5", + name: "Claude Opus 4.5", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-24", + last_updated: "2025-11-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 64000 }, + provider: { npm: "@ai-sdk/anthropic" }, + }, + "minimax-m2.1-free": { + id: "minimax-m2.1-free", + name: "MiniMax M2.1 Free", + family: "minimax-free", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0 }, + limit: { context: 204800, output: 131072 }, + status: "deprecated", + provider: { npm: "@ai-sdk/anthropic" }, + }, + "qwen3.6-plus-free": { + id: "qwen3.6-plus-free", + name: "Qwen3.6 Plus Free", + family: "qwen-free", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-12", + release_date: "2026-03-30", + last_updated: "2026-03-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0 }, + limit: { context: 1048576, output: 64000 }, + status: "deprecated", + }, + "glm-4.6": { + id: "glm-4.6", + name: "GLM-4.6", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2, cache_read: 0.1 }, + limit: { context: 204800, output: 131072 }, + status: "deprecated", + }, + "gemini-3-pro": { + id: "gemini-3-pro", + name: "Gemini 3 Pro", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, + limit: { context: 1048576, output: 65536 }, + status: "deprecated", + provider: { npm: "@ai-sdk/google" }, + }, + "gpt-5-codex": { + id: "gpt-5-codex", + name: "GPT-5 Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.07, output: 8.5, cache_read: 0.107 }, + limit: { context: 400000, input: 272000, output: 128000 }, + provider: { npm: "@ai-sdk/openai" }, + }, + "gpt-5.4": { + id: "gpt-5.4", + name: "GPT-5.4", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 15, cache_read: 0.25 }, + limit: { context: 1050000, input: 922000, output: 128000 }, + provider: { npm: "@ai-sdk/openai" }, + }, + "grok-code": { + id: "grok-code", + name: "Grok Code Fast 1", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-20", + last_updated: "2025-08-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 256000, output: 256000 }, + status: "deprecated", + }, + "mimo-v2-flash-free": { + id: "mimo-v2-flash-free", + name: "MiMo V2 Flash Free", + family: "mimo-flash-free", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-12", + release_date: "2025-12-16", + last_updated: "2025-12-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0 }, + limit: { context: 262144, output: 65536 }, + status: "deprecated", + }, + "gpt-5.3-codex-spark": { + id: "gpt-5.3-codex-spark", + name: "GPT-5.3 Codex Spark", + family: "gpt-codex-spark", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 128000, input: 128000, output: 128000 }, + provider: { npm: "@ai-sdk/openai" }, + }, + "claude-opus-4-6": { + id: "claude-opus-4-6", + name: "Claude Opus 4.6", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08-31", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 1000000, output: 128000 }, + provider: { npm: "@ai-sdk/anthropic" }, + }, + "minimax-m2.5": { + id: "minimax-m2.5", + name: "MiniMax M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-01", + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.06 }, + limit: { context: 204800, output: 131072 }, + }, + "kimi-k2": { + id: "kimi-k2", + name: "Kimi K2", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 2.5, cache_read: 0.4 }, + limit: { context: 262144, output: 262144 }, + status: "deprecated", + }, + "claude-sonnet-4-5": { + id: "claude-sonnet-4-5", + name: "Claude Sonnet 4.5", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 3, + output: 15, + cache_read: 0.3, + cache_write: 3.75, + context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, + }, + limit: { context: 1000000, output: 64000 }, + provider: { npm: "@ai-sdk/anthropic" }, + }, + "qwen3-coder": { + id: "qwen3-coder", + name: "Qwen3 Coder", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.45, output: 1.8 }, + limit: { context: 262144, output: 65536 }, + status: "deprecated", + }, + "gpt-5": { + id: "gpt-5", + name: "GPT-5", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.07, output: 8.5, cache_read: 0.107 }, + limit: { context: 400000, input: 272000, output: 128000 }, + provider: { npm: "@ai-sdk/openai" }, + }, + "mimo-v2-pro-free": { + id: "mimo-v2-pro-free", + name: "MiMo V2 Pro Free", + family: "mimo-pro-free", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-12", + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0 }, + limit: { context: 1048576, output: 64000 }, + status: "deprecated", + }, + "nemotron-3-super-free": { + id: "nemotron-3-super-free", + name: "Nemotron 3 Super Free", + family: "nemotron-free", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2026-02", + release_date: "2026-03-11", + last_updated: "2026-03-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0 }, + limit: { context: 204800, output: 128000 }, + }, + "kimi-k2-thinking": { + id: "kimi-k2-thinking", + name: "Kimi K2 Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 2.5, cache_read: 0.4 }, + limit: { context: 262144, output: 262144 }, + status: "deprecated", + }, + "gpt-5.1-codex": { + id: "gpt-5.1-codex", + name: "GPT-5.1 Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.07, output: 8.5, cache_read: 0.107 }, + limit: { context: 400000, input: 272000, output: 128000 }, + provider: { npm: "@ai-sdk/openai" }, + }, + "mimo-v2-omni-free": { + id: "mimo-v2-omni-free", + name: "MiMo V2 Omni Free", + family: "mimo-omni-free", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-12", + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text", "image", "audio", "pdf"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0 }, + limit: { context: 262144, output: 64000 }, + status: "deprecated", + }, + }, + }, + stepfun: { + id: "stepfun", + env: ["STEPFUN_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.stepfun.com/v1", + name: "StepFun", + doc: "https://platform.stepfun.com/docs/zh/overview/concept", + models: { + "step-3.5-flash-2603": { + id: "step-3.5-flash-2603", + name: "Step 3.5 Flash 2603", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-04-02", + last_updated: "2026-04-02", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3, cache_read: 0.02 }, + limit: { context: 256000, input: 256000, output: 256000 }, + }, + "step-1-32k": { + id: "step-1-32k", + name: "Step 1 (32K)", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-06", + release_date: "2025-01-01", + last_updated: "2026-02-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.05, output: 9.59, cache_read: 0.41 }, + limit: { context: 32768, input: 32768, output: 32768 }, + }, + "step-3.5-flash": { + id: "step-3.5-flash", + name: "Step 3.5 Flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01-29", + last_updated: "2026-02-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.096, output: 0.288, cache_read: 0.019 }, + limit: { context: 256000, input: 256000, output: 256000 }, + }, + "step-2-16k": { + id: "step-2-16k", + name: "Step 2 (16K)", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-06", + release_date: "2025-01-01", + last_updated: "2026-02-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 5.21, output: 16.44, cache_read: 1.04 }, + limit: { context: 16384, input: 16384, output: 8192 }, + }, + }, + }, + nebius: { + id: "nebius", + env: ["NEBIUS_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.tokenfactory.nebius.com/v1", + name: "Nebius Token Factory", + doc: "https://docs.tokenfactory.nebius.com/", + models: { + "NousResearch/Hermes-4-70B": { + id: "NousResearch/Hermes-4-70B", + name: "Hermes-4-70B", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-11", + release_date: "2026-01-30", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 0.4, reasoning: 0.4, cache_read: 0.013, cache_write: 0.16 }, + limit: { context: 128000, input: 120000, output: 8192 }, + }, + "NousResearch/Hermes-4-405B": { + id: "NousResearch/Hermes-4-405B", + name: "Hermes-4-405B", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-11", + release_date: "2026-01-30", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3, reasoning: 3, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 128000, input: 120000, output: 8192 }, + }, + "black-forest-labs/flux-schnell": { + id: "black-forest-labs/flux-schnell", + name: "FLUX.1-schnell", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: false, + knowledge: "2024-07", + release_date: "2024-08-01", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["image"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 77, input: 77, output: 0 }, + }, + "black-forest-labs/flux-dev": { + id: "black-forest-labs/flux-dev", + name: "FLUX.1-dev", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: false, + knowledge: "2024-07", + release_date: "2024-08-01", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["image"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 77, input: 77, output: 0 }, + }, + "Qwen/Qwen2.5-VL-72B-Instruct": { + id: "Qwen/Qwen2.5-VL-72B-Instruct", + name: "Qwen2.5-VL-72B-Instruct", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-01-20", + last_updated: "2026-02-04", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.25, output: 0.75, cache_read: 0.025, cache_write: 0.31 }, + limit: { context: 128000, input: 120000, output: 8192 }, + }, + "Qwen/Qwen3-30B-A3B-Thinking-2507": { + id: "Qwen/Qwen3-30B-A3B-Thinking-2507", + name: "Qwen3-30B-A3B-Thinking-2507", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-12", + release_date: "2026-01-28", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3, reasoning: 0.3, cache_read: 0.01, cache_write: 0.125 }, + limit: { context: 128000, input: 120000, output: 16384 }, + }, + "Qwen/Qwen3-32B-fast": { + id: "Qwen/Qwen3-32B-fast", + name: "Qwen3-32B (Fast)", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-12", + release_date: "2026-01-28", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.6, cache_read: 0.02, cache_write: 0.25 }, + limit: { context: 128000, input: 120000, output: 8192 }, + }, + "Qwen/Qwen3-Embedding-8B": { + id: "Qwen/Qwen3-Embedding-8B", + name: "Qwen3-Embedding-8B", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: false, + knowledge: "2025-10", + release_date: "2026-01-10", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.01, output: 0 }, + limit: { context: 32768, input: 32768, output: 0 }, + }, + "Qwen/Qwen3-30B-A3B-Instruct-2507": { + id: "Qwen/Qwen3-30B-A3B-Instruct-2507", + name: "Qwen3-30B-A3B-Instruct-2507", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-12", + release_date: "2026-01-28", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3, cache_read: 0.01, cache_write: 0.125 }, + limit: { context: 128000, input: 120000, output: 8192 }, + }, + "Qwen/Qwen3-235B-A22B-Instruct-2507": { + id: "Qwen/Qwen3-235B-A22B-Instruct-2507", + name: "Qwen3 235B A22B Instruct 2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-07-25", + last_updated: "2025-10-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.6 }, limit: { context: 262144, output: 8192 }, }, - "OpenGVLab/InternVL3-78B-TEE": { - id: "OpenGVLab/InternVL3-78B-TEE", - name: "InternVL3 78B TEE", - family: "opengvlab", + "Qwen/Qwen3-32B": { + id: "Qwen/Qwen3-32B", + name: "Qwen3-32B", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-12", + release_date: "2026-01-28", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3, cache_read: 0.01, cache_write: 0.125 }, + limit: { context: 128000, input: 120000, output: 8192 }, + }, + "Qwen/Qwen3-Coder-30B-A3B-Instruct": { + id: "Qwen/Qwen3-Coder-30B-A3B-Instruct", + name: "Qwen3-Coder-30B-A3B-Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-12", + release_date: "2026-01-28", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3, cache_read: 0.01, cache_write: 0.125 }, + limit: { context: 128000, input: 120000, output: 8192 }, + }, + "Qwen/Qwen3-235B-A22B-Thinking-2507": { + id: "Qwen/Qwen3-235B-A22B-Thinking-2507", + name: "Qwen3 235B A22B Thinking 2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-07-25", + last_updated: "2025-10-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 262144, output: 8192 }, + }, + "Qwen/Qwen3-Next-80B-A3B-Thinking": { + id: "Qwen/Qwen3-Next-80B-A3B-Thinking", + name: "Qwen3-Next-80B-A3B-Thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-12", + release_date: "2026-01-28", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 1.2, reasoning: 1.2, cache_read: 0.015, cache_write: 0.18 }, + limit: { context: 128000, input: 120000, output: 16384 }, + }, + "Qwen/Qwen3-Coder-480B-A35B-Instruct": { + id: "Qwen/Qwen3-Coder-480B-A35B-Instruct", + name: "Qwen3 Coder 480B A35B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-10-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.8 }, + limit: { context: 262144, output: 66536 }, + }, + "Qwen/Qwen2.5-Coder-7B-fast": { + id: "Qwen/Qwen2.5-Coder-7B-fast", + name: "Qwen2.5-Coder-7B (Fast)", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-09", + release_date: "2024-09-19", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.09, cache_read: 0.003, cache_write: 0.03 }, + limit: { context: 128000, input: 120000, output: 8192 }, + }, + "PrimeIntellect/INTELLECT-3": { + id: "PrimeIntellect/INTELLECT-3", + name: "INTELLECT-3", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-10", + release_date: "2026-01-25", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 1.1, cache_read: 0.02, cache_write: 0.25 }, + limit: { context: 128000, input: 120000, output: 8192 }, + }, + "zai-org/GLM-4.5": { + id: "zai-org/GLM-4.5", + name: "GLM-4.5", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-11-15", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 2.2, cache_read: 0.06, cache_write: 0.75 }, + limit: { context: 128000, input: 124000, output: 4096 }, + }, + "zai-org/GLM-4.5-Air": { + id: "zai-org/GLM-4.5-Air", + name: "GLM-4.5-Air", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-11-15", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.2, cache_read: 0.02, cache_write: 0.25 }, + limit: { context: 128000, input: 124000, output: 4096 }, + }, + "zai-org/GLM-4.7-FP8": { + id: "zai-org/GLM-4.7-FP8", + name: "GLM-4.7 (FP8)", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-12", + release_date: "2026-01-15", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2, cache_read: 0.04, cache_write: 0.5 }, + limit: { context: 128000, input: 124000, output: 4096 }, + }, + "zai-org/GLM-5": { + id: "zai-org/GLM-5", + name: "GLM-5", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2026-01", + release_date: "2026-03-01", + last_updated: "2026-03-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 3.2, cache_read: 0.1, cache_write: 1 }, + limit: { context: 200000, input: 200000, output: 16384 }, + }, + "BAAI/bge-en-icl": { + id: "BAAI/bge-en-icl", + name: "BGE-ICL", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: false, + knowledge: "2024-06", + release_date: "2024-07-30", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.01, output: 0 }, + limit: { context: 32768, input: 32768, output: 0 }, + }, + "BAAI/bge-multilingual-gemma2": { + id: "BAAI/bge-multilingual-gemma2", + name: "bge-multilingual-gemma2", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: false, + knowledge: "2024-06", + release_date: "2024-07-30", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.01, output: 0 }, + limit: { context: 8192, input: 8192, output: 0 }, + }, + "meta-llama/Llama-3.3-70B-Instruct": { + id: "meta-llama/Llama-3.3-70B-Instruct", + name: "Llama-3.3-70B-Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-08", + release_date: "2025-12-05", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 0.4, cache_read: 0.013, cache_write: 0.16 }, + limit: { context: 128000, input: 120000, output: 8192 }, + }, + "meta-llama/Meta-Llama-3.1-8B-Instruct-fast": { + id: "meta-llama/Meta-Llama-3.1-8B-Instruct-fast", + name: "Meta-Llama-3.1-8B-Instruct (Fast)", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-12", + release_date: "2024-07-23", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.09, cache_read: 0.003, cache_write: 0.03 }, + limit: { context: 128000, input: 120000, output: 4096 }, + }, + "meta-llama/Llama-3.3-70B-Instruct-fast": { + id: "meta-llama/Llama-3.3-70B-Instruct-fast", + name: "Llama-3.3-70B-Instruct (Fast)", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-08", + release_date: "2025-12-05", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.25, output: 0.75, cache_read: 0.025, cache_write: 0.31 }, + limit: { context: 128000, input: 120000, output: 8192 }, + }, + "meta-llama/Llama-Guard-3-8B": { + id: "meta-llama/Llama-Guard-3-8B", + name: "Llama-Guard-3-8B", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: false, + knowledge: "2024-04", + release_date: "2024-04-18", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.06, cache_read: 0.002, cache_write: 0.025 }, + limit: { context: 8192, input: 8000, output: 1024 }, + }, + "meta-llama/Meta-Llama-3.1-8B-Instruct": { + id: "meta-llama/Meta-Llama-3.1-8B-Instruct", + name: "Meta-Llama-3.1-8B-Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-12", + release_date: "2024-07-23", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.06, cache_read: 0.002, cache_write: 0.025 }, + limit: { context: 128000, input: 120000, output: 4096 }, + }, + "nvidia/Nemotron-Nano-V2-12b": { + id: "nvidia/Nemotron-Nano-V2-12b", + name: "Nemotron-Nano-V2-12b", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-03-15", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.2, cache_read: 0.007, cache_write: 0.08 }, + limit: { context: 32000, input: 30000, output: 4096 }, + }, + "nvidia/nemotron-3-super-120b-a12b": { + id: "nvidia/nemotron-3-super-120b-a12b", + name: "Nemotron-3-Super-120B-A12B", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2026-02", + release_date: "2026-03-11", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.9 }, + limit: { context: 256000, input: 256000, output: 32768 }, + }, + "nvidia/Llama-3_1-Nemotron-Ultra-253B-v1": { + id: "nvidia/Llama-3_1-Nemotron-Ultra-253B-v1", + name: "Llama-3.1-Nemotron-Ultra-253B-v1", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-01-15", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 1.8, cache_read: 0.06, cache_write: 0.75 }, + limit: { context: 128000, input: 120000, output: 4096 }, + }, + "nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B": { + id: "nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B", + name: "Nemotron-3-Nano-30B-A3B", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-05", + release_date: "2025-08-10", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.06, output: 0.24, cache_read: 0.006, cache_write: 0.075 }, + limit: { context: 32000, input: 30000, output: 4096 }, + }, + "deepseek-ai/DeepSeek-V3-0324": { + id: "deepseek-ai/DeepSeek-V3-0324", + name: "DeepSeek-V3-0324", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-03-24", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 1.5, cache_read: 0.05, cache_write: 0.1875 }, + limit: { context: 128000, input: 120000, output: 8192 }, + }, + "deepseek-ai/DeepSeek-V3-0324-fast": { + id: "deepseek-ai/DeepSeek-V3-0324-fast", + name: "DeepSeek-V3-0324 (Fast)", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-03-24", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.75, output: 2.25, cache_read: 0.075, cache_write: 0.28125 }, + limit: { context: 128000, input: 120000, output: 8192 }, + }, + "deepseek-ai/DeepSeek-R1-0528-fast": { + id: "deepseek-ai/DeepSeek-R1-0528-fast", + name: "DeepSeek R1 0528 Fast", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-01-01", + last_updated: "2025-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2, output: 6 }, + limit: { context: 131072, output: 8192 }, + }, + "deepseek-ai/DeepSeek-R1-0528": { + id: "deepseek-ai/DeepSeek-R1-0528", + name: "DeepSeek-R1-0528", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-11", + release_date: "2026-01-15", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.8, output: 2.4, reasoning: 2.4, cache_read: 0.08, cache_write: 1 }, + limit: { context: 128000, input: 120000, output: 32768 }, + }, + "deepseek-ai/DeepSeek-V3.2": { + id: "deepseek-ai/DeepSeek-V3.2", + name: "DeepSeek-V3.2", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-11", + release_date: "2026-01-20", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.45, reasoning: 0.45, cache_read: 0.03, cache_write: 0.375 }, + limit: { context: 163000, input: 160000, output: 16384 }, + }, + "openai/gpt-oss-20b": { + id: "openai/gpt-oss-20b", + name: "gpt-oss-20b", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-09", + release_date: "2026-01-10", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.2, cache_read: 0.005, cache_write: 0.06 }, + limit: { context: 128000, input: 124000, output: 4096 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "gpt-oss-120b", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-09", + release_date: "2026-01-10", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6, reasoning: 0.6, cache_read: 0.015, cache_write: 0.18 }, + limit: { context: 128000, input: 124000, output: 8192 }, + }, + "google/gemma-2-2b-it": { + id: "google/gemma-2-2b-it", + name: "Gemma-2-2b-it", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + knowledge: "2024-06", + release_date: "2024-07-31", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.06, cache_read: 0.002, cache_write: 0.025 }, + limit: { context: 8192, input: 8000, output: 4096 }, + }, + "google/gemma-2-9b-it-fast": { + id: "google/gemma-2-9b-it-fast", + name: "Gemma-2-9b-it (Fast)", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + knowledge: "2024-06", + release_date: "2024-06-27", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.09, cache_read: 0.003, cache_write: 0.0375 }, + limit: { context: 8192, input: 8000, output: 4096 }, + }, + "google/gemma-3-27b-it-fast": { + id: "google/gemma-3-27b-it-fast", + name: "Gemma-3-27b-it (Fast)", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-10", + release_date: "2026-01-20", + last_updated: "2026-02-04", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.6, cache_read: 0.02, cache_write: 0.25 }, + limit: { context: 110000, input: 100000, output: 8192 }, + }, + "google/gemma-3-27b-it": { + id: "google/gemma-3-27b-it", + name: "Gemma-3-27b-it", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-10", + release_date: "2026-01-20", + last_updated: "2026-02-04", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3, cache_read: 0.01, cache_write: 0.125 }, + limit: { context: 110000, input: 100000, output: 8192 }, + }, + "moonshotai/Kimi-K2-Thinking": { + id: "moonshotai/Kimi-K2-Thinking", + name: "Kimi-K2-Thinking", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-10", + release_date: "2026-01-05", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5, reasoning: 2.5, cache_read: 0.06, cache_write: 0.75 }, + limit: { context: 128000, input: 120000, output: 16384 }, + }, + "moonshotai/Kimi-K2-Instruct": { + id: "moonshotai/Kimi-K2-Instruct", + name: "Kimi-K2-Instruct", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-10", + release_date: "2026-01-05", + last_updated: "2026-02-04", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 2.4, cache_read: 0.05, cache_write: 0.625 }, + limit: { context: 200000, input: 190000, output: 8192 }, + }, + "moonshotai/Kimi-K2.5-fast": { + id: "moonshotai/Kimi-K2.5-fast", + name: "Kimi-K2.5-fast", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-12-15", + last_updated: "2026-02-04", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 2.5, cache_read: 0.05, cache_write: 0.625 }, + limit: { context: 256000, input: 256000, output: 8192 }, + }, + "moonshotai/Kimi-K2.5": { + id: "moonshotai/Kimi-K2.5", + name: "Kimi-K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-12-15", + last_updated: "2026-02-04", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 2.5, reasoning: 2.5, cache_read: 0.05, cache_write: 0.625 }, + limit: { context: 256000, input: 256000, output: 8192 }, + }, + "MiniMaxAI/MiniMax-M2.1": { + id: "MiniMaxAI/MiniMax-M2.1", + name: "MiniMax-M2.1", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-10", + release_date: "2026-02-01", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, reasoning: 1.2, cache_read: 0.03, cache_write: 0.375 }, + limit: { context: 128000, input: 120000, output: 8192 }, + }, + "intfloat/e5-mistral-7b-instruct": { + id: "intfloat/e5-mistral-7b-instruct", + name: "e5-mistral-7b-instruct", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: false, + knowledge: "2023-12", + release_date: "2024-01-01", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.01, output: 0 }, + limit: { context: 32768, input: 32768, output: 0 }, + }, + }, + }, + poe: { + id: "poe", + env: ["POE_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.poe.com/v1", + name: "Poe", + doc: "https://creator.poe.com/docs/external-applications/openai-compatible-api", + models: { + "topazlabs-co/topazlabs": { + id: "topazlabs-co/topazlabs", + name: "TopazLabs", + family: "topazlabs", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-12-03", + last_updated: "2024-12-03", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 204, output: 0 }, + }, + "novita/kimi-k2.5": { + id: "novita/kimi-k2.5", + name: "kimi-k2.5", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 262144 }, + }, + "novita/glm-4.7": { + id: "novita/glm-4.7", + name: "glm-4.7", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 205000, output: 131072 }, + }, + "novita/glm-5": { + id: "novita/glm-5", + name: "glm-5", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 205000, output: 131072 }, + }, + "novita/minimax-m2.1": { + id: "novita/minimax-m2.1", + name: "minimax-m2.1", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-12-26", + last_updated: "2025-12-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 205000, output: 131072 }, + }, + "novita/glm-4.6": { + id: "novita/glm-4.6", + name: "GLM-4.6", + family: "glm", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 0, output: 0 }, + }, + "novita/glm-4.6v": { + id: "novita/glm-4.6v", + name: "glm-4.6v", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-12-09", + last_updated: "2025-12-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + limit: { context: 131000, output: 32768 }, + }, + "novita/deepseek-v3.2": { + id: "novita/deepseek-v3.2", + name: "DeepSeek-V3.2", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 0.4, cache_read: 0.13 }, + limit: { context: 128000, output: 0 }, + }, + "novita/glm-4.7-flash": { + id: "novita/glm-4.7-flash", + name: "glm-4.7-flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 200000, output: 65500 }, + }, + "novita/glm-4.7-n": { + id: "novita/glm-4.7-n", + name: "glm-4.7-n", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 205000, output: 131072 }, + }, + "novita/kimi-k2-thinking": { + id: "novita/kimi-k2-thinking", + name: "kimi-k2-thinking", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-11-07", + last_updated: "2025-11-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 0 }, + }, + "fireworks-ai/kimi-k2.5-fw": { + id: "fireworks-ai/kimi-k2.5-fw", + name: "Kimi-K2.5-FW", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 262144, input: 245760, output: 16384 }, + }, + "elevenlabs/elevenlabs-v2.5-turbo": { + id: "elevenlabs/elevenlabs-v2.5-turbo", + name: "ElevenLabs-v2.5-Turbo", + family: "elevenlabs", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-10-28", + last_updated: "2024-10-28", + modalities: { input: ["text"], output: ["audio"] }, + open_weights: false, + limit: { context: 128000, output: 0 }, + }, + "elevenlabs/elevenlabs-v3": { + id: "elevenlabs/elevenlabs-v3", + name: "ElevenLabs-v3", + family: "elevenlabs", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-06-05", + last_updated: "2025-06-05", + modalities: { input: ["text"], output: ["audio"] }, + open_weights: false, + limit: { context: 128000, output: 0 }, + }, + "elevenlabs/elevenlabs-music": { + id: "elevenlabs/elevenlabs-music", + name: "ElevenLabs-Music", + family: "elevenlabs", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-08-29", + last_updated: "2025-08-29", + modalities: { input: ["text"], output: ["audio"] }, + open_weights: false, + limit: { context: 2000, output: 0 }, + }, + "cerebras/gpt-oss-120b-cs": { + id: "cerebras/gpt-oss-120b-cs", + name: "gpt-oss-120b-cs", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-08-06", + last_updated: "2025-08-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 0, output: 0 }, + }, + "cerebras/llama-3.1-8b-cs": { + id: "cerebras/llama-3.1-8b-cs", + name: "llama-3.1-8b-cs", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-05-13", + last_updated: "2025-05-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 0, output: 0 }, + }, + "cerebras/qwen3-32b-cs": { + id: "cerebras/qwen3-32b-cs", + name: "qwen3-32b-cs", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-05-15", + last_updated: "2025-05-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 0, output: 0 }, + }, + "cerebras/qwen3-235b-2507-cs": { + id: "cerebras/qwen3-235b-2507-cs", + name: "qwen3-235b-2507-cs", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-08-06", + last_updated: "2025-08-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 0, output: 0 }, + }, + "cerebras/llama-3.3-70b-cs": { + id: "cerebras/llama-3.3-70b-cs", + name: "llama-3.3-70b-cs", + attachment: true, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-05-13", + last_updated: "2025-05-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 0, output: 0 }, + }, + "stabilityai/stablediffusionxl": { + id: "stabilityai/stablediffusionxl", + name: "StableDiffusionXL", + family: "stable-diffusion", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2023-07-09", + last_updated: "2023-07-09", + modalities: { input: ["text", "image"], output: ["image"] }, + open_weights: false, + limit: { context: 200, output: 0 }, + }, + "xai/grok-code-fast-1": { + id: "xai/grok-code-fast-1", + name: "Grok Code Fast 1", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-08-22", + last_updated: "2025-08-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.5, cache_read: 0.02 }, + limit: { context: 256000, output: 128000 }, + }, + "xai/grok-4-fast-reasoning": { + id: "xai/grok-4-fast-reasoning", + name: "Grok-4-Fast-Reasoning", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-09-16", + last_updated: "2025-09-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 128000 }, + }, + "xai/grok-4.1-fast-non-reasoning": { + id: "xai/grok-4.1-fast-non-reasoning", + name: "Grok-4.1-Fast-Non-Reasoning", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-11-19", + last_updated: "2025-11-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + limit: { context: 2000000, output: 30000 }, + }, + "xai/grok-4": { + id: "xai/grok-4", + name: "Grok-4", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-07-10", + last_updated: "2025-07-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.75 }, + limit: { context: 256000, output: 128000 }, + }, + "xai/grok-3-mini": { + id: "xai/grok-3-mini", + name: "Grok 3 Mini", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-04-11", + last_updated: "2025-04-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.5, cache_read: 0.075 }, + limit: { context: 131072, output: 8192 }, + }, + "xai/grok-4.20-multi-agent": { + id: "xai/grok-4.20-multi-agent", + name: "Grok-4.20-Multi-Agent", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2026-03-13", + last_updated: "2026-03-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6, cache_read: 0.2 }, + limit: { context: 128000, output: 0 }, + }, + "xai/grok-3": { + id: "xai/grok-3", + name: "Grok 3", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-04-11", + last_updated: "2025-04-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.75 }, + limit: { context: 131072, output: 8192 }, + }, + "xai/grok-4-fast-non-reasoning": { + id: "xai/grok-4-fast-non-reasoning", + name: "Grok-4-Fast-Non-Reasoning", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-09-16", + last_updated: "2025-09-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 128000 }, + }, + "xai/grok-4.1-fast-reasoning": { + id: "xai/grok-4.1-fast-reasoning", + name: "Grok-4.1-Fast-Reasoning", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-11-19", + last_updated: "2025-11-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + limit: { context: 2000000, output: 30000 }, + }, + "runwayml/runway": { + id: "runwayml/runway", + name: "Runway", + family: "runway", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-10-11", + last_updated: "2024-10-11", + modalities: { input: ["text", "image"], output: ["video"] }, + open_weights: false, + limit: { context: 256, output: 0 }, + }, + "runwayml/runway-gen-4-turbo": { + id: "runwayml/runway-gen-4-turbo", + name: "Runway-Gen-4-Turbo", + family: "runway", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-05-09", + last_updated: "2025-05-09", + modalities: { input: ["text", "image"], output: ["video"] }, + open_weights: false, + limit: { context: 256, output: 0 }, + }, + "openai/gpt-5.1-codex-max": { + id: "openai/gpt-5.1-codex-max", + name: "GPT 5.1 Codex Max", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-12-08", + last_updated: "2025-12-08", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 9, cache_read: 0.11 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/sora-2-pro": { + id: "openai/sora-2-pro", + name: "Sora-2-Pro", + family: "sora", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-10-06", + last_updated: "2025-10-06", + modalities: { input: ["text", "image"], output: ["video"] }, + open_weights: false, + limit: { context: 0, output: 0 }, + }, + "openai/chatgpt-4o-latest": { + id: "openai/chatgpt-4o-latest", + name: "ChatGPT-4o-Latest", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-08-14", + last_updated: "2024-08-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 4.5, output: 14 }, + limit: { context: 128000, output: 8192 }, + }, + "openai/gpt-5-chat": { + id: "openai/gpt-5-chat", + name: "GPT-5-Chat", + family: "gpt-codex", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 9, cache_read: 0.11 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-5.2-pro": { + id: "openai/gpt-5.2-pro", + name: "GPT-5.2-Pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 19, output: 150 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-4o-aug": { + id: "openai/gpt-4o-aug", + name: "GPT-4o-Aug", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-11-21", + last_updated: "2024-11-21", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.2, output: 9, cache_read: 1.1 }, + limit: { context: 128000, output: 8192 }, + }, + "openai/gpt-4-classic-0314": { + id: "openai/gpt-4-classic-0314", + name: "GPT-4-Classic-0314", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-08-26", + last_updated: "2024-08-26", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 27, output: 54 }, + limit: { context: 8192, output: 4096 }, + }, + "openai/gpt-5-mini": { + id: "openai/gpt-5-mini", + name: "GPT-5-mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-06-25", + last_updated: "2025-06-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.22, output: 1.8, cache_read: 0.022 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5-nano": { + id: "openai/gpt-5-nano", + name: "GPT-5-nano", + family: "gpt-nano", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.045, output: 0.36, cache_read: 0.0045 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.3-codex": { + id: "openai/gpt-5.3-codex", + name: "GPT-5.3-Codex", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2026-02-10", + last_updated: "2026-02-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.6, output: 13, cache_read: 0.16 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-4-turbo": { + id: "openai/gpt-4-turbo", + name: "GPT-4-Turbo", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2023-09-13", + last_updated: "2023-09-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 9, output: 27 }, + limit: { context: 128000, output: 4096 }, + }, + "openai/gpt-5.2": { + id: "openai/gpt-5.2", + name: "GPT-5.2", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-12-08", + last_updated: "2025-12-08", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.6, output: 13, cache_read: 0.16 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/o3-pro": { + id: "openai/o3-pro", + name: "o3-pro", + family: "o-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-06-10", + last_updated: "2025-06-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 18, output: 72 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/o3-mini-high": { + id: "openai/o3-mini-high", + name: "o3-mini-high", + family: "o-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-01-31", + last_updated: "2025-01-31", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.99, output: 4 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-4o-mini": { + id: "openai/gpt-4o-mini", + name: "GPT-4o-mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.54, cache_read: 0.068 }, + limit: { context: 124096, output: 4096 }, + }, + "openai/o4-mini-deep-research": { + id: "openai/o4-mini-deep-research", + name: "o4-mini-deep-research", + family: "o-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-06-27", + last_updated: "2025-06-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.8, output: 7.2, cache_read: 0.45 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-5.4-mini": { + id: "openai/gpt-5.4-mini", + name: "GPT-5.4-Mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2026-03-12", + last_updated: "2026-03-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.68, output: 4, cache_read: 0.068 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "openai/dall-e-3": { + id: "openai/dall-e-3", + name: "DALL-E-3", + family: "dall-e", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2023-11-06", + last_updated: "2023-11-06", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 800, output: 0 }, + }, + "openai/o4-mini": { + id: "openai/o4-mini", + name: "o4-mini", + family: "o-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.99, output: 4, cache_read: 0.25 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-5.4-nano": { + id: "openai/gpt-5.4-nano", + name: "GPT-5.4-Nano", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2026-03-11", + last_updated: "2026-03-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.18, output: 1.1, cache_read: 0.018 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "openai/gpt-image-1": { + id: "openai/gpt-image-1", + name: "GPT-Image-1", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-03-31", + last_updated: "2025-03-31", + modalities: { input: ["text", "image"], output: ["image"] }, + open_weights: false, + limit: { context: 128000, output: 0 }, + }, + "openai/gpt-5.2-codex": { + id: "openai/gpt-5.2-codex", + name: "GPT-5.2-Codex", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2026-01-14", + last_updated: "2026-01-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.6, output: 13, cache_read: 0.16 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.1-codex-mini": { + id: "openai/gpt-5.1-codex-mini", + name: "GPT-5.1-Codex-Mini", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-11-12", + last_updated: "2025-11-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.22, output: 1.8, cache_read: 0.022 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.1": { + id: "openai/gpt-5.1", + name: "GPT-5.1", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-11-12", + last_updated: "2025-11-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 9, cache_read: 0.11 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-image-1-mini": { + id: "openai/gpt-image-1-mini", + name: "GPT-Image-1-Mini", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-08-26", + last_updated: "2025-08-26", + modalities: { input: ["text", "image"], output: ["image"] }, + open_weights: false, + limit: { context: 0, output: 0 }, + }, + "openai/o1": { + id: "openai/o1", + name: "o1", + family: "o", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2024-12-18", + last_updated: "2024-12-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 14, output: 54 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-5.4-pro": { + id: "openai/gpt-5.4-pro", + name: "GPT-5.4-Pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image"], output: ["image"] }, + open_weights: false, + cost: { input: 27, output: 160 }, + limit: { context: 1050000, input: 922000, output: 128000 }, + }, + "openai/gpt-3.5-turbo": { + id: "openai/gpt-3.5-turbo", + name: "GPT-3.5-Turbo", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2023-09-13", + last_updated: "2023-09-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.45, output: 1.4 }, + limit: { context: 16384, output: 2048 }, + }, + "openai/o3-deep-research": { + id: "openai/o3-deep-research", + name: "o3-deep-research", + family: "o", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-06-27", + last_updated: "2025-06-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 9, output: 36, cache_read: 2.2 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/o3-mini": { + id: "openai/o3-mini", + name: "o3-mini", + family: "o-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-01-31", + last_updated: "2025-01-31", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.99, output: 4 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/o1-pro": { + id: "openai/o1-pro", + name: "o1-pro", + family: "o-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-03-19", + last_updated: "2025-03-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 140, output: 540 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-4o-search": { + id: "openai/gpt-4o-search", + name: "GPT-4o-Search", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-03-11", + last_updated: "2025-03-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.2, output: 9 }, + limit: { context: 128000, output: 8192 }, + }, + "openai/gpt-5-codex": { + id: "openai/gpt-5-codex", + name: "GPT-5-Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-09-23", + last_updated: "2025-09-23", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 9 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.4": { + id: "openai/gpt-5.4", + name: "GPT-5.4", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2026-02-26", + last_updated: "2026-02-26", + modalities: { input: ["text", "image", "pdf"], output: ["image"] }, + open_weights: false, + cost: { input: 2.2, output: 14, cache_read: 0.22 }, + limit: { context: 1050000, input: 922000, output: 128000 }, + }, + "openai/gpt-5.3-codex-spark": { + id: "openai/gpt-5.3-codex-spark", + name: "GPT-5.3-Codex-Spark", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2026-03-04", + last_updated: "2026-03-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-3.5-turbo-raw": { + id: "openai/gpt-3.5-turbo-raw", + name: "GPT-3.5-Turbo-Raw", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2023-09-27", + last_updated: "2023-09-27", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.45, output: 1.4 }, + limit: { context: 4524, output: 2048 }, + }, + "openai/gpt-4.1-nano": { + id: "openai/gpt-4.1-nano", + name: "GPT-4.1-nano", + family: "gpt-nano", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-04-15", + last_updated: "2025-04-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.09, output: 0.36, cache_read: 0.022 }, + limit: { context: 1047576, output: 32768 }, + }, + "openai/o3": { + id: "openai/o3", + name: "o3", + family: "o", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.8, output: 7.2, cache_read: 0.45 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-5-pro": { + id: "openai/gpt-5-pro", + name: "GPT-5-Pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-10-06", + last_updated: "2025-10-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 14, output: 110 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/sora-2": { + id: "openai/sora-2", + name: "Sora-2", + family: "sora", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-10-06", + last_updated: "2025-10-06", + modalities: { input: ["text", "image"], output: ["video"] }, + open_weights: false, + limit: { context: 0, output: 0 }, + }, + "openai/gpt-4o": { + id: "openai/gpt-4o", + name: "GPT-4o", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-05-13", + last_updated: "2024-05-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 8192 }, + }, + "openai/gpt-5": { + id: "openai/gpt-5", + name: "GPT-5", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 9, cache_read: 0.11 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.2-instant": { + id: "openai/gpt-5.2-instant", + name: "GPT-5.2-Instant", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.6, output: 13, cache_read: 0.16 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-4o-mini-search": { + id: "openai/gpt-4o-mini-search", + name: "GPT-4o-mini-Search", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-03-11", + last_updated: "2025-03-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.54 }, + limit: { context: 128000, output: 8192 }, + }, + "openai/gpt-image-1.5": { + id: "openai/gpt-image-1.5", + name: "gpt-image-1.5", + attachment: true, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-12-16", + last_updated: "2025-12-16", + modalities: { input: ["text", "image"], output: ["image"] }, + open_weights: false, + limit: { context: 128000, output: 0 }, + }, + "openai/gpt-3.5-turbo-instruct": { + id: "openai/gpt-3.5-turbo-instruct", + name: "GPT-3.5-Turbo-Instruct", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2023-09-20", + last_updated: "2023-09-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.4, output: 1.8 }, + limit: { context: 3500, output: 1024 }, + }, + "openai/gpt-4.1": { + id: "openai/gpt-4.1", + name: "GPT-4.1", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.8, output: 7.2, cache_read: 0.45 }, + limit: { context: 1047576, output: 32768 }, + }, + "openai/gpt-5.1-instant": { + id: "openai/gpt-5.1-instant", + name: "GPT-5.1-Instant", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-11-12", + last_updated: "2025-11-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 9, cache_read: 0.11 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-4.1-mini": { + id: "openai/gpt-4.1-mini", + name: "GPT-4.1-mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-04-15", + last_updated: "2025-04-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.36, output: 1.4, cache_read: 0.09 }, + limit: { context: 1047576, output: 32768 }, + }, + "openai/gpt-4-classic": { + id: "openai/gpt-4-classic", + name: "GPT-4-Classic", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-03-25", + last_updated: "2024-03-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 27, output: 54 }, + limit: { context: 8192, output: 4096 }, + }, + "openai/gpt-5.1-codex": { + id: "openai/gpt-5.1-codex", + name: "GPT-5.1-Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-11-12", + last_updated: "2025-11-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 9, cache_read: 0.11 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.3-instant": { + id: "openai/gpt-5.3-instant", + name: "GPT-5.3-Instant", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2026-03-03", + last_updated: "2026-03-03", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.6, output: 13, cache_read: 0.16 }, + limit: { context: 128000, input: 111616, output: 16384 }, + }, + "google/veo-3-fast": { + id: "google/veo-3-fast", + name: "Veo-3-Fast", + family: "veo", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-10-13", + last_updated: "2025-10-13", + modalities: { input: ["text"], output: ["video"] }, + open_weights: false, + limit: { context: 480, output: 0 }, + }, + "google/veo-3.1-fast": { + id: "google/veo-3.1-fast", + name: "Veo-3.1-Fast", + family: "veo", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image"], output: ["video"] }, + open_weights: false, + limit: { context: 480, output: 0 }, + }, + "google/gemini-3.1-pro": { + id: "google/gemini-3.1-pro", + name: "Gemini-3.1-Pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2026-02-19", + last_updated: "2026-02-19", + modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/imagen-3-fast": { + id: "google/imagen-3-fast", + name: "Imagen-3-Fast", + family: "imagen", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-10-17", + last_updated: "2024-10-17", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 480, output: 0 }, + }, + "google/gemini-2.0-flash": { + id: "google/gemini-2.0-flash", + name: "Gemini-2.0-Flash", + family: "gemini-flash", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.42 }, + limit: { context: 990000, output: 8192 }, + }, + "google/gemini-deep-research": { + id: "google/gemini-deep-research", + name: "gemini-deep-research", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 1.6, output: 9.6 }, + limit: { context: 1048576, output: 0 }, + }, + "google/gemini-2.5-pro": { + id: "google/gemini-2.5-pro", + name: "Gemini-2.5-Pro", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-02-05", + last_updated: "2025-02-05", + modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.87, output: 7, cache_read: 0.087 }, + limit: { context: 1065535, output: 65535 }, + }, + "google/imagen-3": { + id: "google/imagen-3", + name: "Imagen-3", + family: "imagen", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-10-15", + last_updated: "2024-10-15", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 480, output: 0 }, + }, + "google/nano-banana": { + id: "google/nano-banana", + name: "Nano-Banana", + family: "nano-banana", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-08-21", + last_updated: "2025-08-21", + modalities: { input: ["text", "image"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 0.21, output: 1.8, cache_read: 0.021 }, + limit: { context: 65536, output: 0 }, + }, + "google/gemini-2.5-flash": { + id: "google/gemini-2.5-flash", + name: "Gemini-2.5-Flash", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-04-26", + last_updated: "2025-04-26", + modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.21, output: 1.8, cache_read: 0.021 }, + limit: { context: 1065535, output: 65535 }, + }, + "google/gemini-3.1-flash-lite": { + id: "google/gemini-3.1-flash-lite", + name: "Gemini-3.1-Flash-Lite", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2026-02-18", + last_updated: "2026-02-18", + modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1.5 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-3-flash": { + id: "google/gemini-3-flash", + name: "Gemini-3-Flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-10-07", + last_updated: "2025-10-07", + modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2.4, cache_read: 0.04 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/veo-3.1": { + id: "google/veo-3.1", + name: "Veo-3.1", + family: "veo", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text"], output: ["video"] }, + open_weights: false, + limit: { context: 480, output: 0 }, + }, + "google/lyria": { + id: "google/lyria", + name: "Lyria", + family: "lyria", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-06-04", + last_updated: "2025-06-04", + modalities: { input: ["text"], output: ["audio"] }, + open_weights: false, + limit: { context: 0, output: 0 }, + }, + "google/imagen-4-ultra": { + id: "google/imagen-4-ultra", + name: "Imagen-4-Ultra", + family: "imagen", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-05-24", + last_updated: "2025-05-24", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 480, output: 0 }, + }, + "google/nano-banana-pro": { + id: "google/nano-banana-pro", + name: "Nano-Banana-Pro", + family: "nano-banana", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-11-19", + last_updated: "2025-11-19", + modalities: { input: ["text", "image"], output: ["image"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2 }, + limit: { context: 65536, output: 0 }, + }, + "google/gemini-3-pro": { + id: "google/gemini-3-pro", + name: "Gemini-3-Pro", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-10-22", + last_updated: "2025-10-22", + modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 1.6, output: 9.6, cache_read: 0.16 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/imagen-4-fast": { + id: "google/imagen-4-fast", + name: "Imagen-4-Fast", + family: "imagen", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-06-25", + last_updated: "2025-06-25", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 480, output: 0 }, + }, + "google/veo-3": { + id: "google/veo-3", + name: "Veo-3", + family: "veo", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-05-21", + last_updated: "2025-05-21", + modalities: { input: ["text"], output: ["video"] }, + open_weights: false, + limit: { context: 480, output: 0 }, + }, + "google/gemini-2.5-flash-lite": { + id: "google/gemini-2.5-flash-lite", + name: "Gemini-2.5-Flash-Lite", + family: "gemini-flash-lite", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-06-19", + last_updated: "2025-06-19", + modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.07, output: 0.28 }, + limit: { context: 1024000, output: 64000 }, + }, + "google/imagen-4": { + id: "google/imagen-4", + name: "Imagen-4", + family: "imagen", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 480, output: 0 }, + }, + "google/gemma-4-31b": { + id: "google/gemma-4-31b", + name: "Gemma-4-31B", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2026-04-02", + last_updated: "2026-04-02", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 8192 }, + }, + "google/gemini-2.0-flash-lite": { + id: "google/gemini-2.0-flash-lite", + name: "Gemini-2.0-Flash-Lite", + family: "gemini-flash-lite", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-02-05", + last_updated: "2025-02-05", + modalities: { input: ["text", "image", "video", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.052, output: 0.21 }, + limit: { context: 990000, output: 8192 }, + }, + "google/veo-2": { + id: "google/veo-2", + name: "Veo-2", + family: "veo", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-12-02", + last_updated: "2024-12-02", + modalities: { input: ["text"], output: ["video"] }, + open_weights: false, + limit: { context: 480, output: 0 }, + }, + "lumalabs/ray2": { + id: "lumalabs/ray2", + name: "Ray2", + family: "ray", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-02-20", + last_updated: "2025-02-20", + modalities: { input: ["text", "image"], output: ["video"] }, + open_weights: false, + limit: { context: 5000, output: 0 }, + }, + "anthropic/claude-opus-4.1": { + id: "anthropic/claude-opus-4.1", + name: "Claude-Opus-4.1", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 13, output: 64, cache_read: 1.3, cache_write: 16 }, + limit: { context: 196608, output: 32000 }, + }, + "anthropic/claude-sonnet-3.5": { + id: "anthropic/claude-sonnet-3.5", + name: "Claude-Sonnet-3.5", + family: "claude-sonnet", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-06-05", + last_updated: "2024-06-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.6, output: 13, cache_read: 0.26, cache_write: 3.2 }, + limit: { context: 189096, output: 8192 }, + }, + "anthropic/claude-haiku-3": { + id: "anthropic/claude-haiku-3", + name: "Claude-Haiku-3", + family: "claude-haiku", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-03-09", + last_updated: "2024-03-09", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.21, output: 1.1, cache_read: 0.021, cache_write: 0.26 }, + limit: { context: 189096, output: 8192 }, + }, + "anthropic/claude-opus-4.6": { + id: "anthropic/claude-opus-4.6", + name: "Claude-Opus-4.6", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2026-02-04", + last_updated: "2026-02-04", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 4.3, output: 21, cache_read: 0.43, cache_write: 5.3 }, + limit: { context: 983040, output: 128000 }, + }, + "anthropic/claude-sonnet-4": { + id: "anthropic/claude-sonnet-4", + name: "Claude-Sonnet-4", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-05-21", + last_updated: "2025-05-21", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.6, output: 13, cache_read: 0.26, cache_write: 3.2 }, + limit: { context: 983040, output: 64000 }, + }, + "anthropic/claude-sonnet-4.5": { + id: "anthropic/claude-sonnet-4.5", + name: "Claude-Sonnet-4.5", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-09-26", + last_updated: "2025-09-26", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.6, output: 13, cache_read: 0.26, cache_write: 3.2 }, + limit: { context: 983040, output: 32768 }, + }, + "anthropic/claude-opus-4.5": { + id: "anthropic/claude-opus-4.5", + name: "Claude-Opus-4.5", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-11-21", + last_updated: "2025-11-21", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 4.3, output: 21, cache_read: 0.43, cache_write: 5.3 }, + limit: { context: 196608, output: 64000 }, + }, + "anthropic/claude-sonnet-3.7": { + id: "anthropic/claude-sonnet-3.7", + name: "Claude-Sonnet-3.7", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.6, output: 13, cache_read: 0.26, cache_write: 3.2 }, + limit: { context: 196608, output: 128000 }, + }, + "anthropic/claude-opus-4": { + id: "anthropic/claude-opus-4", + name: "Claude-Opus-4", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-05-21", + last_updated: "2025-05-21", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 13, output: 64, cache_read: 1.3, cache_write: 16 }, + limit: { context: 192512, output: 28672 }, + }, + "anthropic/claude-haiku-3.5": { + id: "anthropic/claude-haiku-3.5", + name: "Claude-Haiku-3.5", + family: "claude-haiku", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-10-01", + last_updated: "2024-10-01", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.68, output: 3.4, cache_read: 0.068, cache_write: 0.85 }, + limit: { context: 189096, output: 8192 }, + }, + "anthropic/claude-haiku-4.5": { + id: "anthropic/claude-haiku-4.5", + name: "Claude-Haiku-4.5", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.85, output: 4.3, cache_read: 0.085, cache_write: 1.1 }, + limit: { context: 192000, output: 64000 }, + }, + "anthropic/claude-sonnet-3.5-june": { + id: "anthropic/claude-sonnet-3.5-june", + name: "Claude-Sonnet-3.5-June", + family: "claude-sonnet", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-11-18", + last_updated: "2024-11-18", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.6, output: 13, cache_read: 0.26, cache_write: 3.2 }, + limit: { context: 189096, output: 8192 }, + }, + "anthropic/claude-sonnet-4.6": { + id: "anthropic/claude-sonnet-4.6", + name: "Claude-Sonnet-4.6", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.6, output: 13, cache_read: 0.26, cache_write: 3.2 }, + limit: { context: 983040, output: 128000 }, + }, + "ideogramai/ideogram": { + id: "ideogramai/ideogram", + name: "Ideogram", + family: "ideogram", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-04-03", + last_updated: "2024-04-03", + modalities: { input: ["text", "image"], output: ["image"] }, + open_weights: false, + limit: { context: 150, output: 0 }, + }, + "ideogramai/ideogram-v2": { + id: "ideogramai/ideogram-v2", + name: "Ideogram-v2", + family: "ideogram", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-08-21", + last_updated: "2024-08-21", + modalities: { input: ["text", "image"], output: ["image"] }, + open_weights: false, + limit: { context: 150, output: 0 }, + }, + "ideogramai/ideogram-v2a-turbo": { + id: "ideogramai/ideogram-v2a-turbo", + name: "Ideogram-v2a-Turbo", + family: "ideogram", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-02-27", + last_updated: "2025-02-27", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 150, output: 0 }, + }, + "ideogramai/ideogram-v2a": { + id: "ideogramai/ideogram-v2a", + name: "Ideogram-v2a", + family: "ideogram", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2025-02-27", + last_updated: "2025-02-27", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 150, output: 0 }, + }, + "trytako/tako": { + id: "trytako/tako", + name: "Tako", + family: "tako", + attachment: true, + reasoning: false, + tool_call: true, + temperature: false, + release_date: "2024-08-15", + last_updated: "2024-08-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 2048, output: 0 }, + }, + "poetools/claude-code": { + id: "poetools/claude-code", + name: "claude-code", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + release_date: "2025-11-27", + last_updated: "2025-11-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 0, output: 0 }, + }, + }, + }, + helicone: { + id: "helicone", + env: ["HELICONE_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://ai-gateway.helicone.ai/v1", + name: "Helicone", + doc: "https://helicone.ai/models", + models: { + "mistral-nemo": { + id: "mistral-nemo", + name: "Mistral Nemo", + family: "mistral-nemo", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-07", + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 20, output: 40 }, + limit: { context: 128000, output: 16400 }, + }, + "grok-4-1-fast-reasoning": { + id: "grok-4-1-fast-reasoning", + name: "xAI Grok 4.1 Fast Reasoning", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-11", + release_date: "2025-11-17", + last_updated: "2025-11-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.19999999999999998, output: 0.5, cache_read: 0.049999999999999996 }, + limit: { context: 2000000, output: 2000000 }, + }, + "gemma2-9b-it": { + id: "gemma2-9b-it", + name: "Google Gemma 2", + family: "gemma", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-06", + release_date: "2024-06-25", + last_updated: "2024-06-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.01, output: 0.03 }, + limit: { context: 8192, output: 8192 }, + }, + "llama-3.3-70b-instruct": { + id: "llama-3.3-70b-instruct", + name: "Meta Llama 3.3 70B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.13, output: 0.39 }, + limit: { context: 128000, output: 16400 }, + }, + "llama-4-scout": { + id: "llama-4-scout", + name: "Meta Llama 4 Scout 17B 16E", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.08, output: 0.3 }, + limit: { context: 131072, output: 8192 }, + }, + "chatgpt-4o-latest": { + id: "chatgpt-4o-latest", + name: "OpenAI ChatGPT-4o", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2024-08-14", + last_updated: "2024-08-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 20, cache_read: 2.5 }, + limit: { context: 128000, output: 16384 }, + }, + "claude-3.5-sonnet-v2": { + id: "claude-3.5-sonnet-v2", + name: "Anthropic: Claude 3.5 Sonnet v2", + family: "claude-sonnet", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.30000000000000004, cache_write: 3.75 }, + limit: { context: 200000, output: 8192 }, + }, + "hermes-2-pro-llama-3-8b": { + id: "hermes-2-pro-llama-3-8b", + name: "Hermes 2 Pro Llama 3 8B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-05", + release_date: "2024-05-27", + last_updated: "2024-05-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.14 }, + limit: { context: 131072, output: 131072 }, + }, + "claude-3.7-sonnet": { + id: "claude-3.7-sonnet", + name: "Anthropic: Claude 3.7 Sonnet", + family: "claude-sonnet", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-02", + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.30000000000000004, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "llama-prompt-guard-2-22m": { + id: "llama-prompt-guard-2-22m", + name: "Meta Llama Prompt Guard 2 22M", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-10", + release_date: "2024-10-01", + last_updated: "2024-10-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.01, output: 0.01 }, + limit: { context: 512, output: 2 }, + }, + "o1-mini": { + id: "o1-mini", + name: "OpenAI: o1-mini", + family: "o-mini", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2025-01", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, + limit: { context: 128000, output: 65536 }, + }, + "gpt-4.1-mini-2025-04-14": { + id: "gpt-4.1-mini-2025-04-14", + name: "OpenAI GPT-4.1 Mini", + family: "gpt-mini", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.39999999999999997, output: 1.5999999999999999, cache_read: 0.09999999999999999 }, + limit: { context: 1047576, output: 32768 }, + }, + "deepseek-r1-distill-llama-70b": { + id: "deepseek-r1-distill-llama-70b", + name: "DeepSeek R1 Distill Llama 70B", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.03, output: 0.13 }, + limit: { context: 128000, output: 4096 }, + }, + "qwen3-32b": { + id: "qwen3-32b", + name: "Qwen3 32B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04-28", + last_updated: "2025-04-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.29, output: 0.59 }, + limit: { context: 131072, output: 40960 }, + }, + "llama-3.3-70b-versatile": { + id: "llama-3.3-70b-versatile", + name: "Meta Llama 3.3 70B Versatile", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.59, output: 0.7899999999999999 }, + limit: { context: 131072, output: 32678 }, + }, + "gpt-5-mini": { + id: "gpt-5-mini", + name: "OpenAI GPT-5 Mini", + family: "gpt-mini", + attachment: false, + reasoning: false, + tool_call: true, + temperature: false, + knowledge: "2025-01", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.024999999999999998 }, + limit: { context: 400000, output: 128000 }, + }, + "gpt-5-nano": { + id: "gpt-5-nano", + name: "OpenAI GPT-5 Nano", + family: "gpt-nano", + attachment: false, + reasoning: false, + tool_call: true, + temperature: false, + knowledge: "2025-01", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.049999999999999996, output: 0.39999999999999997, cache_read: 0.005 }, + limit: { context: 400000, output: 128000 }, + }, + "gemini-3-pro-preview": { + id: "gemini-3-pro-preview", + name: "Google Gemini 3 Pro Preview", + family: "gemini-pro", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-11", + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.19999999999999998 }, + limit: { context: 1048576, output: 65536 }, + }, + "claude-3-haiku-20240307": { + id: "claude-3-haiku-20240307", + name: "Anthropic: Claude 3 Haiku", + family: "claude-haiku", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-03", + release_date: "2024-03-07", + last_updated: "2024-03-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1.25, cache_read: 0.03, cache_write: 0.3 }, + limit: { context: 200000, output: 4096 }, + }, + "llama-4-maverick": { + id: "llama-4-maverick", + name: "Meta Llama 4 Maverick 17B 128E", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 131072, output: 8192 }, + }, + "claude-sonnet-4-5-20250929": { + id: "claude-sonnet-4-5-20250929", + name: "Anthropic: Claude Sonnet 4.5 (20250929)", + family: "claude-sonnet", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-09", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.30000000000000004, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "gemini-2.5-pro": { + id: "gemini-2.5-pro", + name: "Google Gemini 2.5 Pro", + family: "gemini-pro", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.3125, cache_write: 1.25 }, + limit: { context: 1048576, output: 65536 }, + }, + "claude-4.5-opus": { + id: "claude-4.5-opus", + name: "Anthropic: Claude Opus 4.5", + family: "claude-opus", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-11", + release_date: "2025-11-24", + last_updated: "2025-11-24", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 64000 }, + }, + "grok-4-1-fast-non-reasoning": { + id: "grok-4-1-fast-non-reasoning", + name: "xAI Grok 4.1 Fast Non-Reasoning", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-11", + release_date: "2025-11-17", + last_updated: "2025-11-17", + modalities: { input: ["text", "image"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 0.19999999999999998, output: 0.5, cache_read: 0.049999999999999996 }, + limit: { context: 2000000, output: 30000 }, + }, + "sonar-pro": { + id: "sonar-pro", + name: "Perplexity Sonar Pro", + family: "sonar-pro", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-01", + release_date: "2025-01-27", + last_updated: "2025-01-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 200000, output: 4096 }, + }, + "mistral-large-2411": { + id: "mistral-large-2411", + name: "Mistral-Large", + family: "mistral-large", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2024-07-24", + last_updated: "2024-07-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6 }, + limit: { context: 128000, output: 32768 }, + }, + "o3-pro": { + id: "o3-pro", + name: "OpenAI o3 Pro", + family: "o-pro", + attachment: false, + reasoning: false, + tool_call: true, + temperature: false, + knowledge: "2024-06", + release_date: "2024-06-01", + last_updated: "2024-06-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 20, output: 80 }, + limit: { context: 200000, output: 100000 }, + }, + "claude-opus-4-1": { + id: "claude-opus-4-1", + name: "Anthropic: Claude Opus 4.1", + family: "claude-opus", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "gpt-4o-mini": { + id: "gpt-4o-mini", + name: "OpenAI GPT-4o-mini", + family: "gpt-mini", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6, cache_read: 0.075 }, + limit: { context: 128000, output: 16384 }, + }, + "claude-4.5-haiku": { + id: "claude-4.5-haiku", + name: "Anthropic: Claude 4.5 Haiku", + family: "claude-haiku", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-10", + release_date: "2025-10-01", + last_updated: "2025-10-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.09999999999999999, cache_write: 1.25 }, + limit: { context: 200000, output: 8192 }, + }, + "kimi-k2-0711": { + id: "kimi-k2-0711", + name: "Kimi K2 (07/11)", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5700000000000001, output: 2.3 }, + limit: { context: 131072, output: 16384 }, + }, + "o4-mini": { + id: "o4-mini", + name: "OpenAI o4 Mini", + family: "o-mini", + attachment: false, + reasoning: false, + tool_call: true, + temperature: false, + knowledge: "2024-06", + release_date: "2024-06-01", + last_updated: "2024-06-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.275 }, + limit: { context: 200000, output: 100000 }, + }, + "sonar-deep-research": { + id: "sonar-deep-research", + name: "Perplexity Sonar Deep Research", + family: "sonar-deep-research", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2025-01", + release_date: "2025-01-27", + last_updated: "2025-01-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8 }, + limit: { context: 127000, output: 4096 }, + }, + "gemma-3-12b-it": { + id: "gemma-3-12b-it", + name: "Google Gemma 3 12B", + family: "gemma", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-12", + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.049999999999999996, output: 0.09999999999999999 }, + limit: { context: 131072, output: 8192 }, + }, + "gemini-2.5-flash": { + id: "gemini-2.5-flash", + name: "Google Gemini 2.5 Flash", + family: "gemini-flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5, cache_read: 0.075, cache_write: 0.3 }, + limit: { context: 1048576, output: 65535 }, + }, + "deepseek-tng-r1t2-chimera": { + id: "deepseek-tng-r1t2-chimera", + name: "DeepSeek TNG R1T2 Chimera", + family: "deepseek-thinking", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-07-02", + last_updated: "2025-07-02", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 130000, output: 163840 }, + }, + "gpt-5.1-codex-mini": { + id: "gpt-5.1-codex-mini", + name: "OpenAI: GPT-5.1 Codex Mini", + family: "gpt-codex", + attachment: false, + reasoning: false, + tool_call: true, + temperature: false, + knowledge: "2025-01", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "image"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.024999999999999998 }, + limit: { context: 400000, output: 128000 }, + }, + "claude-sonnet-4": { + id: "claude-sonnet-4", + name: "Anthropic: Claude Sonnet 4", + family: "claude-sonnet", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2025-05-14", + last_updated: "2025-05-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.30000000000000004, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "grok-code-fast-1": { + id: "grok-code-fast-1", + name: "xAI Grok Code Fast 1", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2024-08-25", + last_updated: "2024-08-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.19999999999999998, output: 1.5, cache_read: 0.02 }, + limit: { context: 256000, output: 10000 }, + }, + "gpt-5.1": { + id: "gpt-5.1", + name: "OpenAI GPT-5.1", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: true, + temperature: false, + knowledge: "2025-01", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "image"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.12500000000000003 }, + limit: { context: 400000, output: 128000 }, + }, + "deepseek-reasoner": { + id: "deepseek-reasoner", + name: "DeepSeek Reasoner", + family: "deepseek-thinking", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-01", + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.56, output: 1.68, cache_read: 0.07 }, + limit: { context: 128000, output: 64000 }, + }, + "grok-4-fast-reasoning": { + id: "grok-4-fast-reasoning", + name: "xAI: Grok 4 Fast Reasoning", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-09", + release_date: "2025-09-01", + last_updated: "2025-09-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.19999999999999998, output: 0.5, cache_read: 0.049999999999999996 }, + limit: { context: 2000000, output: 2000000 }, + }, + o1: { + id: "o1", + name: "OpenAI: o1", + family: "o", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2025-01", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 60, cache_read: 7.5 }, + limit: { context: 200000, output: 100000 }, + }, + "llama-3.1-8b-instant": { + id: "llama-3.1-8b-instant", + name: "Meta Llama 3.1 8B Instant", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2024-07-01", + last_updated: "2024-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.049999999999999996, output: 0.08 }, + limit: { context: 131072, output: 32678 }, + }, + "o3-mini": { + id: "o3-mini", + name: "OpenAI o3 Mini", + family: "o-mini", + attachment: false, + reasoning: false, + tool_call: true, + temperature: false, + knowledge: "2023-10", + release_date: "2023-10-01", + last_updated: "2023-10-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, + limit: { context: 200000, output: 100000 }, + }, + sonar: { + id: "sonar", + name: "Perplexity Sonar", + family: "sonar", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-01", + release_date: "2025-01-27", + last_updated: "2025-01-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 1 }, + limit: { context: 127000, output: 4096 }, + }, + "kimi-k2-0905": { + id: "kimi-k2-0905", + name: "Kimi K2 (09/05)", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-09", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 2, cache_read: 0.39999999999999997 }, + limit: { context: 262144, output: 16384 }, + }, + "mistral-small": { + id: "mistral-small", + name: "Mistral Small", + family: "mistral-small", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-02", + release_date: "2024-02-26", + last_updated: "2024-02-26", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 75, output: 200 }, + limit: { context: 128000, output: 128000 }, + }, + "qwen3-30b-a3b": { + id: "qwen3-30b-a3b", + name: "Qwen3 30B A3B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-06-01", + last_updated: "2025-06-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.08, output: 0.29 }, + limit: { context: 41000, output: 41000 }, + }, + "codex-mini-latest": { + id: "codex-mini-latest", + name: "OpenAI Codex Mini Latest", + family: "gpt-codex-mini", + attachment: false, + reasoning: false, + tool_call: true, + temperature: false, + knowledge: "2025-01", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.5, output: 6, cache_read: 0.375 }, + limit: { context: 200000, output: 100000 }, + }, + "grok-4": { + id: "grok-4", + name: "xAI Grok 4", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2024-07-09", + last_updated: "2024-07-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.75 }, + limit: { context: 256000, output: 256000 }, + }, + "qwen3-235b-a22b-thinking": { + id: "qwen3-235b-a22b-thinking", + name: "Qwen3 235B A22B Thinking", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2025-07", + release_date: "2025-07-25", + last_updated: "2025-07-25", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.9000000000000004 }, + limit: { context: 262144, output: 81920 }, + }, + "qwen2.5-coder-7b-fast": { + id: "qwen2.5-coder-7b-fast", + name: "Qwen2.5 Coder 7B fast", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-09", + release_date: "2024-09-15", + last_updated: "2024-09-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.03, output: 0.09 }, + limit: { context: 32000, output: 8192 }, + }, + "llama-3.1-8b-instruct-turbo": { + id: "llama-3.1-8b-instruct-turbo", + name: "Meta Llama 3.1 8B Instruct Turbo", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.02, output: 0.03 }, + limit: { context: 128000, output: 128000 }, + }, + "qwen3-next-80b-a3b-instruct": { + id: "qwen3-next-80b-a3b-instruct", + name: "Qwen3 Next 80B A3B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 1.4 }, + limit: { context: 262000, output: 16384 }, + }, + "glm-4.6": { + id: "glm-4.6", + name: "Zai GLM-4.6", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.44999999999999996, output: 1.5 }, + limit: { context: 204800, output: 131072 }, + }, + "gpt-5-codex": { + id: "gpt-5-codex", + name: "OpenAI: GPT-5 Codex", + family: "gpt-codex", + attachment: false, + reasoning: false, + tool_call: true, + temperature: false, + knowledge: "2025-01", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.12500000000000003 }, + limit: { context: 400000, output: 128000 }, + }, + "claude-opus-4-1-20250805": { + id: "claude-opus-4-1-20250805", + name: "Anthropic: Claude Opus 4.1 (20250805)", + family: "claude-opus", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "gpt-5.1-chat-latest": { + id: "gpt-5.1-chat-latest", + name: "OpenAI GPT-5.1 Chat", + family: "gpt-codex", + attachment: false, + reasoning: false, + tool_call: true, + temperature: false, + knowledge: "2025-01", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "image"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.12500000000000003 }, + limit: { context: 128000, output: 16384 }, + }, + "claude-haiku-4-5-20251001": { + id: "claude-haiku-4-5-20251001", + name: "Anthropic: Claude 4.5 Haiku (20251001)", + family: "claude-haiku", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-10", + release_date: "2025-10-01", + last_updated: "2025-10-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.09999999999999999, cache_write: 1.25 }, + limit: { context: 200000, output: 8192 }, + }, + "sonar-reasoning": { + id: "sonar-reasoning", + name: "Perplexity Sonar Reasoning", + family: "sonar-reasoning", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2025-01", + release_date: "2025-01-27", + last_updated: "2025-01-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5 }, + limit: { context: 127000, output: 4096 }, + }, + "claude-opus-4": { + id: "claude-opus-4", + name: "Anthropic: Claude Opus 4", + family: "claude-opus", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2025-05-14", + last_updated: "2025-05-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "llama-prompt-guard-2-86m": { + id: "llama-prompt-guard-2-86m", + name: "Meta Llama Prompt Guard 2 86M", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-10", + release_date: "2024-10-01", + last_updated: "2024-10-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.01, output: 0.01 }, + limit: { context: 512, output: 2 }, + }, + "gpt-4.1-nano": { + id: "gpt-4.1-nano", + name: "OpenAI GPT-4.1 Nano", + family: "gpt-nano", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.09999999999999999, output: 0.39999999999999997, cache_read: 0.024999999999999998 }, + limit: { context: 1047576, output: 32768 }, + }, + "qwen3-coder-30b-a3b-instruct": { + id: "qwen3-coder-30b-a3b-instruct", + name: "Qwen3 Coder 30B A3B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-07-31", + last_updated: "2025-07-31", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.09999999999999999, output: 0.3 }, + limit: { context: 262144, output: 262144 }, + }, + "claude-3.5-haiku": { + id: "claude-3.5-haiku", + name: "Anthropic: Claude 3.5 Haiku", + family: "claude-haiku", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.7999999999999999, output: 4, cache_read: 0.08, cache_write: 1 }, + limit: { context: 200000, output: 8192 }, + }, + "grok-3-mini": { + id: "grok-3-mini", + name: "xAI Grok 3 Mini", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-06", + release_date: "2024-06-01", + last_updated: "2024-06-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.5, cache_read: 0.075 }, + limit: { context: 131072, output: 131072 }, + }, + o3: { + id: "o3", + name: "OpenAI o3", + family: "o", + attachment: false, + reasoning: false, + tool_call: true, + temperature: false, + knowledge: "2024-06", + release_date: "2024-06-01", + last_updated: "2024-06-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 200000, output: 100000 }, + }, + "deepseek-v3.2": { + id: "deepseek-v3.2", + name: "DeepSeek V3.2", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-09", + release_date: "2025-09-22", + last_updated: "2025-09-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 0.41 }, + limit: { context: 163840, output: 65536 }, + }, + "gpt-oss-20b": { + id: "gpt-oss-20b", + name: "OpenAI GPT-OSS 20b", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-06", + release_date: "2024-06-01", + last_updated: "2024-06-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.049999999999999996, output: 0.19999999999999998 }, + limit: { context: 131072, output: 131072 }, + }, + "gpt-5-pro": { + id: "gpt-5-pro", + name: "OpenAI: GPT-5 Pro", + family: "gpt-pro", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2025-01", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 120 }, + limit: { context: 128000, output: 32768 }, + }, + "llama-guard-4": { + id: "llama-guard-4", + name: "Meta Llama Guard 4 12B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-01", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.21, output: 0.21 }, + limit: { context: 131072, output: 1024 }, + }, + "gpt-4o": { + id: "gpt-4o", + name: "OpenAI GPT-4o", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-05", + release_date: "2024-05-13", + last_updated: "2024-05-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10, cache_read: 1.25 }, + limit: { context: 128000, output: 16384 }, + }, + "qwen3-vl-235b-a22b-instruct": { + id: "qwen3-vl-235b-a22b-instruct", + name: "Qwen3 VL 235B A22B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-09", + release_date: "2025-09-23", + last_updated: "2025-09-23", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.5 }, + limit: { context: 256000, output: 16384 }, + }, + "gemini-2.5-flash-lite": { + id: "gemini-2.5-flash-lite", + name: "Google Gemini 2.5 Flash Lite", + family: "gemini-flash-lite", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-07-22", + last_updated: "2025-07-22", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { + input: 0.09999999999999999, + output: 0.39999999999999997, + cache_read: 0.024999999999999998, + cache_write: 0.09999999999999999, + }, + limit: { context: 1048576, output: 65535 }, + }, + "qwen3-coder": { + id: "qwen3-coder", + name: "Qwen3 Coder 480B A35B Instruct Turbo", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.22, output: 0.95 }, + limit: { context: 262144, output: 16384 }, + }, + "gpt-5": { + id: "gpt-5", + name: "OpenAI GPT-5", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: true, + temperature: false, + knowledge: "2025-01", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.12500000000000003 }, + limit: { context: 400000, output: 128000 }, + }, + "ernie-4.5-21b-a3b-thinking": { + id: "ernie-4.5-21b-a3b-thinking", + name: "Baidu Ernie 4.5 21B A3B Thinking", + family: "ernie", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2025-03", + release_date: "2025-03-16", + last_updated: "2025-03-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.07, output: 0.28 }, + limit: { context: 128000, output: 8000 }, + }, + "gpt-oss-120b": { + id: "gpt-oss-120b", + name: "OpenAI GPT-OSS 120b", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-06", + release_date: "2024-06-01", + last_updated: "2024-06-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.04, output: 0.16 }, + limit: { context: 131072, output: 131072 }, + }, + "gpt-5-chat-latest": { + id: "gpt-5-chat-latest", + name: "OpenAI GPT-5 Chat Latest", + family: "gpt-codex", + attachment: false, + reasoning: false, + tool_call: true, + temperature: false, + knowledge: "2024-09", + release_date: "2024-09-30", + last_updated: "2024-09-30", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.12500000000000003 }, + limit: { context: 128000, output: 16384 }, + }, + "claude-4.5-sonnet": { + id: "claude-4.5-sonnet", + name: "Anthropic: Claude Sonnet 4.5", + family: "claude-sonnet", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-09", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.30000000000000004, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "deepseek-v3": { + id: "deepseek-v3", + name: "DeepSeek V3", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2024-12-26", + last_updated: "2024-12-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.56, output: 1.68, cache_read: 0.07 }, + limit: { context: 128000, output: 8192 }, + }, + "llama-3.1-8b-instruct": { + id: "llama-3.1-8b-instruct", + name: "Meta Llama 3.1 8B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.02, output: 0.049999999999999996 }, + limit: { context: 16384, output: 16384 }, + }, + "gpt-4.1": { + id: "gpt-4.1", + name: "OpenAI GPT-4.1", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 1047576, output: 32768 }, + }, + "kimi-k2-thinking": { + id: "kimi-k2-thinking", + name: "Kimi K2 Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-11", + release_date: "2025-11-06", + last_updated: "2025-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.48, output: 2 }, + limit: { context: 256000, output: 262144 }, + }, + "gpt-4.1-mini": { + id: "gpt-4.1-mini", + name: "OpenAI GPT-4.1 Mini", + family: "gpt-mini", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.39999999999999997, output: 1.5999999999999999, cache_read: 0.09999999999999999 }, + limit: { context: 1047576, output: 32768 }, + }, + "deepseek-v3.1-terminus": { + id: "deepseek-v3.1-terminus", + name: "DeepSeek V3.1 Terminus", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-09", + release_date: "2025-09-22", + last_updated: "2025-09-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 1, cache_read: 0.21600000000000003 }, + limit: { context: 128000, output: 16384 }, + }, + "gpt-5.1-codex": { + id: "gpt-5.1-codex", + name: "OpenAI: GPT-5.1 Codex", + family: "gpt-codex", + attachment: false, + reasoning: false, + tool_call: true, + temperature: false, + knowledge: "2025-01", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "image"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.12500000000000003 }, + limit: { context: 400000, output: 128000 }, + }, + "grok-3": { + id: "grok-3", + name: "xAI Grok 3", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-06", + release_date: "2024-06-01", + last_updated: "2024-06-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.75 }, + limit: { context: 131072, output: 131072 }, + }, + "grok-4-fast-non-reasoning": { + id: "grok-4-fast-non-reasoning", + name: "xAI Grok 4 Fast Non-Reasoning", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-09", + release_date: "2025-09-19", + last_updated: "2025-09-19", + modalities: { input: ["text", "image", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.19999999999999998, output: 0.5, cache_read: 0.049999999999999996 }, + limit: { context: 2000000, output: 2000000 }, + }, + "sonar-reasoning-pro": { + id: "sonar-reasoning-pro", + name: "Perplexity Sonar Reasoning Pro", + family: "sonar-reasoning", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2025-01", + release_date: "2025-01-27", + last_updated: "2025-01-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8 }, + limit: { context: 127000, output: 4096 }, + }, + }, + }, + "ollama-cloud": { + id: "ollama-cloud", + env: ["OLLAMA_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://ollama.com/v1", + name: "Ollama Cloud", + doc: "https://docs.ollama.com/cloud", + models: { + "minimax-m2.7": { + id: "minimax-m2.7", + name: "minimax-m2.7", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 204800, output: 131072 }, + }, + "gpt-oss:20b": { + id: "gpt-oss:20b", + name: "gpt-oss:20b", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + release_date: "2025-08-05", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 131072, output: 32768 }, + }, + "kimi-k2.5": { + id: "kimi-k2.5", + name: "kimi-k2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + limit: { context: 262144, output: 262144 }, + }, + "glm-4.7": { + id: "glm-4.7", + name: "glm-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + release_date: "2025-12-22", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 202752, output: 131072 }, + }, + "gemma4:31b": { + id: "gemma4:31b", + name: "gemma4:31b", + family: "gemma", + attachment: true, + reasoning: true, + tool_call: true, + knowledge: "2025-01", + release_date: "2026-04-02", + last_updated: "2026-04-08", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + limit: { context: 262144, output: 8192 }, + }, + "gpt-oss:120b": { + id: "gpt-oss:120b", + name: "gpt-oss:120b", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + release_date: "2025-08-05", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 131072, output: 32768 }, + }, + "qwen3.5:397b": { + id: "qwen3.5:397b", + name: "qwen3.5:397b", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + release_date: "2026-02-15", + last_updated: "2026-02-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + limit: { context: 262144, output: 81920 }, + }, + "deepseek-v3.1:671b": { + id: "deepseek-v3.1:671b", + name: "deepseek-v3.1:671b", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + release_date: "2025-08-21", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 163840, output: 163840 }, + }, + "glm-5": { + id: "glm-5", + name: "glm-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 202752, output: 131072 }, + }, + "qwen3-vl:235b-instruct": { + id: "qwen3-vl:235b-instruct", + name: "qwen3-vl:235b-instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + release_date: "2025-09-22", + last_updated: "2026-01-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + limit: { context: 262144, output: 131072 }, + }, + "gemma3:4b": { + id: "gemma3:4b", + name: "gemma3:4b", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: false, + release_date: "2024-12-01", + last_updated: "2026-01-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + limit: { context: 131072, output: 131072 }, + }, + "gemini-3-flash-preview": { + id: "gemini-3-flash-preview", + name: "gemini-3-flash-preview", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + knowledge: "2025-01", + release_date: "2025-12-17", + last_updated: "2026-04-08", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + limit: { context: 1048576, output: 65536 }, + }, + "ministral-3:14b": { + id: "ministral-3:14b", + name: "ministral-3:14b", + family: "ministral", + attachment: true, + reasoning: false, + tool_call: true, + release_date: "2024-12-01", + last_updated: "2026-01-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + limit: { context: 262144, output: 128000 }, + }, + "minimax-m2": { + id: "minimax-m2", + name: "minimax-m2", + family: "minimax", + attachment: false, + reasoning: false, + tool_call: true, + release_date: "2025-10-23", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 204800, output: 128000 }, + }, + "qwen3-next:80b": { + id: "qwen3-next:80b", + name: "qwen3-next:80b", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + release_date: "2025-09-15", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 262144, output: 32768 }, + }, + "qwen3-vl:235b": { + id: "qwen3-vl:235b", + name: "qwen3-vl:235b", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + release_date: "2025-09-22", + last_updated: "2026-01-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + limit: { context: 262144, output: 32768 }, + }, + "rnj-1:8b": { + id: "rnj-1:8b", + name: "rnj-1:8b", + family: "rnj", + attachment: false, + reasoning: false, + tool_call: true, + release_date: "2025-12-06", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 32768, output: 4096 }, + }, + "minimax-m2.1": { + id: "minimax-m2.1", + name: "minimax-m2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + release_date: "2025-12-23", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 204800, output: 131072 }, + }, + "glm-5.1": { + id: "glm-5.1", + name: "glm-5.1", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + release_date: "2026-03-27", + last_updated: "2026-04-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 202752, output: 131072 }, + }, + "mistral-large-3:675b": { + id: "mistral-large-3:675b", + name: "mistral-large-3:675b", + family: "mistral-large", + attachment: true, + reasoning: false, + tool_call: true, + release_date: "2025-12-02", + last_updated: "2026-01-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + limit: { context: 262144, output: 262144 }, + }, + "ministral-3:8b": { + id: "ministral-3:8b", + name: "ministral-3:8b", + family: "ministral", + attachment: true, + reasoning: false, + tool_call: true, + release_date: "2024-12-01", + last_updated: "2026-01-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + limit: { context: 262144, output: 128000 }, + }, + "gemma3:12b": { + id: "gemma3:12b", + name: "gemma3:12b", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: false, + release_date: "2024-12-01", + last_updated: "2026-01-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + limit: { context: 131072, output: 131072 }, + }, + "qwen3-coder:480b": { + id: "qwen3-coder:480b", + name: "qwen3-coder:480b", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + release_date: "2025-07-22", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 262144, output: 65536 }, + }, + "nemotron-3-nano:30b": { + id: "nemotron-3-nano:30b", + name: "nemotron-3-nano:30b", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + release_date: "2025-12-15", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 1048576, output: 131072 }, + }, + "glm-4.6": { + id: "glm-4.6", + name: "glm-4.6", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + release_date: "2025-09-29", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 202752, output: 131072 }, + }, + "ministral-3:3b": { + id: "ministral-3:3b", + name: "ministral-3:3b", + family: "ministral", + attachment: true, + reasoning: false, + tool_call: true, + release_date: "2024-10-22", + last_updated: "2026-01-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + limit: { context: 262144, output: 128000 }, + }, + "gemma3:27b": { + id: "gemma3:27b", + name: "gemma3:27b", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: false, + release_date: "2025-07-27", + last_updated: "2026-01-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + limit: { context: 131072, output: 131072 }, + }, + "devstral-2:123b": { + id: "devstral-2:123b", + name: "devstral-2:123b", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: true, + release_date: "2025-12-09", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 262144, output: 262144 }, + }, + "cogito-2.1:671b": { + id: "cogito-2.1:671b", + name: "cogito-2.1:671b", + family: "cogito", + attachment: false, + reasoning: true, + tool_call: true, + release_date: "2025-11-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 163840, output: 32000 }, + }, + "qwen3-coder-next": { + id: "qwen3-coder-next", + name: "qwen3-coder-next", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + release_date: "2026-02-02", + last_updated: "2026-02-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 262144, output: 65536 }, + }, + "nemotron-3-super": { + id: "nemotron-3-super", + name: "nemotron-3-super", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + release_date: "2026-03-11", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 262144, output: 65536 }, + }, + "minimax-m2.5": { + id: "minimax-m2.5", + name: "minimax-m2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + knowledge: "2025-01", + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 204800, output: 131072 }, + }, + "deepseek-v3.2": { + id: "deepseek-v3.2", + name: "deepseek-v3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + release_date: "2025-06-15", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 163840, output: 65536 }, + }, + "kimi-k2-thinking": { + id: "kimi-k2-thinking", + name: "kimi-k2-thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + knowledge: "2024-08", + release_date: "2025-11-06", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 262144, output: 262144 }, + }, + "devstral-small-2:24b": { + id: "devstral-small-2:24b", + name: "devstral-small-2:24b", + family: "devstral", + attachment: true, + reasoning: false, + tool_call: true, + release_date: "2025-12-09", + last_updated: "2026-01-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + limit: { context: 262144, output: 262144 }, + }, + "kimi-k2:1t": { + id: "kimi-k2:1t", + name: "kimi-k2:1t", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + knowledge: "2024-10", + release_date: "2025-07-11", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 262144, output: 262144 }, + }, + }, + }, + "zai-coding-plan": { + id: "zai-coding-plan", + env: ["ZHIPU_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.z.ai/api/coding/paas/v4", + name: "Z.AI Coding Plan", + doc: "https://docs.z.ai/devpack/overview", + models: { + "glm-5v-turbo": { + id: "glm-5v-turbo", + name: "glm-5v-turbo", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-04-01", + last_updated: "2026-04-01", + modalities: { input: ["text", "image", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 200000, output: 131072 }, + }, + "glm-4.7": { + id: "glm-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "glm-5": { + id: "glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "glm-4.7-flashx": { + id: "glm-4.7-flashx", + name: "GLM-4.7-FlashX", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.4, cache_read: 0.01, cache_write: 0 }, + limit: { context: 200000, output: 131072 }, + }, + "glm-5.1": { + id: "glm-5.1", + name: "GLM-5.1", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-03-27", + last_updated: "2026-03-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 200000, output: 131072 }, + }, + "glm-4.5": { + id: "glm-4.5", + name: "GLM-4.5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 131072, output: 98304 }, + }, + "glm-4.5-air": { + id: "glm-4.5-air", + name: "GLM-4.5-Air", + family: "glm-air", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 131072, output: 98304 }, + }, + "glm-5-turbo": { + id: "glm-5-turbo", + name: "GLM-5-Turbo", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-03-16", + last_updated: "2026-03-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 200000, output: 131072 }, + }, + "glm-4.5v": { + id: "glm-4.5v", + name: "GLM-4.5V", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-08-11", + last_updated: "2025-08-11", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 64000, output: 16384 }, + }, + "glm-4.6": { + id: "glm-4.6", + name: "GLM-4.6", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "glm-4.6v": { + id: "glm-4.6v", + name: "GLM-4.6V", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-08", + last_updated: "2025-12-08", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 32768 }, + }, + "glm-4.5-flash": { + id: "glm-4.5-flash", + name: "GLM-4.5-Flash", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 131072, output: 98304 }, + }, + "glm-4.7-flash": { + id: "glm-4.7-flash", + name: "GLM-4.7-Flash", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 200000, output: 131072 }, + }, + }, + }, + "amazon-bedrock": { + id: "amazon-bedrock", + env: ["AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY", "AWS_REGION", "AWS_BEARER_TOKEN_BEDROCK"], + npm: "@ai-sdk/amazon-bedrock", + name: "Amazon Bedrock", + doc: "https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html", + models: { + "anthropic.claude-opus-4-1-20250805-v1:0": { + id: "anthropic.claude-opus-4-1-20250805-v1:0", + name: "Claude Opus 4.1", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "anthropic.claude-3-5-sonnet-20241022-v2:0": { + id: "anthropic.claude-3-5-sonnet-20241022-v2:0", + name: "Claude Sonnet 3.5 v2", + family: "claude-sonnet", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 8192 }, + }, + "openai.gpt-oss-safeguard-120b": { + id: "openai.gpt-oss-safeguard-120b", + name: "GPT OSS Safeguard 120B", + family: "gpt-oss", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 128000, output: 4096 }, + }, + "nvidia.nemotron-nano-3-30b": { + id: "nvidia.nemotron-nano-3-30b", + name: "NVIDIA Nemotron Nano 3 30B", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.06, output: 0.24 }, + limit: { context: 128000, output: 4096 }, + }, + "meta.llama3-2-90b-instruct-v1:0": { + id: "meta.llama3-2-90b-instruct-v1:0", + name: "Llama 3.2 90B Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-09-25", + last_updated: "2024-09-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.72, output: 0.72 }, + limit: { context: 128000, output: 4096 }, + }, + "nvidia.nemotron-super-3-120b": { + id: "nvidia.nemotron-super-3-120b", + name: "NVIDIA Nemotron 3 Super 120B A12B", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-11", + last_updated: "2026-03-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.65 }, + limit: { context: 262144, output: 131072 }, + }, + "writer.palmyra-x5-v1:0": { + id: "writer.palmyra-x5-v1:0", + name: "Palmyra X5", + family: "palmyra", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-04-28", + last_updated: "2025-04-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 6 }, + limit: { context: 1040000, output: 8192 }, + }, + "mistral.ministral-3-8b-instruct": { + id: "mistral.ministral-3-8b-instruct", + name: "Ministral 3 8B", + family: "ministral", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.15 }, + limit: { context: 128000, output: 4096 }, + }, + "anthropic.claude-3-5-sonnet-20240620-v1:0": { + id: "anthropic.claude-3-5-sonnet-20240620-v1:0", + name: "Claude Sonnet 3.5", + family: "claude-sonnet", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-06-20", + last_updated: "2024-06-20", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 8192 }, + }, + "mistral.ministral-3-3b-instruct": { + id: "mistral.ministral-3-3b-instruct", + name: "Ministral 3 3B", + family: "ministral", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-02", + last_updated: "2025-12-02", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 256000, output: 8192 }, + }, + "eu.anthropic.claude-opus-4-6-v1": { + id: "eu.anthropic.claude-opus-4-6-v1", + name: "Claude Opus 4.6 (EU)", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-05", + release_date: "2026-02-05", + last_updated: "2026-03-18", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 1000000, output: 128000 }, + }, + "amazon.nova-premier-v1:0": { + id: "amazon.nova-premier-v1:0", + name: "Nova Premier", + family: "nova", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12-03", + last_updated: "2024-12-03", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 12.5 }, + limit: { context: 1000000, output: 16384 }, + }, + "eu.anthropic.claude-sonnet-4-20250514-v1:0": { + id: "eu.anthropic.claude-sonnet-4-20250514-v1:0", + name: "Claude Sonnet 4 (EU)", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic.claude-sonnet-4-5-20250929-v1:0": { + id: "anthropic.claude-sonnet-4-5-20250929-v1:0", + name: "Claude Sonnet 4.5", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "mistral.devstral-2-123b": { + id: "mistral.devstral-2-123b", + name: "Devstral 2 123B", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2026-02-17", + last_updated: "2026-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 2 }, + limit: { context: 256000, output: 8192 }, + }, + "us.anthropic.claude-opus-4-20250514-v1:0": { + id: "us.anthropic.claude-opus-4-20250514-v1:0", + name: "Claude Opus 4 (US)", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "global.anthropic.claude-opus-4-5-20251101-v1:0": { + id: "global.anthropic.claude-opus-4-5-20251101-v1:0", + name: "Claude Opus 4.5 (Global)", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-24", + last_updated: "2025-08-01", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 64000 }, + }, + "mistral.voxtral-small-24b-2507": { + id: "mistral.voxtral-small-24b-2507", + name: "Voxtral Small 24B 2507", + family: "mistral", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-01", + last_updated: "2025-07-01", + modalities: { input: ["text", "audio"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.35 }, + limit: { context: 32000, output: 8192 }, + }, + "google.gemma-3-12b-it": { + id: "google.gemma-3-12b-it", + name: "Google Gemma 3 12B", + family: "gemma", attachment: false, reasoning: false, tool_call: false, structured_output: true, temperature: true, - release_date: "2025-01-06", - last_updated: "2026-01-10", + knowledge: "2024-12", + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.049999999999999996, output: 0.09999999999999999 }, + limit: { context: 131072, output: 8192 }, + }, + "amazon.nova-pro-v1:0": { + id: "amazon.nova-pro-v1:0", + name: "Nova Pro", + family: "nova-pro", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12-03", + last_updated: "2024-12-03", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 3.2, cache_read: 0.2 }, + limit: { context: 300000, output: 8192 }, + }, + "anthropic.claude-haiku-4-5-20251001-v1:0": { + id: "anthropic.claude-haiku-4-5-20251001-v1:0", + name: "Claude Haiku 4.5", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-02-28", + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 200000, output: 64000 }, + }, + "minimax.minimax-m2": { + id: "minimax.minimax-m2", + name: "MiniMax M2", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-10-27", + last_updated: "2025-10-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 204608, output: 128000 }, + }, + "mistral.pixtral-large-2502-v1:0": { + id: "mistral.pixtral-large-2502-v1:0", + name: "Pixtral Large (25.02)", + family: "mistral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-04-08", + last_updated: "2025-04-08", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6 }, + limit: { context: 128000, output: 8192 }, + }, + "meta.llama4-maverick-17b-instruct-v1:0": { + id: "meta.llama4-maverick-17b-instruct-v1:0", + name: "Llama 4 Maverick 17B Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-04-05", + last_updated: "2025-04-05", modalities: { input: ["text", "image"], output: ["text"] }, open_weights: true, - cost: { input: 0.1, output: 0.39 }, + cost: { input: 0.24, output: 0.97 }, + limit: { context: 1000000, output: 16384 }, + }, + "us.anthropic.claude-sonnet-4-5-20250929-v1:0": { + id: "us.anthropic.claude-sonnet-4-5-20250929-v1:0", + name: "Claude Sonnet 4.5 (US)", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "us.anthropic.claude-haiku-4-5-20251001-v1:0": { + id: "us.anthropic.claude-haiku-4-5-20251001-v1:0", + name: "Claude Haiku 4.5 (US)", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-02-28", + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 200000, output: 64000 }, + }, + "amazon.nova-micro-v1:0": { + id: "amazon.nova-micro-v1:0", + name: "Nova Micro", + family: "nova-micro", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12-03", + last_updated: "2024-12-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.035, output: 0.14, cache_read: 0.00875 }, + limit: { context: 128000, output: 8192 }, + }, + "global.anthropic.claude-sonnet-4-5-20250929-v1:0": { + id: "global.anthropic.claude-sonnet-4-5-20250929-v1:0", + name: "Claude Sonnet 4.5 (Global)", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic.claude-sonnet-4-6": { + id: "anthropic.claude-sonnet-4-6", + name: "Claude Sonnet 4.6", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2026-02-17", + last_updated: "2026-03-18", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 1000000, output: 64000 }, + }, + "openai.gpt-oss-20b-1:0": { + id: "openai.gpt-oss-20b-1:0", + name: "gpt-oss-20b", + family: "gpt-oss", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.07, output: 0.3 }, + limit: { context: 128000, output: 4096 }, + }, + "us.anthropic.claude-sonnet-4-20250514-v1:0": { + id: "us.anthropic.claude-sonnet-4-20250514-v1:0", + name: "Claude Sonnet 4 (US)", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "zai.glm-5": { + id: "zai.glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3.2 }, + limit: { context: 202752, output: 101376 }, + }, + "qwen.qwen3-32b-v1:0": { + id: "qwen.qwen3-32b-v1:0", + name: "Qwen3 32B (dense)", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-09-18", + last_updated: "2025-09-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 16384, output: 16384 }, + }, + "deepseek.v3.2": { + id: "deepseek.v3.2", + name: "DeepSeek-V3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2026-02-06", + last_updated: "2026-02-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.62, output: 1.85 }, + limit: { context: 163840, output: 81920 }, + }, + "eu.anthropic.claude-haiku-4-5-20251001-v1:0": { + id: "eu.anthropic.claude-haiku-4-5-20251001-v1:0", + name: "Claude Haiku 4.5 (EU)", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-02-28", + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 200000, output: 64000 }, + }, + "zai.glm-4.7-flash": { + id: "zai.glm-4.7-flash", + name: "GLM-4.7-Flash", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.4 }, + limit: { context: 200000, output: 131072 }, + }, + "amazon.nova-2-lite-v1:0": { + id: "amazon.nova-2-lite-v1:0", + name: "Nova 2 Lite", + family: "nova", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.33, output: 2.75 }, + limit: { context: 128000, output: 4096 }, + }, + "anthropic.claude-opus-4-5-20251101-v1:0": { + id: "anthropic.claude-opus-4-5-20251101-v1:0", + name: "Claude Opus 4.5", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-24", + last_updated: "2025-08-01", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 64000 }, + }, + "qwen.qwen3-coder-480b-a35b-v1:0": { + id: "qwen.qwen3-coder-480b-a35b-v1:0", + name: "Qwen3 Coder 480B A35B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-09-18", + last_updated: "2025-09-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.22, output: 1.8 }, + limit: { context: 131072, output: 65536 }, + }, + "meta.llama3-2-1b-instruct-v1:0": { + id: "meta.llama3-2-1b-instruct-v1:0", + name: "Llama 3.2 1B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-09-25", + last_updated: "2024-09-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 131000, output: 4096 }, + }, + "amazon.nova-lite-v1:0": { + id: "amazon.nova-lite-v1:0", + name: "Nova Lite", + family: "nova-lite", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12-03", + last_updated: "2024-12-03", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.06, output: 0.24, cache_read: 0.015 }, + limit: { context: 300000, output: 8192 }, + }, + "meta.llama3-1-8b-instruct-v1:0": { + id: "meta.llama3-1-8b-instruct-v1:0", + name: "Llama 3.1 8B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.22, output: 0.22 }, + limit: { context: 128000, output: 4096 }, + }, + "global.anthropic.claude-sonnet-4-6": { + id: "global.anthropic.claude-sonnet-4-6", + name: "Claude Sonnet 4.6 (Global)", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2026-02-17", + last_updated: "2026-03-18", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 1000000, output: 64000 }, + }, + "us.anthropic.claude-sonnet-4-6": { + id: "us.anthropic.claude-sonnet-4-6", + name: "Claude Sonnet 4.6 (US)", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2026-02-17", + last_updated: "2026-03-18", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 1000000, output: 64000 }, + }, + "global.anthropic.claude-opus-4-6-v1": { + id: "global.anthropic.claude-opus-4-6-v1", + name: "Claude Opus 4.6 (Global)", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-05", + release_date: "2026-02-05", + last_updated: "2026-03-18", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 1000000, output: 128000 }, + }, + "google.gemma-3-27b-it": { + id: "google.gemma-3-27b-it", + name: "Google Gemma 3 27B Instruct", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-07-27", + last_updated: "2025-07-27", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.12, output: 0.2 }, + limit: { context: 202752, output: 8192 }, + }, + "global.anthropic.claude-haiku-4-5-20251001-v1:0": { + id: "global.anthropic.claude-haiku-4-5-20251001-v1:0", + name: "Claude Haiku 4.5 (Global)", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-02-28", + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 200000, output: 64000 }, + }, + "google.gemma-3-4b-it": { + id: "google.gemma-3-4b-it", + name: "Gemma 3 4B IT", + family: "gemma", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.04, output: 0.08 }, + limit: { context: 128000, output: 4096 }, + }, + "us.anthropic.claude-opus-4-6-v1": { + id: "us.anthropic.claude-opus-4-6-v1", + name: "Claude Opus 4.6 (US)", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-05", + release_date: "2026-02-05", + last_updated: "2026-03-18", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 1000000, output: 128000 }, + }, + "meta.llama4-scout-17b-instruct-v1:0": { + id: "meta.llama4-scout-17b-instruct-v1:0", + name: "Llama 4 Scout 17B Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.17, output: 0.66 }, + limit: { context: 3500000, output: 16384 }, + }, + "us.anthropic.claude-opus-4-1-20250805-v1:0": { + id: "us.anthropic.claude-opus-4-1-20250805-v1:0", + name: "Claude Opus 4.1 (US)", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "deepseek.v3-v1:0": { + id: "deepseek.v3-v1:0", + name: "DeepSeek-V3.1", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-09-18", + last_updated: "2025-09-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.58, output: 1.68 }, + limit: { context: 163840, output: 81920 }, + }, + "mistral.magistral-small-2509": { + id: "mistral.magistral-small-2509", + name: "Magistral Small 1.2", + family: "magistral", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-02", + last_updated: "2025-12-02", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 1.5 }, + limit: { context: 128000, output: 40000 }, + }, + "qwen.qwen3-next-80b-a3b": { + id: "qwen.qwen3-next-80b-a3b", + name: "Qwen/Qwen3-Next-80B-A3B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 1.4 }, + limit: { context: 262000, output: 262000 }, + }, + "zai.glm-4.7": { + id: "zai.glm-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2 }, + limit: { context: 204800, output: 131072 }, + }, + "moonshot.kimi-k2-thinking": { + id: "moonshot.kimi-k2-thinking", + name: "Kimi K2 Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: true, + structured_output: true, + temperature: true, + release_date: "2025-12-02", + last_updated: "2025-12-02", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5 }, + limit: { context: 256000, output: 256000 }, + }, + "us.anthropic.claude-opus-4-5-20251101-v1:0": { + id: "us.anthropic.claude-opus-4-5-20251101-v1:0", + name: "Claude Opus 4.5 (US)", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-24", + last_updated: "2025-08-01", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 64000 }, + }, + "mistral.ministral-3-14b-instruct": { + id: "mistral.ministral-3-14b-instruct", + name: "Ministral 14B 3.0", + family: "ministral", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 128000, output: 4096 }, + }, + "anthropic.claude-3-haiku-20240307-v1:0": { + id: "anthropic.claude-3-haiku-20240307-v1:0", + name: "Claude Haiku 3", + family: "claude-haiku", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-02", + release_date: "2024-03-13", + last_updated: "2024-03-13", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1.25 }, + limit: { context: 200000, output: 4096 }, + }, + "global.anthropic.claude-sonnet-4-20250514-v1:0": { + id: "global.anthropic.claude-sonnet-4-20250514-v1:0", + name: "Claude Sonnet 4 (Global)", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "deepseek.r1-v1:0": { + id: "deepseek.r1-v1:0", + name: "DeepSeek-R1", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-01-20", + last_updated: "2025-05-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.35, output: 5.4 }, + limit: { context: 128000, output: 32768 }, + }, + "meta.llama3-1-405b-instruct-v1:0": { + id: "meta.llama3-1-405b-instruct-v1:0", + name: "Llama 3.1 405B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.4, output: 2.4 }, + limit: { context: 128000, output: 4096 }, + }, + "mistral.voxtral-mini-3b-2507": { + id: "mistral.voxtral-mini-3b-2507", + name: "Voxtral Mini 3B 2507", + family: "mistral", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["audio", "text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.04, output: 0.04 }, + limit: { context: 128000, output: 4096 }, + }, + "eu.anthropic.claude-sonnet-4-6": { + id: "eu.anthropic.claude-sonnet-4-6", + name: "Claude Sonnet 4.6 (EU)", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2026-02-17", + last_updated: "2026-03-18", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 1000000, output: 64000 }, + }, + "openai.gpt-oss-120b-1:0": { + id: "openai.gpt-oss-120b-1:0", + name: "gpt-oss-120b", + family: "gpt-oss", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 128000, output: 4096 }, + }, + "nvidia.nemotron-nano-12b-v2": { + id: "nvidia.nemotron-nano-12b-v2", + name: "NVIDIA Nemotron Nano 12B v2 VL BF16", + family: "nemotron", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.6 }, + limit: { context: 128000, output: 4096 }, + }, + "minimax.minimax-m2.5": { + id: "minimax.minimax-m2.5", + name: "MiniMax M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 196608, output: 98304 }, + }, + "meta.llama3-3-70b-instruct-v1:0": { + id: "meta.llama3-3-70b-instruct-v1:0", + name: "Llama 3.3 70B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.72, output: 0.72 }, + limit: { context: 128000, output: 4096 }, + }, + "meta.llama3-1-70b-instruct-v1:0": { + id: "meta.llama3-1-70b-instruct-v1:0", + name: "Llama 3.1 70B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.72, output: 0.72 }, + limit: { context: 128000, output: 4096 }, + }, + "meta.llama3-2-3b-instruct-v1:0": { + id: "meta.llama3-2-3b-instruct-v1:0", + name: "Llama 3.2 3B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-09-25", + last_updated: "2024-09-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.15 }, + limit: { context: 131000, output: 4096 }, + }, + "eu.anthropic.claude-sonnet-4-5-20250929-v1:0": { + id: "eu.anthropic.claude-sonnet-4-5-20250929-v1:0", + name: "Claude Sonnet 4.5 (EU)", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic.claude-opus-4-20250514-v1:0": { + id: "anthropic.claude-opus-4-20250514-v1:0", + name: "Claude Opus 4", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "eu.anthropic.claude-opus-4-5-20251101-v1:0": { + id: "eu.anthropic.claude-opus-4-5-20251101-v1:0", + name: "Claude Opus 4.5 (EU)", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-24", + last_updated: "2025-08-01", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic.claude-sonnet-4-20250514-v1:0": { + id: "anthropic.claude-sonnet-4-20250514-v1:0", + name: "Claude Sonnet 4", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "meta.llama3-2-11b-instruct-v1:0": { + id: "meta.llama3-2-11b-instruct-v1:0", + name: "Llama 3.2 11B Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-09-25", + last_updated: "2024-09-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.16, output: 0.16 }, + limit: { context: 128000, output: 4096 }, + }, + "moonshotai.kimi-k2.5": { + id: "moonshotai.kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + release_date: "2026-02-06", + last_updated: "2026-02-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3 }, + limit: { context: 256000, output: 256000 }, + }, + "openai.gpt-oss-safeguard-20b": { + id: "openai.gpt-oss-safeguard-20b", + name: "GPT OSS Safeguard 20B", + family: "gpt-oss", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.07, output: 0.2 }, + limit: { context: 128000, output: 4096 }, + }, + "anthropic.claude-opus-4-6-v1": { + id: "anthropic.claude-opus-4-6-v1", + name: "Claude Opus 4.6", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-05", + release_date: "2026-02-05", + last_updated: "2026-03-18", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 1000000, output: 128000 }, + }, + "qwen.qwen3-coder-30b-a3b-v1:0": { + id: "qwen.qwen3-coder-30b-a3b-v1:0", + name: "Qwen3 Coder 30B A3B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-09-18", + last_updated: "2025-09-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 262144, output: 131072 }, + }, + "minimax.minimax-m2.1": { + id: "minimax.minimax-m2.1", + name: "MiniMax M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 204800, output: 131072 }, + }, + "qwen.qwen3-vl-235b-a22b": { + id: "qwen.qwen3-vl-235b-a22b", + name: "Qwen/Qwen3-VL-235B-A22B-Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-04", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.5 }, + limit: { context: 262000, output: 262000 }, + }, + "qwen.qwen3-coder-next": { + id: "qwen.qwen3-coder-next", + name: "Qwen3 Coder Next", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-06", + last_updated: "2026-02-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.22, output: 1.8 }, + limit: { context: 131072, output: 65536 }, + }, + "anthropic.claude-3-5-haiku-20241022-v1:0": { + id: "anthropic.claude-3-5-haiku-20241022-v1:0", + name: "Claude Haiku 3.5", + family: "claude-haiku", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, + limit: { context: 200000, output: 8192 }, + }, + "nvidia.nemotron-nano-9b-v2": { + id: "nvidia.nemotron-nano-9b-v2", + name: "NVIDIA Nemotron Nano 9B v2", + family: "nemotron", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.06, output: 0.23 }, + limit: { context: 128000, output: 4096 }, + }, + "mistral.mistral-large-3-675b-instruct": { + id: "mistral.mistral-large-3-675b-instruct", + name: "Mistral Large 3", + family: "mistral", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-02", + last_updated: "2025-12-02", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 1.5 }, + limit: { context: 256000, output: 8192 }, + }, + "qwen.qwen3-235b-a22b-2507-v1:0": { + id: "qwen.qwen3-235b-a22b-2507-v1:0", + name: "Qwen3 235B A22B 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-09-18", + last_updated: "2025-09-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.22, output: 0.88 }, + limit: { context: 262144, output: 131072 }, + }, + "anthropic.claude-3-7-sonnet-20250219-v1:0": { + id: "anthropic.claude-3-7-sonnet-20250219-v1:0", + name: "Claude Sonnet 3.7", + family: "claude-sonnet", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 8192 }, + }, + "writer.palmyra-x4-v1:0": { + id: "writer.palmyra-x4-v1:0", + name: "Palmyra X4", + family: "palmyra", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-04-28", + last_updated: "2025-04-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10 }, + limit: { context: 122880, output: 8192 }, + }, + }, + }, + "the-grid-ai": { + id: "the-grid-ai", + env: ["THEGRIDAI_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.thegrid.ai/v1", + name: "The Grid AI", + doc: "https://thegrid.ai/docs", + models: { + "text-prime": { + id: "text-prime", + name: "Text Prime", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-26", + last_updated: "2026-02-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 30000 }, + status: "beta", + }, + "text-standard": { + id: "text-standard", + name: "Text Standard", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-26", + last_updated: "2026-02-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 16000 }, + status: "beta", + }, + "text-max": { + id: "text-max", + name: "Text Max", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-03-24", + last_updated: "2026-03-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 1000000, output: 128000 }, + status: "beta", + }, + }, + }, + baseten: { + id: "baseten", + env: ["BASETEN_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://inference.baseten.co/v1", + name: "Baseten", + doc: "https://docs.baseten.co/development/model-apis/overview", + models: { + "zai-org/GLM-4.7": { + id: "zai-org/GLM-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2 }, + limit: { context: 204800, output: 131072 }, + }, + "zai-org/GLM-5": { + id: "zai-org/GLM-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2026-01", + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.95, output: 3.15 }, + limit: { context: 202752, output: 131072 }, + }, + "zai-org/GLM-4.6": { + id: "zai-org/GLM-4.6", + name: "GLM 4.6", + family: "glm", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-08-31", + release_date: "2025-09-16", + last_updated: "2025-09-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2 }, + limit: { context: 200000, output: 200000 }, + }, + "nvidia/Nemotron-120B-A12B": { + id: "nvidia/Nemotron-120B-A12B", + name: "Nemotron 3 Super", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2026-02", + release_date: "2026-03-11", + last_updated: "2026-03-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.75 }, + limit: { context: 262144, output: 32678 }, + }, + "deepseek-ai/DeepSeek-V3.1": { + id: "deepseek-ai/DeepSeek-V3.1", + name: "DeepSeek V3.1", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-25", + last_updated: "2025-08-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 1.5 }, + limit: { context: 164000, output: 131000 }, + }, + "deepseek-ai/DeepSeek-V3-0324": { + id: "deepseek-ai/DeepSeek-V3-0324", + name: "DeepSeek V3 0324", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-03-24", + last_updated: "2025-03-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.77, output: 0.77 }, + limit: { context: 164000, output: 131000 }, + }, + "deepseek-ai/DeepSeek-V3.2": { + id: "deepseek-ai/DeepSeek-V3.2", + name: "DeepSeek V3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-10", + release_date: "2025-12-01", + last_updated: "2026-03-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.45 }, + limit: { context: 163800, output: 131100 }, + status: "deprecated", + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "GPT OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.5 }, + limit: { context: 128000, output: 128000 }, + }, + "moonshotai/Kimi-K2-Thinking": { + id: "moonshotai/Kimi-K2-Thinking", + name: "Kimi K2 Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-08", + release_date: "2025-11-06", + last_updated: "2026-03-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5 }, + limit: { context: 262144, output: 262144 }, + status: "deprecated", + }, + "moonshotai/Kimi-K2-Instruct-0905": { + id: "moonshotai/Kimi-K2-Instruct-0905", + name: "Kimi K2 Instruct 0905", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2025-09-05", + last_updated: "2026-03-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5 }, + limit: { context: 262144, output: 262144 }, + status: "deprecated", + }, + "moonshotai/Kimi-K2.5": { + id: "moonshotai/Kimi-K2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-12", + release_date: "2026-01-30", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3 }, + limit: { context: 262144, output: 8192 }, + }, + "MiniMaxAI/MiniMax-M2.5": { + id: "MiniMaxAI/MiniMax-M2.5", + name: "MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2026-01", + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 204000, output: 204000 }, + }, + }, + }, + "zhipuai-coding-plan": { + id: "zhipuai-coding-plan", + env: ["ZHIPU_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://open.bigmodel.cn/api/coding/paas/v4", + name: "Zhipu AI Coding Plan", + doc: "https://docs.bigmodel.cn/cn/coding-plan/overview", + models: { + "glm-5v-turbo": { + id: "glm-5v-turbo", + name: "glm-5v-turbo", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-04-01", + last_updated: "2026-04-01", + modalities: { input: ["text", "image", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 200000, output: 131072 }, + }, + "glm-5.1": { + id: "glm-5.1", + name: "GLM-5.1", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-03-27", + last_updated: "2026-03-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 200000, output: 131072 }, + }, + "glm-4.6v-flash": { + id: "glm-4.6v-flash", + name: "GLM-4.6V-Flash", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-08", + last_updated: "2025-12-08", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 32768 }, + }, + "glm-4.7-flash": { + id: "glm-4.7-flash", + name: "GLM-4.7-Flash", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 200000, output: 131072 }, + }, + "glm-4.5-flash": { + id: "glm-4.5-flash", + name: "GLM-4.5-Flash", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 131072, output: 98304 }, + }, + "glm-4.6v": { + id: "glm-4.6v", + name: "GLM-4.6V", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-08", + last_updated: "2025-12-08", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 32768 }, + }, + "glm-4.6": { + id: "glm-4.6", + name: "GLM-4.6", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "glm-4.5v": { + id: "glm-4.5v", + name: "GLM-4.5V", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-08-11", + last_updated: "2025-08-11", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 64000, output: 16384 }, + }, + "glm-5-turbo": { + id: "glm-5-turbo", + name: "GLM-5-Turbo", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-03-16", + last_updated: "2026-03-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 200000, output: 131072 }, + }, + "glm-4.5-air": { + id: "glm-4.5-air", + name: "GLM-4.5-Air", + family: "glm-air", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 131072, output: 98304 }, + }, + "glm-4.5": { + id: "glm-4.5", + name: "GLM-4.5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 131072, output: 98304 }, + }, + "glm-4.7-flashx": { + id: "glm-4.7-flashx", + name: "GLM-4.7-FlashX", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.4, cache_read: 0.01, cache_write: 0 }, + limit: { context: 200000, output: 131072 }, + }, + "glm-5": { + id: "glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "glm-4.7": { + id: "glm-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + }, + }, + "alibaba-coding-plan": { + id: "alibaba-coding-plan", + env: ["ALIBABA_CODING_PLAN_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://coding-intl.dashscope.aliyuncs.com/v1", + name: "Alibaba Coding Plan", + doc: "https://www.alibabacloud.com/help/en/model-studio/coding-plan", + models: { + "qwen3-coder-plus": { + id: "qwen3-coder-plus", + name: "Qwen3 Coder Plus", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 1000000, output: 65536 }, + }, + "kimi-k2.5": { + id: "kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 262144, output: 32768 }, + }, + "glm-4.7": { + id: "glm-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 202752, output: 16384 }, + }, + "glm-5": { + id: "glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 202752, output: 16384 }, + }, + "MiniMax-M2.5": { + id: "MiniMax-M2.5", + name: "MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 196608, input: 196601, output: 24576 }, + }, + "qwen3.6-plus": { + id: "qwen3.6-plus", + name: "Qwen3.6 Plus", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-04-02", + last_updated: "2026-04-02", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 1000000, output: 65536 }, + }, + "qwen3-max-2026-01-23": { + id: "qwen3-max-2026-01-23", + name: "Qwen3 Max", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-01-23", + last_updated: "2026-01-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 262144, output: 32768 }, + }, + "qwen3-coder-next": { + id: "qwen3-coder-next", + name: "Qwen3 Coder Next", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-03", + last_updated: "2026-02-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen3.5-plus": { + id: "qwen3.5-plus", + name: "Qwen3.5 Plus", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02-16", + last_updated: "2026-02-16", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 1000000, output: 65536 }, + }, + }, + }, + venice: { + id: "venice", + env: ["VENICE_API_KEY"], + npm: "venice-ai-sdk-provider", + name: "Venice AI", + doc: "https://docs.venice.ai", + models: { + "openai-gpt-4o-mini-2024-07-18": { + id: "openai-gpt-4o-mini-2024-07-18", + name: "GPT-4o Mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-28", + last_updated: "2026-03-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1875, output: 0.75, cache_read: 0.09375 }, + limit: { context: 128000, output: 16384 }, + }, + "qwen3-next-80b": { + id: "qwen3-next-80b", + name: "Qwen 3 Next 80b", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-04-29", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.35, output: 1.9 }, + limit: { context: 256000, output: 16384 }, + }, + "qwen3-235b-a22b-instruct-2507": { + id: "qwen3-235b-a22b-instruct-2507", + name: "Qwen 3 235B A22B Instruct 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-04-29", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.75 }, + limit: { context: 128000, output: 16384 }, + }, + "grok-41-fast": { + id: "grok-41-fast", + name: "Grok 4.1 Fast", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-12-01", + last_updated: "2026-04-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.23, output: 0.57, cache_read: 0.06 }, + limit: { context: 1000000, output: 30000 }, + }, + "claude-sonnet-4-6": { + id: "claude-sonnet-4-6", + name: "Claude Sonnet 4.6", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-17", + last_updated: "2026-03-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3.6, output: 18, cache_read: 0.36, cache_write: 4.5 }, + limit: { context: 1000000, output: 64000 }, + }, + "nvidia-nemotron-cascade-2-30b-a3b": { + id: "nvidia-nemotron-cascade-2-30b-a3b", + name: "Nemotron Cascade 2 30B A3B", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-03-24", + last_updated: "2026-04-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.14, output: 0.8 }, + limit: { context: 256000, output: 32768 }, + }, + "gemini-3-flash-preview": { + id: "gemini-3-flash-preview", + name: "Gemini 3 Flash Preview", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-12-19", + last_updated: "2026-03-12", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.7, output: 3.75, cache_read: 0.07 }, + limit: { context: 256000, output: 65536 }, + }, + "qwen3-coder-480b-a35b-instruct-turbo": { + id: "qwen3-coder-480b-a35b-instruct-turbo", + name: "Qwen 3 Coder 480B Turbo", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01-27", + last_updated: "2026-02-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.35, output: 1.5, cache_read: 0.04 }, + limit: { context: 256000, output: 65536 }, + }, + "qwen3-5-397b-a17b": { + id: "qwen3-5-397b-a17b", + name: "Qwen 3.5 397B", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-16", + last_updated: "2026-04-09", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.75, output: 4.5 }, + limit: { context: 128000, output: 32768 }, + }, + "zai-org-glm-4.7": { + id: "zai-org-glm-4.7", + name: "GLM 4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-24", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.65, cache_read: 0.11 }, + limit: { context: 198000, output: 16384 }, + }, + "openai-gpt-54": { + id: "openai-gpt-54", + name: "GPT-5.4", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-03-05", + last_updated: "2026-03-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3.13, output: 18.8, cache_read: 0.313 }, + limit: { context: 1000000, output: 131072 }, + }, + "zai-org-glm-4.7-flash": { + id: "zai-org-glm-4.7-flash", + name: "GLM 4.7 Flash", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01-29", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.125, output: 0.5 }, + limit: { context: 128000, output: 16384 }, + }, + "nvidia-nemotron-3-nano-30b-a3b": { + id: "nvidia-nemotron-3-nano-30b-a3b", + name: "NVIDIA Nemotron 3 Nano 30B", + family: "nemotron", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01-27", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.075, output: 0.3 }, + limit: { context: 128000, output: 16384 }, + }, + "qwen3-vl-235b-a22b": { + id: "qwen3-vl-235b-a22b", + name: "Qwen3 VL 235B", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01-16", + last_updated: "2026-03-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.25, output: 1.5 }, + limit: { context: 256000, output: 16384 }, + }, + "openai-gpt-53-codex": { + id: "openai-gpt-53-codex", + name: "GPT-5.3 Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-24", + last_updated: "2026-03-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.19, output: 17.5, cache_read: 0.219 }, + limit: { context: 400000, output: 128000 }, + }, + "claude-sonnet-45": { + id: "claude-sonnet-45", + name: "Claude Sonnet 4.5", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-09", + release_date: "2025-01-15", + last_updated: "2026-01-28", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3.75, output: 18.75, cache_read: 0.375, cache_write: 4.69 }, + limit: { context: 198000, output: 49500 }, + }, + "openai-gpt-52": { + id: "openai-gpt-52", + name: "GPT-5.2", + family: "gpt", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-08-31", + release_date: "2025-12-13", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.19, output: 17.5, cache_read: 0.219 }, + limit: { context: 256000, output: 65536 }, + }, + "mistral-small-3-2-24b-instruct": { + id: "mistral-small-3-2-24b-instruct", + name: "Mistral Small 3.2 24B Instruct", + family: "mistral-small", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01-15", + last_updated: "2026-03-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.09375, output: 0.25 }, + limit: { context: 256000, output: 16384 }, + }, + "claude-opus-45": { + id: "claude-opus-45", + name: "Claude Opus 4.5", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-03", + release_date: "2025-12-06", + last_updated: "2026-01-28", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 6, output: 30, cache_read: 0.6, cache_write: 7.5 }, + limit: { context: 198000, output: 49500 }, + }, + "grok-4-20-multi-agent-beta": { + id: "grok-4-20-multi-agent-beta", + name: "Grok 4.20 Multi-Agent Beta", + family: "grok-beta", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2026-03-12", + last_updated: "2026-04-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { + input: 2.27, + output: 6.8, + cache_read: 0.23, + context_over_200k: { input: 4.53, output: 13.6, cache_read: 0.23 }, + }, + limit: { context: 2000000, output: 128000 }, + }, + "minimax-m27": { + id: "minimax-m27", + name: "MiniMax M2.7", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.375, output: 1.5, cache_read: 0.075 }, + limit: { context: 198000, output: 32768 }, + }, + "qwen3-235b-a22b-thinking-2507": { + id: "qwen3-235b-a22b-thinking-2507", + name: "Qwen 3 235B A22B Thinking 2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-04-29", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.45, output: 3.5 }, + limit: { context: 128000, output: 16384 }, + }, + "grok-code-fast-1": { + id: "grok-code-fast-1", + name: "Grok Code Fast 1", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-01", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1.87, cache_read: 0.03 }, + limit: { context: 256000, output: 10000 }, + }, + "qwen3-5-35b-a3b": { + id: "qwen3-5-35b-a3b", + name: "Qwen 3.5 35B A3B", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-25", + last_updated: "2026-03-09", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3125, output: 1.25, cache_read: 0.15625 }, + limit: { context: 256000, output: 65536 }, + }, + "mercury-2": { + id: "mercury-2", + name: "Mercury 2", + family: "mercury", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-20", + last_updated: "2026-04-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3125, output: 0.9375, cache_read: 0.03125 }, + limit: { context: 128000, output: 50000 }, + }, + "google-gemma-3-27b-it": { + id: "google-gemma-3-27b-it", + name: "Google Gemma 3 27B Instruct", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-11-04", + last_updated: "2026-03-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.12, output: 0.2 }, + limit: { context: 198000, output: 16384 }, + }, + "olafangensan-glm-4.7-flash-heretic": { + id: "olafangensan-glm-4.7-flash-heretic", + name: "GLM 4.7 Flash Heretic", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-04", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.14, output: 0.8 }, + limit: { context: 200000, output: 24000 }, + }, + "openai-gpt-52-codex": { + id: "openai-gpt-52-codex", + name: "GPT-5.2 Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-08", + release_date: "2025-01-15", + last_updated: "2026-03-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.19, output: 17.5, cache_read: 0.219 }, + limit: { context: 256000, output: 65536 }, + }, + "venice-uncensored-role-play": { + id: "venice-uncensored-role-play", + name: "Venice Role Play Uncensored", + family: "venice", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-20", + last_updated: "2026-03-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 2 }, + limit: { context: 128000, output: 4096 }, + }, + "zai-org-glm-5": { + id: "zai-org-glm-5", + name: "GLM 5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3.2, cache_read: 0.2 }, + limit: { context: 198000, output: 32000 }, + }, + "zai-org-glm-4.6": { + id: "zai-org-glm-4.6", + name: "GLM 4.6", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2024-04-01", + last_updated: "2026-04-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.85, output: 2.75, cache_read: 0.3 }, + limit: { context: 198000, output: 16384 }, + }, + "mistral-small-2603": { + id: "mistral-small-2603", + name: "Mistral Small 4", + family: "mistral-small", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-03-16", + last_updated: "2026-04-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1875, output: 0.75 }, + limit: { context: 256000, output: 65536 }, + }, + "openai-gpt-oss-120b": { + id: "openai-gpt-oss-120b", + name: "OpenAI GPT OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-11-06", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.3 }, + limit: { context: 128000, output: 16384 }, + }, + "qwen3-5-9b": { + id: "qwen3-5-9b", + name: "Qwen 3.5 9B", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-03-05", + last_updated: "2026-04-04", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.15 }, + limit: { context: 256000, output: 32768 }, + }, + "openai-gpt-54-pro": { + id: "openai-gpt-54-pro", + name: "GPT-5.4 Pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-03-05", + last_updated: "2026-03-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 37.5, output: 225, context_over_200k: { input: 75, output: 337.5 } }, + limit: { context: 1000000, output: 128000 }, + }, + "aion-labs.aion-2-0": { + id: "aion-labs.aion-2-0", + name: "Aion 2.0", + family: "o", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2026-03-24", + last_updated: "2026-03-31", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 2, cache_read: 0.25 }, + limit: { context: 128000, output: 32768 }, + }, + "openai-gpt-54-mini": { + id: "openai-gpt-54-mini", + name: "GPT-5.4 Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-03-27", + last_updated: "2026-03-31", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.9375, output: 5.625, cache_read: 0.09375 }, + limit: { context: 400000, output: 128000 }, + }, + "google.gemma-4-31b-it": { + id: "google.gemma-4-31b-it", + name: "Google Gemma 4 31B Instruct", + family: "gemma", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-04-03", + last_updated: "2026-04-09", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.175, output: 0.5 }, + limit: { context: 256000, output: 8192 }, + }, + "minimax-m25": { + id: "minimax-m25", + name: "MiniMax M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-03-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.34, output: 1.19, cache_read: 0.04 }, + limit: { context: 198000, output: 32768 }, + }, + "qwen3-coder-480b-a35b-instruct": { + id: "qwen3-coder-480b-a35b-instruct", + name: "Qwen 3 Coder 480b", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-04-29", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.75, output: 3 }, + limit: { context: 256000, output: 65536 }, + }, + "zai-org-glm-5-1": { + id: "zai-org-glm-5-1", + name: "GLM 5.1", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-04-07", + last_updated: "2026-04-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.75, output: 5.5, cache_read: 0.325 }, + limit: { context: 200000, output: 24000 }, + }, + "claude-opus-4-6": { + id: "claude-opus-4-6", + name: "Claude Opus 4.6", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-05", + last_updated: "2026-03-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 6, output: 30, cache_read: 0.6, cache_write: 7.5 }, + limit: { context: 1000000, output: 128000 }, + }, + "deepseek-v3.2": { + id: "deepseek-v3.2", + name: "DeepSeek V3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-10", + release_date: "2025-12-04", + last_updated: "2026-03-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.33, output: 0.48, cache_read: 0.16 }, + limit: { context: 160000, output: 32768 }, + }, + "venice-uncensored": { + id: "venice-uncensored", + name: "Venice Uncensored 1.1", + family: "venice", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + knowledge: "2023-10", + release_date: "2025-03-18", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.9 }, + limit: { context: 32000, output: 8192 }, + }, + "qwen-3-6-plus": { + id: "qwen-3-6-plus", + name: "Qwen 3.6 Plus Uncensored", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-04-06", + last_updated: "2026-04-09", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { + input: 0.625, + output: 3.75, + cache_read: 0.0625, + cache_write: 0.78, + context_over_200k: { input: 2.5, output: 7.5 }, + }, + limit: { context: 1000000, output: 65536 }, + }, + "google.gemma-4-26b-a4b-it": { + id: "google.gemma-4-26b-a4b-it", + name: "Google Gemma 4 26B A4B Instruct", + family: "gemma", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-04-02", + last_updated: "2026-04-09", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1625, output: 0.5 }, + limit: { context: 256000, output: 8192 }, + }, + "openai-gpt-4o-2024-11-20": { + id: "openai-gpt-4o-2024-11-20", + name: "GPT-4o", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-28", + last_updated: "2026-03-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3.125, output: 12.5 }, + limit: { context: 128000, output: 16384 }, + }, + "llama-3.3-70b": { + id: "llama-3.3-70b", + name: "Llama 3.3 70B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2025-04-06", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.7, output: 2.8 }, + limit: { context: 128000, output: 4096 }, + }, + "kimi-k2-5": { + id: "kimi-k2-5", + name: "Kimi K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2024-04", + release_date: "2026-01-27", + last_updated: "2026-03-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.56, output: 3.5, cache_read: 0.11 }, + limit: { context: 256000, output: 65536 }, + }, + "grok-4-20-beta": { + id: "grok-4-20-beta", + name: "Grok 4.20 Beta", + family: "grok-beta", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-03-12", + last_updated: "2026-04-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { + input: 2.27, + output: 6.8, + cache_read: 0.23, + context_over_200k: { input: 4.53, output: 13.6, cache_read: 0.23 }, + }, + limit: { context: 2000000, output: 128000 }, + }, + "minimax-m21": { + id: "minimax-m21", + name: "MiniMax M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-01", + last_updated: "2026-03-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.35, output: 1.5, cache_read: 0.04 }, + limit: { context: 198000, output: 32768 }, + }, + "llama-3.2-3b": { + id: "llama-3.2-3b", + name: "Llama 3.2 3B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-10-03", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 128000, output: 4096 }, + }, + "arcee-trinity-large-thinking": { + id: "arcee-trinity-large-thinking", + name: "Trinity Large Thinking", + family: "trinity", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-04-02", + last_updated: "2026-04-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3125, output: 1.125, cache_read: 0.075 }, + limit: { context: 256000, output: 65536 }, + }, + "hermes-3-llama-3.1-405b": { + id: "hermes-3-llama-3.1-405b", + name: "Hermes 3 Llama 3.1 405b", + family: "hermes", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-04", + release_date: "2025-09-25", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.1, output: 3 }, + limit: { context: 128000, output: 16384 }, + }, + "gemini-3-1-pro-preview": { + id: "gemini-3-1-pro-preview", + name: "Gemini 3.1 Pro Preview", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-19", + last_updated: "2026-03-12", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + cost: { + input: 2.5, + output: 15, + cache_read: 0.5, + cache_write: 0.5, + context_over_200k: { input: 5, output: 22.5, cache_read: 0.5 }, + }, + limit: { context: 1000000, output: 32768 }, + }, + "kimi-k2-thinking": { + id: "kimi-k2-thinking", + name: "Kimi K2 Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-12-10", + last_updated: "2026-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.75, output: 3.2, cache_read: 0.375 }, + limit: { context: 256000, output: 65536 }, + }, + "claude-opus-4-6-fast": { + id: "claude-opus-4-6-fast", + name: "Claude Opus 4.6 Fast", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-04-08", + last_updated: "2026-04-08", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 36, output: 180, cache_read: 3.6, cache_write: 45 }, + limit: { context: 1000000, output: 128000 }, + }, + }, + }, + aihubmix: { + id: "aihubmix", + env: ["AIHUBMIX_API_KEY"], + npm: "@aihubmix/ai-sdk-provider", + name: "AIHubMix", + doc: "https://docs.aihubmix.com", + models: { + "gpt-5.1-codex-max": { + id: "gpt-5.1-codex-max", + name: "GPT-5.1-Codex-Max", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "coding-glm-5-free": { + id: "coding-glm-5-free", + name: "Coding-GLM-5-Free", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "claude-haiku-4-5": { + id: "claude-haiku-4-5", + name: "Claude Haiku 4.5", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 5.5, cache_read: 0.11, cache_write: 1.25 }, + limit: { context: 200000, output: 64000 }, + }, + "coding-glm-4.7": { + id: "coding-glm-4.7", + name: "Coding-GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 1.1, cache_read: 0.548 }, + limit: { context: 204800, output: 131072 }, + }, + "qwen3-235b-a22b-instruct-2507": { + id: "qwen3-235b-a22b-instruct-2507", + name: "Qwen3 235B A22B Instruct 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-30", + last_updated: "2025-07-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.28, output: 1.12 }, + limit: { context: 262144, output: 262144 }, + }, + "kimi-k2.5": { + id: "kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-07", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3, cache_read: 0.1 }, + limit: { context: 262144, output: 262144 }, + }, + "glm-4.7": { + id: "glm-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 1.1, cache_read: 0.548 }, + limit: { context: 204800, output: 131072 }, + }, + "gemini-3-pro-preview-search": { + id: "gemini-3-pro-preview-search", + name: "Gemini 3 Pro Preview Search", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-11", + release_date: "2025-11-19", + last_updated: "2025-11-19", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.5 }, + limit: { context: 1000000, output: 65000 }, + }, + "glm-5": { + id: "glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.88, output: 2.82 }, + limit: { context: 204800, output: 131072 }, + }, + "claude-sonnet-4-6": { + id: "claude-sonnet-4-6", + name: "Claude Sonnet 4.6", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2026-02-17", + last_updated: "2026-02-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 3, + output: 15, + cache_read: 0.3, + cache_write: 3.75, + context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, + }, + limit: { context: 200000, output: 64000 }, + }, + "Kimi-K2-0905": { + id: "Kimi-K2-0905", + name: "Kimi K2 0905", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.19 }, + limit: { context: 262144, output: 262144 }, + }, + "gpt-5-mini": { + id: "gpt-5-mini", + name: "GPT-5-Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-09-30", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.5, output: 6, cache_read: 0.75 }, + limit: { context: 200000, output: 64000 }, + }, + "gpt-5-nano": { + id: "gpt-5-nano", + name: "GPT-5-Nano", + family: "gpt-nano", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-09-30", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 2, cache_read: 0.25 }, + limit: { context: 128000, output: 16384 }, + }, + "gemini-3-pro-preview": { + id: "gemini-3-pro-preview", + name: "Gemini 3 Pro Preview", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-11", + release_date: "2025-11-19", + last_updated: "2025-11-19", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.5 }, + limit: { context: 1000000, output: 65000 }, + }, + "gemini-2.5-pro": { + id: "gemini-2.5-pro", + name: "Gemini 2.5 Pro", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 5, cache_read: 0.31 }, + limit: { context: 2000000, output: 65000 }, + }, + "coding-minimax-m2.1-free": { + id: "coding-minimax-m2.1-free", + name: "Coding MiniMax M2.1 Free", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "gpt-5.2": { + id: "gpt-5.2", + name: "GPT-5.2", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, output: 128000 }, + }, + "claude-opus-4-1": { + id: "claude-opus-4-1", + name: "Claude Opus 4.1", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 16.5, output: 82.5, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "deepseek-v3.2-fast": { + id: "deepseek-v3.2-fast", + name: "DeepSeek-V3.2-Fast", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: false, + knowledge: "2024-07", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.1, output: 3.29 }, + limit: { context: 128000, output: 128000 }, + }, + "minimax-m2.1": { + id: "minimax-m2.1", + name: "MiniMax M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.29, output: 1.15 }, + limit: { context: 204800, output: 131072 }, + }, + "o4-mini": { + id: "o4-mini", + name: "o4-mini", + family: "o-mini", + attachment: false, + reasoning: true, + tool_call: false, + temperature: false, + knowledge: "2024-09", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.5, output: 6, cache_read: 0.75 }, + limit: { context: 200000, output: 65536 }, + }, + "deepseek-v3.2-think": { + id: "deepseek-v3.2-think", + name: "DeepSeek-V3.2-Think", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.45 }, + limit: { context: 131000, output: 64000 }, + }, + "gpt-5.2-codex": { + id: "gpt-5.2-codex", + name: "GPT-5.2-Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-08-31", + release_date: "2026-01-14", + last_updated: "2026-01-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, output: 128000 }, + }, + "gemini-2.5-flash": { + id: "gemini-2.5-flash", + name: "Gemini 2.5 Flash", + family: "gemini-flash", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.075, output: 0.3, cache_read: 0.02 }, + limit: { context: 1000000, output: 65000 }, + }, + "gpt-5.1-codex-mini": { + id: "gpt-5.1-codex-mini", + name: "GPT-5.1 Codex Mini", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-11", + release_date: "2025-11-15", + last_updated: "2025-11-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.03 }, + limit: { context: 400000, output: 128000 }, + }, + "qwen3-235b-a22b-thinking-2507": { + id: "qwen3-235b-a22b-thinking-2507", + name: "Qwen3 235B A22B Thinking 2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-30", + last_updated: "2025-07-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.28, output: 2.8 }, + limit: { context: 262144, output: 262144 }, + }, + "gpt-5.1": { + id: "gpt-5.1", + name: "GPT-5.1", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-11", + release_date: "2025-11-15", + last_updated: "2025-11-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "claude-opus-4-6-think": { + id: "claude-opus-4-6-think", + name: "Claude Opus 4.6 Think", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 5, + output: 25, + cache_read: 0.3, + cache_write: 3.75, + context_over_200k: { input: 6, output: 22, cache_read: 0.6, cache_write: 7.5 }, + }, + limit: { context: 200000, output: 128000 }, + }, + "claude-opus-4-5": { + id: "claude-opus-4-5", + name: "Claude Opus 4.5", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03", + release_date: "2025-11-25", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 32000 }, + }, + "glm-4.6v": { + id: "glm-4.6v", + name: "GLM-4.6V", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-08", + last_updated: "2025-12-08", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.14, output: 0.41 }, + limit: { context: 128000, output: 32768 }, + }, + "gpt-5-codex": { + id: "gpt-5-codex", + name: "GPT-5-Codex", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.13 }, + limit: { context: 400000, output: 128000 }, + }, + "qwen3-max-2026-01-23": { + id: "qwen3-max-2026-01-23", + name: "Qwen3 Max", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-23", + last_updated: "2025-09-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.34, output: 1.37 }, + limit: { context: 262144, output: 65536 }, + }, + "coding-glm-4.7-free": { + id: "coding-glm-4.7-free", + name: "Coding GLM 4.7 Free", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "qwen3-coder-next": { + id: "qwen3-coder-next", + name: "Qwen3 Coder Next", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2026-02-04", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.14, output: 0.55 }, + limit: { context: 262144, input: 262144, output: 65536 }, + }, + "qwen3-coder-480b-a35b-instruct": { + id: "qwen3-coder-480b-a35b-instruct", + name: "Qwen3 Coder 480B A35B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-08-01", + last_updated: "2025-08-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.82, output: 3.29 }, + limit: { context: 262144, output: 131000 }, + }, + "claude-opus-4-6": { + id: "claude-opus-4-6", + name: "Claude Opus 4.6", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 5, + output: 25, + cache_read: 0.3, + cache_write: 3.75, + context_over_200k: { input: 6, output: 22, cache_read: 0.6, cache_write: 7.5 }, + }, + limit: { context: 200000, output: 128000 }, + }, + "gpt-4.1-nano": { + id: "gpt-4.1-nano", + name: "GPT-4.1 nano", + family: "gpt-nano", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.03 }, + limit: { context: 1047576, output: 32768 }, + }, + "minimax-m2.5": { + id: "minimax-m2.5", + name: "MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.29, output: 1.15 }, + limit: { context: 204800, output: 131072 }, + }, + "deepseek-v3.2": { + id: "deepseek-v3.2", + name: "DeepSeek-V3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.45 }, + limit: { context: 131000, output: 64000 }, + }, + "gpt-5-pro": { + id: "gpt-5-pro", + name: "GPT-5-Pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-09-30", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 7, output: 28, cache_read: 3.5 }, + limit: { context: 400000, output: 128000 }, + }, + "gpt-4o": { + id: "gpt-4o", + name: "GPT-4o", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-09", + release_date: "2024-05-13", + last_updated: "2024-08-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10, cache_read: 1.25 }, + limit: { context: 128000, output: 16384 }, + }, + "claude-sonnet-4-5": { + id: "claude-sonnet-4-5", + name: "Claude Sonnet 4.5", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3.3, output: 16.5, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "gpt-5": { + id: "gpt-5", + name: "GPT-5", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-09-30", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 20, cache_read: 2.5 }, + limit: { context: 400000, output: 128000 }, + }, + "qwen3.5-plus": { + id: "qwen3.5-plus", + name: "Qwen 3.5 Plus", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02-16", + last_updated: "2026-02-16", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.11, output: 0.66 }, + limit: { context: 1000000, output: 65536 }, + }, + "gpt-4.1": { + id: "gpt-4.1", + name: "GPT-4.1", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 1047576, output: 32768 }, + }, + "gpt-4.1-mini": { + id: "gpt-4.1-mini", + name: "GPT-4.1 mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.6, cache_read: 0.1 }, + limit: { context: 1047576, output: 32768 }, + }, + "gpt-5.1-codex": { + id: "gpt-5.1-codex", + name: "GPT-5.1 Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-11", + release_date: "2025-11-15", + last_updated: "2025-11-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.13 }, + limit: { context: 400000, output: 128000 }, + }, + "claude-sonnet-4-6-think": { + id: "claude-sonnet-4-6-think", + name: "Claude Sonnet 4.6 Think", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2026-02-17", + last_updated: "2026-02-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 3, + output: 15, + cache_read: 0.3, + cache_write: 3.75, + context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, + }, + limit: { context: 200000, output: 64000 }, + }, + }, + }, + cerebras: { + id: "cerebras", + env: ["CEREBRAS_API_KEY"], + npm: "@ai-sdk/cerebras", + name: "Cerebras", + doc: "https://inference-docs.cerebras.ai/models/overview", + models: { + "llama3.1-8b": { + id: "llama3.1-8b", + name: "Llama 3.1 8B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 32000, output: 8000 }, + }, + "qwen-3-235b-a22b-instruct-2507": { + id: "qwen-3-235b-a22b-instruct-2507", + name: "Qwen 3 235B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-22", + last_updated: "2025-07-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 1.2 }, + limit: { context: 131000, output: 32000 }, + }, + "zai-glm-4.7": { + id: "zai-glm-4.7", + name: "Z.AI GLM-4.7", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2026-01-10", + last_updated: "2026-01-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.25, output: 2.75, cache_read: 0, cache_write: 0 }, + limit: { context: 131072, output: 40000 }, + }, + "gpt-oss-120b": { + id: "gpt-oss-120b", + name: "GPT OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.25, output: 0.69 }, + limit: { context: 131072, output: 32768 }, + }, + }, + }, + firmware: { + id: "firmware", + env: ["FIRMWARE_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://app.frogbot.ai/api/v1", + name: "Firmware", + doc: "https://docs.frogbot.ai", + models: { + "grok-4-1-fast-reasoning": { + id: "grok-4-1-fast-reasoning", + name: "Grok 4.1 Fast (Reasoning)", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-11", + release_date: "2025-11-25", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 128000 }, + }, + "claude-haiku-4-5": { + id: "claude-haiku-4-5", + name: "Claude Haiku 4.5", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-02-28", + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 200000, output: 64000 }, + }, + "kimi-k2.5": { + id: "kimi-k2.5", + name: "Kimi-K2.5", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "1970-01-01", + last_updated: "1970-01-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 3, cache_read: 0.1 }, + limit: { context: 256000, output: 128000 }, + }, + "gpt-5-4": { + id: "gpt-5-4", + name: "GPT-5.4", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 15, cache_read: 0.25 }, + limit: { context: 272000, output: 128000 }, + }, + "deepseek-v3-2": { + id: "deepseek-v3-2", + name: "DeepSeek v3.2", + family: "deepseek", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2024-12-26", + last_updated: "2025-09-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.58, output: 1.68, cache_read: 0.28 }, + limit: { context: 128000, output: 8192 }, + }, + "claude-sonnet-4-6": { + id: "claude-sonnet-4-6", + name: "Claude Sonnet 4.6", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2026-02-17", + release_date: "2026-02-17", + last_updated: "2026-02-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "gemini-3-flash-preview": { + id: "gemini-3-flash-preview", + name: "Gemini 3 Flash Preview", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 3, cache_read: 0.05 }, + limit: { context: 1048576, output: 65536 }, + }, + "gpt-5-mini": { + id: "gpt-5-mini", + name: "GPT-5 Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.03 }, + limit: { context: 400000, output: 128000 }, + }, + "gpt-5-nano": { + id: "gpt-5-nano", + name: "GPT-5 Nano", + family: "gpt-nano", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.4, cache_read: 0.01 }, + limit: { context: 400000, output: 128000 }, + }, + "gemini-3-pro-preview": { + id: "gemini-3-pro-preview", + name: "Gemini 3 Pro Preview", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2 }, + limit: { context: 1000000, output: 64000 }, + }, + "zai-glm-5-1": { + id: "zai-glm-5-1", + name: "GLM-5", + family: "glm", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-01-20", + last_updated: "2025-02-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.4, output: 4.4, cache_read: 0.26 }, + limit: { context: 198000, output: 8192 }, + }, + "gemini-2.5-pro": { + id: "gemini-2.5-pro", + name: "Gemini 2.5 Pro", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-03-20", + last_updated: "2025-06-05", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.31 }, + limit: { context: 1048576, output: 65536 }, + }, + "grok-4-1-fast-non-reasoning": { + id: "grok-4-1-fast-non-reasoning", + name: "Grok 4.1 Fast (Non-Reasoning)", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-11", + release_date: "2025-11-25", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 128000 }, + }, + "gemini-2.5-flash": { + id: "gemini-2.5-flash", + name: "Gemini 2.5 Flash", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-07-17", + last_updated: "2025-07-17", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5, cache_read: 0.075 }, + limit: { context: 1048576, output: 65536 }, + }, + "grok-code-fast-1": { + id: "grok-code-fast-1", + name: "Grok 4.1 Fast (Reasoning)", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2025-08-28", + last_updated: "2025-08-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.5, cache_read: 0.02 }, + limit: { context: 256000, output: 128000 }, + }, + "claude-opus-4-5": { + id: "claude-opus-4-5", + name: "Claude Opus 4.5", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-24", + last_updated: "2025-11-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 64000 }, + }, + "claude-opus-4-6": { + id: "claude-opus-4-6", + name: "Claude Opus 4.6", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-05-31", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 128000 }, + }, + "gpt-oss-20b": { + id: "gpt-oss-20b", + name: "GPT OSS 20B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "1970-01-01", + last_updated: "1970-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.2 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen-3-6-plus": { + id: "qwen-3-6-plus", + name: "Qwen 3.6 Plus", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-04-02", + last_updated: "2026-04-03", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 3, cache_read: 0.1 }, + limit: { context: 1000000, output: 64000 }, + }, + "minimax-m2-5": { + id: "minimax-m2-5", + name: "MiniMax-M2.5", + family: "minimax", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-09", + release_date: "2025-01-15", + last_updated: "2025-02-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2, cache_read: 0.03 }, + limit: { context: 192000, output: 8192 }, + }, + "gpt-4o": { + id: "gpt-4o", + name: "GPT-4o", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-09", + release_date: "2024-05-13", + last_updated: "2024-08-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10, cache_read: 1.25 }, + limit: { context: 128000, output: 16384 }, + }, + "claude-sonnet-4-5": { + id: "claude-sonnet-4-5", + name: "Claude Sonnet 4.5", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "gpt-oss-120b": { + id: "gpt-oss-120b", + name: "GPT OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "1970-01-01", + last_updated: "1970-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 131072, output: 32768 }, + }, + "gemini-3-1-pro-preview": { + id: "gemini-3-1-pro-preview", + name: "Gemini 3.1 Pro Preview", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2026-01", + release_date: "2026-02-18", + last_updated: "2026-02-18", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2 }, + limit: { context: 1000000, output: 64000 }, + }, + "gpt-5-3-codex": { + id: "gpt-5-3-codex", + name: "GPT-5.3 Codex", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2026-01-31", + release_date: "2026-02-15", + last_updated: "2026-02-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, output: 128000 }, + }, + }, + }, + lmstudio: { + id: "lmstudio", + env: ["LMSTUDIO_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "http://127.0.0.1:1234/v1", + name: "LMStudio", + doc: "https://lmstudio.ai/models", + models: { + "openai/gpt-oss-20b": { + id: "openai/gpt-oss-20b", + name: "GPT OSS 20B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen/qwen3-coder-30b": { + id: "qwen/qwen3-coder-30b", + name: "Qwen3 Coder 30B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen/qwen3-30b-a3b-2507": { + id: "qwen/qwen3-30b-a3b-2507", + name: "Qwen3 30B A3B 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-30", + last_updated: "2025-07-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 16384 }, + }, + }, + }, + lucidquery: { + id: "lucidquery", + env: ["LUCIDQUERY_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://lucidquery.com/api/v1", + name: "LucidQuery AI", + doc: "https://lucidquery.com/api/docs", + models: { + "lucidnova-rf1-100b": { + id: "lucidnova-rf1-100b", + name: "LucidNova RF1 100B", + family: "nova", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2025-09-16", + release_date: "2024-12-28", + last_updated: "2025-09-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 5 }, + limit: { context: 120000, output: 8000 }, + }, + "lucidquery-nexus-coder": { + id: "lucidquery-nexus-coder", + name: "LucidQuery Nexus Coder", + family: "lucid", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2025-08-01", + release_date: "2025-09-01", + last_updated: "2025-09-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 5 }, + limit: { context: 250000, output: 60000 }, + }, + }, + }, + "moonshotai-cn": { + id: "moonshotai-cn", + env: ["MOONSHOT_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.moonshot.cn/v1", + name: "Moonshot AI (China)", + doc: "https://platform.moonshot.cn/docs/api/chat", + models: { + "kimi-k2-thinking": { + id: "kimi-k2-thinking", + name: "Kimi K2 Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-08", + release_date: "2025-11-06", + last_updated: "2025-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, + limit: { context: 262144, output: 262144 }, + }, + "kimi-k2-0711-preview": { + id: "kimi-k2-0711-preview", + name: "Kimi K2 0711", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-07-14", + last_updated: "2025-07-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, + limit: { context: 131072, output: 16384 }, + }, + "kimi-k2-turbo-preview": { + id: "kimi-k2-turbo-preview", + name: "Kimi K2 Turbo", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.4, output: 10, cache_read: 0.6 }, + limit: { context: 262144, output: 262144 }, + }, + "kimi-k2-thinking-turbo": { + id: "kimi-k2-thinking-turbo", + name: "Kimi K2 Thinking Turbo", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-08", + release_date: "2025-11-06", + last_updated: "2025-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.15, output: 8, cache_read: 0.15 }, + limit: { context: 262144, output: 262144 }, + }, + "kimi-k2.5": { + id: "kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: false, + knowledge: "2025-01", + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3, cache_read: 0.1 }, + limit: { context: 262144, output: 262144 }, + }, + "kimi-k2-0905-preview": { + id: "kimi-k2-0905-preview", + name: "Kimi K2 0905", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, + limit: { context: 262144, output: 262144 }, + }, + }, + }, + "azure-cognitive-services": { + id: "azure-cognitive-services", + env: ["AZURE_COGNITIVE_SERVICES_RESOURCE_NAME", "AZURE_COGNITIVE_SERVICES_API_KEY"], + npm: "@ai-sdk/azure", + name: "Azure Cognitive Services", + doc: "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", + models: { + "claude-haiku-4-5": { + id: "claude-haiku-4-5", + name: "Claude Haiku 4.5", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-02-31", + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 200000, output: 64000 }, + provider: { + npm: "@ai-sdk/anthropic", + api: "https://${AZURE_COGNITIVE_SERVICES_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", + }, + }, + "claude-opus-4-1": { + id: "claude-opus-4-1", + name: "Claude Opus 4.1", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + provider: { + npm: "@ai-sdk/anthropic", + api: "https://${AZURE_COGNITIVE_SERVICES_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", + }, + }, + "gpt-5.4-mini": { + id: "gpt-5.4-mini", + name: "GPT-5.4 Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-17", + last_updated: "2026-03-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.75, output: 4.5, cache_read: 0.075 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gpt-5.4-nano": { + id: "gpt-5.4-nano", + name: "GPT-5.4 Nano", + family: "gpt-nano", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-17", + last_updated: "2026-03-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.25, cache_read: 0.02 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "claude-opus-4-5": { + id: "claude-opus-4-5", + name: "Claude Opus 4.5", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-24", + last_updated: "2025-08-01", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 64000 }, + provider: { + npm: "@ai-sdk/anthropic", + api: "https://${AZURE_COGNITIVE_SERVICES_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", + }, + }, + "claude-opus-4-6": { + id: "claude-opus-4-6", + name: "Claude Opus 4.6", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 5, + output: 25, + cache_read: 0.5, + cache_write: 6.25, + context_over_200k: { input: 10, output: 37.5, cache_read: 1, cache_write: 12.5 }, + }, + limit: { context: 200000, output: 128000 }, + provider: { + npm: "@ai-sdk/anthropic", + api: "https://${AZURE_COGNITIVE_SERVICES_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", + }, + }, + "claude-sonnet-4-5": { + id: "claude-sonnet-4-5", + name: "Claude Sonnet 4.5", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + provider: { + npm: "@ai-sdk/anthropic", + api: "https://${AZURE_COGNITIVE_SERVICES_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", + }, + }, + "mai-ds-r1": { + id: "mai-ds-r1", + name: "MAI-DS-R1", + family: "mai", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2024-06", + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.35, output: 5.4 }, + limit: { context: 128000, output: 8192 }, + }, + "grok-4-fast-non-reasoning": { + id: "grok-4-fast-non-reasoning", + name: "Grok 4 Fast (Non-Reasoning)", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-09-19", + last_updated: "2025-09-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + "grok-3": { + id: "grok-3", + name: "Grok 3", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.75 }, + limit: { context: 131072, output: 8192 }, + }, + "llama-4-maverick-17b-128e-instruct-fp8": { + id: "llama-4-maverick-17b-128e-instruct-fp8", + name: "Llama 4 Maverick 17B 128E Instruct FP8", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.25, output: 1 }, + limit: { context: 128000, output: 8192 }, + }, + "codestral-2501": { + id: "codestral-2501", + name: "Codestral 25.01", + family: "codestral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-03", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.9 }, + limit: { context: 256000, output: 256000 }, + }, + "gpt-5.1-codex": { + id: "gpt-5.1-codex", + name: "GPT-5.1 Codex", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text", "image", "audio"], output: ["text", "image", "audio"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "gpt-4.1-mini": { + id: "gpt-4.1-mini", + name: "GPT-4.1 mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-05", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.6, cache_read: 0.1 }, + limit: { context: 1047576, output: 32768 }, + }, + "kimi-k2-thinking": { + id: "kimi-k2-thinking", + name: "Kimi K2 Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-11-06", + last_updated: "2025-12-02", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, + limit: { context: 262144, output: 262144 }, + }, + "gpt-4.1": { + id: "gpt-4.1", + name: "GPT-4.1", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-05", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 1047576, output: 32768 }, + }, + "deepseek-r1-0528": { + id: "deepseek-r1-0528", + name: "DeepSeek-R1-0528", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-05-28", + last_updated: "2025-05-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.35, output: 5.4 }, + limit: { context: 163840, output: 163840 }, + }, + "gpt-3.5-turbo-instruct": { + id: "gpt-3.5-turbo-instruct", + name: "GPT-3.5 Turbo Instruct", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2021-08", + release_date: "2023-09-21", + last_updated: "2023-09-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.5, output: 2 }, + limit: { context: 4096, output: 4096 }, + }, + "mistral-medium-2505": { + id: "mistral-medium-2505", + name: "Mistral Medium 3", + family: "mistral-medium", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2025-05-07", + last_updated: "2025-05-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2 }, + limit: { context: 128000, output: 128000 }, + }, + "phi-4-reasoning-plus": { + id: "phi-4-reasoning-plus", + name: "Phi-4-reasoning-plus", + family: "phi", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.125, output: 0.5 }, + limit: { context: 32000, output: 4096 }, + }, + "cohere-embed-v3-english": { + id: "cohere-embed-v3-english", + name: "Embed v3 English", + family: "cohere-embed", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2023-11-07", + last_updated: "2023-11-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0 }, + limit: { context: 512, output: 1024 }, + }, + "gpt-4-32k": { + id: "gpt-4-32k", + name: "GPT-4 32K", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-11", + release_date: "2023-03-14", + last_updated: "2023-03-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 60, output: 120 }, limit: { context: 32768, output: 32768 }, }, + "gpt-5": { + id: "gpt-5", + name: "GPT-5", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.13 }, + limit: { context: 272000, output: 128000 }, + }, + "phi-4": { + id: "phi-4", + name: "Phi-4", + family: "phi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.125, output: 0.5 }, + limit: { context: 128000, output: 4096 }, + }, + "cohere-command-r-plus-08-2024": { + id: "cohere-command-r-plus-08-2024", + name: "Command R+", + family: "command-r", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-06-01", + release_date: "2024-08-30", + last_updated: "2024-08-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.5, output: 10 }, + limit: { context: 128000, output: 4000 }, + }, + "gpt-3.5-turbo-0613": { + id: "gpt-3.5-turbo-0613", + name: "GPT-3.5 Turbo 0613", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2021-08", + release_date: "2023-06-13", + last_updated: "2023-06-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 4 }, + limit: { context: 16384, output: 16384 }, + }, + "phi-3-medium-128k-instruct": { + id: "phi-3-medium-128k-instruct", + name: "Phi-3-medium-instruct (128k)", + family: "phi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-04-23", + last_updated: "2024-04-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.17, output: 0.68 }, + limit: { context: 128000, output: 4096 }, + }, + "gpt-4o": { + id: "gpt-4o", + name: "GPT-4o", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-09", + release_date: "2024-05-13", + last_updated: "2024-05-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10, cache_read: 1.25 }, + limit: { context: 128000, output: 16384 }, + }, + "gpt-5-pro": { + id: "gpt-5-pro", + name: "GPT-5 Pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-10-06", + last_updated: "2025-10-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 120 }, + limit: { context: 400000, output: 272000 }, + }, + "deepseek-v3.2": { + id: "deepseek-v3.2", + name: "DeepSeek-V3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.58, output: 1.68 }, + limit: { context: 128000, output: 128000 }, + }, + o3: { + id: "o3", + name: "o3", + family: "o", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05", + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 200000, output: 100000 }, + }, + "grok-3-mini": { + id: "grok-3-mini", + name: "Grok 3 Mini", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.5, reasoning: 0.5, cache_read: 0.075 }, + limit: { context: 131072, output: 8192 }, + }, + "gpt-4.1-nano": { + id: "gpt-4.1-nano", + name: "GPT-4.1 nano", + family: "gpt-nano", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-05", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.03 }, + limit: { context: 1047576, output: 32768 }, + }, + "phi-3-small-128k-instruct": { + id: "phi-3-small-128k-instruct", + name: "Phi-3-small-instruct (128k)", + family: "phi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-04-23", + last_updated: "2024-04-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 128000, output: 4096 }, + }, + "gpt-3.5-turbo-0301": { + id: "gpt-3.5-turbo-0301", + name: "GPT-3.5 Turbo 0301", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2021-08", + release_date: "2023-03-01", + last_updated: "2023-03-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.5, output: 2 }, + limit: { context: 4096, output: 4096 }, + }, + "phi-4-mini": { + id: "phi-4-mini", + name: "Phi-4-mini", + family: "phi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.075, output: 0.3 }, + limit: { context: 128000, output: 4096 }, + }, + "gpt-5.4": { + id: "gpt-5.4", + name: "GPT-5.4", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 15, cache_read: 0.25 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gpt-5-codex": { + id: "gpt-5-codex", + name: "GPT-5-Codex", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.13 }, + limit: { context: 400000, output: 128000 }, + }, + "meta-llama-3-8b-instruct": { + id: "meta-llama-3-8b-instruct", + name: "Meta-Llama-3-8B-Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-12", + release_date: "2024-04-18", + last_updated: "2024-04-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.61 }, + limit: { context: 8192, output: 2048 }, + }, + "gpt-4": { + id: "gpt-4", + name: "GPT-4", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-11", + release_date: "2023-03-14", + last_updated: "2023-03-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 60, output: 120 }, + limit: { context: 8192, output: 8192 }, + }, + "phi-4-mini-reasoning": { + id: "phi-4-mini-reasoning", + name: "Phi-4-mini-reasoning", + family: "phi", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.075, output: 0.3 }, + limit: { context: 128000, output: 4096 }, + }, + "grok-4": { + id: "grok-4", + name: "Grok 4", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, reasoning: 15, cache_read: 0.75 }, + limit: { context: 256000, output: 64000 }, + }, + "meta-llama-3.1-70b-instruct": { + id: "meta-llama-3.1-70b-instruct", + name: "Meta-Llama-3.1-70B-Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.68, output: 3.54 }, + limit: { context: 128000, output: 32768 }, + }, + "phi-3-mini-4k-instruct": { + id: "phi-3-mini-4k-instruct", + name: "Phi-3-mini-instruct (4k)", + family: "phi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-04-23", + last_updated: "2024-04-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 0.52 }, + limit: { context: 4096, output: 1024 }, + }, + "deepseek-v3.1": { + id: "deepseek-v3.1", + name: "DeepSeek-V3.1", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-08-21", + last_updated: "2025-08-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.56, output: 1.68 }, + limit: { context: 131072, output: 131072 }, + }, + "text-embedding-3-small": { + id: "text-embedding-3-small", + name: "text-embedding-3-small", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2024-01-25", + last_updated: "2024-01-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.02, output: 0 }, + limit: { context: 8191, output: 1536 }, + }, + "o3-mini": { + id: "o3-mini", + name: "o3-mini", + family: "o-mini", + attachment: false, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05", + release_date: "2024-12-20", + last_updated: "2025-01-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, + limit: { context: 200000, output: 100000 }, + }, + "gpt-3.5-turbo-1106": { + id: "gpt-3.5-turbo-1106", + name: "GPT-3.5 Turbo 1106", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2021-08", + release_date: "2023-11-06", + last_updated: "2023-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 2 }, + limit: { context: 16384, output: 16384 }, + }, + "model-router": { + id: "model-router", + name: "Model Router", + family: "model-router", + attachment: true, + reasoning: false, + tool_call: true, + release_date: "2025-05-19", + last_updated: "2025-11-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "gpt-5.4-pro": { + id: "gpt-5.4-pro", + name: "GPT-5.4 Pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 30, output: 180 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "mistral-small-2503": { + id: "mistral-small-2503", + name: "Mistral Small 3.1", + family: "mistral-small", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-09", + release_date: "2025-03-01", + last_updated: "2025-03-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 128000, output: 32768 }, + }, + o1: { + id: "o1", + name: "o1", + family: "o", + attachment: false, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2023-09", + release_date: "2024-12-05", + last_updated: "2024-12-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 60, cache_read: 7.5 }, + limit: { context: 200000, output: 100000 }, + }, + "grok-4-fast-reasoning": { + id: "grok-4-fast-reasoning", + name: "Grok 4 Fast (Reasoning)", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-09-19", + last_updated: "2025-09-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + "gpt-5.1": { + id: "gpt-5.1", + name: "GPT-5.1", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text", "image", "audio"], output: ["text", "image", "audio"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 272000, output: 128000 }, + }, + "grok-code-fast-1": { + id: "grok-code-fast-1", + name: "Grok Code Fast 1", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2025-08-28", + last_updated: "2025-08-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.5, cache_read: 0.02 }, + limit: { context: 256000, output: 10000 }, + }, + "cohere-embed-v3-multilingual": { + id: "cohere-embed-v3-multilingual", + name: "Embed v3 Multilingual", + family: "cohere-embed", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2023-11-07", + last_updated: "2023-11-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0 }, + limit: { context: 512, output: 1024 }, + }, + "o1-preview": { + id: "o1-preview", + name: "o1-preview", + family: "o", + attachment: false, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2023-09", + release_date: "2024-09-12", + last_updated: "2024-09-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 16.5, output: 66, cache_read: 8.25 }, + limit: { context: 128000, output: 32768 }, + }, + "gpt-3.5-turbo-0125": { + id: "gpt-3.5-turbo-0125", + name: "GPT-3.5 Turbo 0125", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2021-08", + release_date: "2024-01-25", + last_updated: "2024-01-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 1.5 }, + limit: { context: 16384, output: 16384 }, + }, + "gpt-5.1-codex-mini": { + id: "gpt-5.1-codex-mini", + name: "GPT-5.1 Codex Mini", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.025 }, + limit: { context: 400000, output: 128000 }, + }, + "cohere-embed-v-4-0": { + id: "cohere-embed-v-4-0", + name: "Embed v4", + family: "cohere-embed", + attachment: true, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-04-15", + last_updated: "2025-04-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.12, output: 0 }, + limit: { context: 128000, output: 1536 }, + }, + "gpt-5.2-codex": { + id: "gpt-5.2-codex", + name: "GPT-5.2 Codex", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-01-14", + last_updated: "2026-01-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, output: 128000 }, + }, + "o4-mini": { + id: "o4-mini", + name: "o4-mini", + family: "o-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05", + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.28 }, + limit: { context: 200000, output: 100000 }, + }, + "gpt-4-turbo-vision": { + id: "gpt-4-turbo-vision", + name: "GPT-4 Turbo Vision", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-11", + release_date: "2023-11-06", + last_updated: "2024-04-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 10, output: 30 }, + limit: { context: 128000, output: 4096 }, + }, + "gpt-5.1-chat": { + id: "gpt-5.1-chat", + name: "GPT-5.1 Chat", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text", "image", "audio"], output: ["text", "image", "audio"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 128000, output: 16384 }, + }, + "meta-llama-3.1-405b-instruct": { + id: "meta-llama-3.1-405b-instruct", + name: "Meta-Llama-3.1-405B-Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 5.33, output: 16 }, + limit: { context: 128000, output: 32768 }, + }, + "llama-3.2-11b-vision-instruct": { + id: "llama-3.2-11b-vision-instruct", + name: "Llama-3.2-11B-Vision-Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-09-25", + last_updated: "2024-09-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.37, output: 0.37 }, + limit: { context: 128000, output: 8192 }, + }, + "cohere-command-a": { + id: "cohere-command-a", + name: "Command A", + family: "command-a", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-06-01", + release_date: "2025-03-13", + last_updated: "2025-03-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.5, output: 10 }, + limit: { context: 256000, output: 8000 }, + }, + "cohere-command-r-08-2024": { + id: "cohere-command-r-08-2024", + name: "Command R", + family: "command-r", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-06-01", + release_date: "2024-08-30", + last_updated: "2024-08-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 128000, output: 4000 }, + }, + "gpt-4o-mini": { + id: "gpt-4o-mini", + name: "GPT-4o mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-09", + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6, cache_read: 0.08 }, + limit: { context: 128000, output: 16384 }, + }, + "mistral-large-2411": { + id: "mistral-large-2411", + name: "Mistral Large 24.11", + family: "mistral-large", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-09", + release_date: "2024-11-01", + last_updated: "2024-11-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6 }, + limit: { context: 128000, output: 32768 }, + }, + "gpt-5.2": { + id: "gpt-5.2", + name: "GPT-5.2", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "deepseek-v3.2-speciale": { + id: "deepseek-v3.2-speciale", + name: "DeepSeek-V3.2-Speciale", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2024-07", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.58, output: 1.68 }, + limit: { context: 128000, output: 128000 }, + }, + "deepseek-r1": { + id: "deepseek-r1", + name: "DeepSeek-R1", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2024-07", + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.35, output: 5.4 }, + limit: { context: 163840, output: 163840 }, + }, + "llama-3.2-90b-vision-instruct": { + id: "llama-3.2-90b-vision-instruct", + name: "Llama-3.2-90B-Vision-Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-09-25", + last_updated: "2024-09-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 2.04, output: 2.04 }, + limit: { context: 128000, output: 8192 }, + }, + "text-embedding-ada-002": { + id: "text-embedding-ada-002", + name: "text-embedding-ada-002", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2022-12-15", + last_updated: "2022-12-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0 }, + limit: { context: 8192, output: 1536 }, + }, + "gpt-4-turbo": { + id: "gpt-4-turbo", + name: "GPT-4 Turbo", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-11", + release_date: "2023-11-06", + last_updated: "2024-04-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 10, output: 30 }, + limit: { context: 128000, output: 4096 }, + }, + "gpt-5.3-codex": { + id: "gpt-5.3-codex", + name: "GPT-5.3 Codex", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-02-24", + last_updated: "2026-02-24", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, output: 128000 }, + }, + "phi-3-small-8k-instruct": { + id: "phi-3-small-8k-instruct", + name: "Phi-3-small-instruct (8k)", + family: "phi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-04-23", + last_updated: "2024-04-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 8192, output: 2048 }, + }, + "meta-llama-3-70b-instruct": { + id: "meta-llama-3-70b-instruct", + name: "Meta-Llama-3-70B-Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-12", + release_date: "2024-04-18", + last_updated: "2024-04-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.68, output: 3.54 }, + limit: { context: 8192, output: 2048 }, + }, + "gpt-5-nano": { + id: "gpt-5-nano", + name: "GPT-5 Nano", + family: "gpt-nano", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.4, cache_read: 0.01 }, + limit: { context: 272000, output: 128000 }, + }, + "gpt-5-mini": { + id: "gpt-5-mini", + name: "GPT-5 Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.03 }, + limit: { context: 272000, output: 128000 }, + }, + "phi-4-reasoning": { + id: "phi-4-reasoning", + name: "Phi-4-reasoning", + family: "phi", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.125, output: 0.5 }, + limit: { context: 32000, output: 4096 }, + }, + "phi-3-mini-128k-instruct": { + id: "phi-3-mini-128k-instruct", + name: "Phi-3-mini-instruct (128k)", + family: "phi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-04-23", + last_updated: "2024-04-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 0.52 }, + limit: { context: 128000, output: 4096 }, + }, + "text-embedding-3-large": { + id: "text-embedding-3-large", + name: "text-embedding-3-large", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2024-01-25", + last_updated: "2024-01-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.13, output: 0 }, + limit: { context: 8191, output: 3072 }, + }, + "o1-mini": { + id: "o1-mini", + name: "o1-mini", + family: "o-mini", + attachment: false, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2023-09", + release_date: "2024-09-12", + last_updated: "2024-09-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, + limit: { context: 128000, output: 65536 }, + }, + "phi-3.5-moe-instruct": { + id: "phi-3.5-moe-instruct", + name: "Phi-3.5-MoE-instruct", + family: "phi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-08-20", + last_updated: "2024-08-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.16, output: 0.64 }, + limit: { context: 128000, output: 4096 }, + }, + "gpt-5-chat": { + id: "gpt-5-chat", + name: "GPT-5 Chat", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: false, + temperature: false, + knowledge: "2024-10-24", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.13 }, + limit: { context: 128000, output: 16384 }, + }, + "deepseek-v3-0324": { + id: "deepseek-v3-0324", + name: "DeepSeek-V3-0324", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-03-24", + last_updated: "2025-03-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.14, output: 4.56 }, + limit: { context: 131072, output: 131072 }, + }, + "llama-3.3-70b-instruct": { + id: "llama-3.3-70b-instruct", + name: "Llama-3.3-70B-Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.71, output: 0.71 }, + limit: { context: 128000, output: 32768 }, + }, + "kimi-k2.5": { + id: "kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-02-06", + last_updated: "2026-02-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3 }, + limit: { context: 262144, output: 262144 }, + provider: { + npm: "@ai-sdk/openai-compatible", + api: "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/models", + shape: "completions", + }, + }, + "meta-llama-3.1-8b-instruct": { + id: "meta-llama-3.1-8b-instruct", + name: "Meta-Llama-3.1-8B-Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.61 }, + limit: { context: 128000, output: 32768 }, + }, + "ministral-3b": { + id: "ministral-3b", + name: "Ministral 3B", + family: "ministral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-03", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.04, output: 0.04 }, + limit: { context: 128000, output: 8192 }, + }, + "phi-3-medium-4k-instruct": { + id: "phi-3-medium-4k-instruct", + name: "Phi-3-medium-instruct (4k)", + family: "phi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-04-23", + last_updated: "2024-04-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.17, output: 0.68 }, + limit: { context: 4096, output: 1024 }, + }, + "llama-4-scout-17b-16e-instruct": { + id: "llama-4-scout-17b-16e-instruct", + name: "Llama 4 Scout 17B 16E Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.78 }, + limit: { context: 128000, output: 8192 }, + }, + "phi-3.5-mini-instruct": { + id: "phi-3.5-mini-instruct", + name: "Phi-3.5-mini-instruct", + family: "phi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-08-20", + last_updated: "2024-08-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 0.52 }, + limit: { context: 128000, output: 4096 }, + }, + "phi-4-multimodal": { + id: "phi-4-multimodal", + name: "Phi-4-multimodal", + family: "phi", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text", "image", "audio"], output: ["text"] }, + open_weights: true, + cost: { input: 0.08, output: 0.32, input_audio: 4 }, + limit: { context: 128000, output: 4096 }, + }, + "codex-mini": { + id: "codex-mini", + name: "Codex Mini", + family: "gpt-codex-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-04", + release_date: "2025-05-16", + last_updated: "2025-05-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.5, output: 6, cache_read: 0.375 }, + limit: { context: 200000, output: 100000 }, + }, + "gpt-5.2-chat": { + id: "gpt-5.2-chat", + name: "GPT-5.2 Chat", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 128000, output: 16384 }, + }, + "mistral-nemo": { + id: "mistral-nemo", + name: "Mistral Nemo", + family: "mistral-nemo", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.15 }, + limit: { context: 128000, output: 128000 }, + }, + }, + }, + cohere: { + id: "cohere", + env: ["COHERE_API_KEY"], + npm: "@ai-sdk/cohere", + name: "Cohere", + doc: "https://docs.cohere.com/docs/models", + models: { + "command-a-reasoning-08-2025": { + id: "command-a-reasoning-08-2025", + name: "Command A Reasoning", + family: "command-a", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-06-01", + release_date: "2025-08-21", + last_updated: "2025-08-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.5, output: 10 }, + limit: { context: 256000, output: 32000 }, + }, + "command-r7b-12-2024": { + id: "command-r7b-12-2024", + name: "Command R7B", + family: "command-r", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-06-01", + release_date: "2024-02-27", + last_updated: "2024-02-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.0375, output: 0.15 }, + limit: { context: 128000, output: 4000 }, + }, + "c4ai-aya-vision-8b": { + id: "c4ai-aya-vision-8b", + name: "Aya Vision 8B", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-03-04", + last_updated: "2025-05-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + limit: { context: 16000, output: 4000 }, + }, + "command-r-plus-08-2024": { + id: "command-r-plus-08-2024", + name: "Command R+", + family: "command-r", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-06-01", + release_date: "2024-08-30", + last_updated: "2024-08-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.5, output: 10 }, + limit: { context: 128000, output: 4000 }, + }, + "c4ai-aya-expanse-8b": { + id: "c4ai-aya-expanse-8b", + name: "Aya Expanse 8B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-10-24", + last_updated: "2024-10-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 8000, output: 4000 }, + }, + "command-r7b-arabic-02-2025": { + id: "command-r7b-arabic-02-2025", + name: "Command R7B Arabic", + family: "command-r", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-06-01", + release_date: "2025-02-27", + last_updated: "2025-02-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.0375, output: 0.15 }, + limit: { context: 128000, output: 4000 }, + }, + "command-a-vision-07-2025": { + id: "command-a-vision-07-2025", + name: "Command A Vision", + family: "command-a", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-06-01", + release_date: "2025-07-31", + last_updated: "2025-07-31", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 2.5, output: 10 }, + limit: { context: 128000, output: 8000 }, + }, + "c4ai-aya-vision-32b": { + id: "c4ai-aya-vision-32b", + name: "Aya Vision 32B", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-03-04", + last_updated: "2025-05-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + limit: { context: 16000, output: 4000 }, + }, + "command-a-translate-08-2025": { + id: "command-a-translate-08-2025", + name: "Command A Translate", + family: "command-a", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-06-01", + release_date: "2025-08-28", + last_updated: "2025-08-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.5, output: 10 }, + limit: { context: 8000, output: 8000 }, + }, + "command-r-08-2024": { + id: "command-r-08-2024", + name: "Command R", + family: "command-r", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-06-01", + release_date: "2024-08-30", + last_updated: "2024-08-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 128000, output: 4000 }, + }, + "c4ai-aya-expanse-32b": { + id: "c4ai-aya-expanse-32b", + name: "Aya Expanse 32B", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-10-24", + last_updated: "2024-10-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + limit: { context: 128000, output: 4000 }, + }, + "command-a-03-2025": { + id: "command-a-03-2025", + name: "Command A", + family: "command-a", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-06-01", + release_date: "2025-03-13", + last_updated: "2025-03-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.5, output: 10 }, + limit: { context: 256000, output: 8000 }, + }, + }, + }, + "cloudferro-sherlock": { + id: "cloudferro-sherlock", + env: ["CLOUDFERRO_SHERLOCK_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api-sherlock.cloudferro.com/openai/v1/", + name: "CloudFerro Sherlock", + doc: "https://docs.sherlock.cloudferro.com/", + models: { + "meta-llama/Llama-3.3-70B-Instruct": { + id: "meta-llama/Llama-3.3-70B-Instruct", + name: "Llama 3.3 70B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10-09", + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.92, output: 2.92 }, + limit: { context: 70000, output: 70000 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "OpenAI GPT OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-28", + last_updated: "2025-08-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.92, output: 2.92 }, + limit: { context: 131000, output: 131000 }, + }, + "speakleash/Bielik-11B-v3.0-Instruct": { + id: "speakleash/Bielik-11B-v3.0-Instruct", + name: "Bielik 11B v3.0 Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-03", + release_date: "2025-03-13", + last_updated: "2025-03-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.67, output: 0.67 }, + limit: { context: 32000, output: 32000 }, + }, + "speakleash/Bielik-11B-v2.6-Instruct": { + id: "speakleash/Bielik-11B-v2.6-Instruct", + name: "Bielik 11B v2.6 Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-03", + release_date: "2025-03-13", + last_updated: "2025-03-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.67, output: 0.67 }, + limit: { context: 32000, output: 32000 }, + }, + "MiniMaxAI/MiniMax-M2.5": { + id: "MiniMaxAI/MiniMax-M2.5", + name: "MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2026-01", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 196000, output: 196000 }, + }, + }, + }, + "kuae-cloud-coding-plan": { + id: "kuae-cloud-coding-plan", + env: ["KUAE_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://coding-plan-endpoint.kuaecloud.net/v1", + name: "KUAE Cloud Coding Plan", + doc: "https://docs.mthreads.com/kuaecloud/kuaecloud-doc-online/coding_plan/", + models: { + "GLM-4.7": { + id: "GLM-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + }, + }, + xai: { + id: "xai", + env: ["XAI_API_KEY"], + npm: "@ai-sdk/xai", + name: "xAI", + doc: "https://docs.x.ai/docs/models", + models: { + "grok-2-1212": { + id: "grok-2-1212", + name: "Grok 2 (1212)", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2024-12-12", + last_updated: "2024-12-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 10, cache_read: 2 }, + limit: { context: 131072, output: 8192 }, + }, + "grok-vision-beta": { + id: "grok-vision-beta", + name: "Grok Vision Beta", + family: "grok-vision", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2024-11-01", + last_updated: "2024-11-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 15, cache_read: 5 }, + limit: { context: 8192, output: 4096 }, + }, + "grok-3-mini-fast": { + id: "grok-3-mini-fast", + name: "Grok 3 Mini Fast", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 4, reasoning: 4, cache_read: 0.15 }, + limit: { context: 131072, output: 8192 }, + }, + "grok-3-mini-latest": { + id: "grok-3-mini-latest", + name: "Grok 3 Mini Latest", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.5, reasoning: 0.5, cache_read: 0.075 }, + limit: { context: 131072, output: 8192 }, + }, + "grok-3-fast": { + id: "grok-3-fast", + name: "Grok 3 Fast", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 1.25 }, + limit: { context: 131072, output: 8192 }, + }, + "grok-2-vision-latest": { + id: "grok-2-vision-latest", + name: "Grok 2 Vision Latest", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2024-08-20", + last_updated: "2024-12-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 10, cache_read: 2 }, + limit: { context: 8192, output: 4096 }, + }, + "grok-4.20-0309-reasoning": { + id: "grok-4.20-0309-reasoning", + name: "Grok 4.20 (Reasoning)", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-09", + last_updated: "2026-03-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6, cache_read: 0.2, context_over_200k: { input: 4, output: 12, cache_read: 0.4 } }, + limit: { context: 2000000, output: 30000 }, + }, + "grok-4-1-fast-non-reasoning": { + id: "grok-4-1-fast-non-reasoning", + name: "Grok 4.1 Fast (Non-Reasoning)", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-11-19", + last_updated: "2025-11-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + "grok-3-mini-fast-latest": { + id: "grok-3-mini-fast-latest", + name: "Grok 3 Mini Fast Latest", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 4, reasoning: 4, cache_read: 0.15 }, + limit: { context: 131072, output: 8192 }, + }, + "grok-4-fast": { + id: "grok-4-fast", + name: "Grok 4 Fast", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-09-19", + last_updated: "2025-09-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + "grok-3-latest": { + id: "grok-3-latest", + name: "Grok 3 Latest", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.75 }, + limit: { context: 131072, output: 8192 }, + }, + "grok-2": { + id: "grok-2", + name: "Grok 2", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2024-08-20", + last_updated: "2024-08-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 10, cache_read: 2 }, + limit: { context: 131072, output: 8192 }, + }, + "grok-code-fast-1": { + id: "grok-code-fast-1", + name: "Grok Code Fast 1", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2025-08-28", + last_updated: "2025-08-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.5, cache_read: 0.02 }, + limit: { context: 256000, output: 10000 }, + }, + "grok-4.20-0309-non-reasoning": { + id: "grok-4.20-0309-non-reasoning", + name: "Grok 4.20 (Non-Reasoning)", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2026-03-09", + last_updated: "2026-03-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6, cache_read: 0.2, context_over_200k: { input: 4, output: 12, cache_read: 0.4 } }, + limit: { context: 2000000, output: 30000 }, + }, + "grok-3-fast-latest": { + id: "grok-3-fast-latest", + name: "Grok 3 Fast Latest", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 1.25 }, + limit: { context: 131072, output: 8192 }, + }, + "grok-4.20-multi-agent-0309": { + id: "grok-4.20-multi-agent-0309", + name: "Grok 4.20 Multi-Agent", + family: "grok", + attachment: true, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2026-03-09", + last_updated: "2026-03-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6, cache_read: 0.2, context_over_200k: { input: 4, output: 12, cache_read: 0.4 } }, + limit: { context: 2000000, output: 30000 }, + }, + "grok-4": { + id: "grok-4", + name: "Grok 4", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, reasoning: 15, cache_read: 0.75 }, + limit: { context: 256000, output: 64000 }, + }, + "grok-2-latest": { + id: "grok-2-latest", + name: "Grok 2 Latest", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2024-08-20", + last_updated: "2024-12-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 10, cache_read: 2 }, + limit: { context: 131072, output: 8192 }, + }, + "grok-beta": { + id: "grok-beta", + name: "Grok Beta", + family: "grok-beta", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2024-11-01", + last_updated: "2024-11-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 15, cache_read: 5 }, + limit: { context: 131072, output: 4096 }, + }, + "grok-2-vision": { + id: "grok-2-vision", + name: "Grok 2 Vision", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2024-08-20", + last_updated: "2024-08-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 10, cache_read: 2 }, + limit: { context: 8192, output: 4096 }, + }, + "grok-4-1-fast": { + id: "grok-4-1-fast", + name: "Grok 4.1 Fast", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-11-19", + last_updated: "2025-11-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + "grok-3-mini": { + id: "grok-3-mini", + name: "Grok 3 Mini", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.5, reasoning: 0.5, cache_read: 0.075 }, + limit: { context: 131072, output: 8192 }, + }, + "grok-2-vision-1212": { + id: "grok-2-vision-1212", + name: "Grok 2 Vision (1212)", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2024-08-20", + last_updated: "2024-12-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 10, cache_read: 2 }, + limit: { context: 8192, output: 4096 }, + }, + "grok-3": { + id: "grok-3", + name: "Grok 3", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.75 }, + limit: { context: 131072, output: 8192 }, + }, + "grok-4-fast-non-reasoning": { + id: "grok-4-fast-non-reasoning", + name: "Grok 4 Fast (Non-Reasoning)", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-09-19", + last_updated: "2025-09-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + }, + }, + meganova: { + id: "meganova", + env: ["MEGANOVA_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.meganova.ai/v1", + name: "Meganova", + doc: "https://docs.meganova.ai", + models: { + "Qwen/Qwen3-235B-A22B-Instruct-2507": { + id: "Qwen/Qwen3-235B-A22B-Instruct-2507", + name: "Qwen3 235B A22B Instruct 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.09, output: 0.6 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3.5-Plus": { + id: "Qwen/Qwen3.5-Plus", + name: "Qwen3.5 Plus", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02", + last_updated: "2026-02", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2.4, reasoning: 2.4 }, + limit: { context: 1000000, output: 65536 }, + }, + "Qwen/Qwen2.5-VL-32B-Instruct": { + id: "Qwen/Qwen2.5-VL-32B-Instruct", + name: "Qwen2.5 VL 32B Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-03-24", + last_updated: "2025-03-24", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.6 }, + limit: { context: 16384, output: 16384 }, + }, + "zai-org/GLM-4.7": { + id: "zai-org/GLM-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 202752, output: 131072 }, + }, + "zai-org/GLM-5": { + id: "zai-org/GLM-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.8, output: 2.56 }, + limit: { context: 202752, output: 131072 }, + }, + "zai-org/GLM-4.6": { + id: "zai-org/GLM-4.6", + name: "GLM-4.6", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.45, output: 1.9 }, + limit: { context: 202752, output: 131072 }, + }, + "mistralai/Mistral-Small-3.2-24B-Instruct-2506": { + id: "mistralai/Mistral-Small-3.2-24B-Instruct-2506", + name: "Mistral Small 3.2 24B Instruct", + family: "mistral-small", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-06-20", + last_updated: "2025-06-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 32768, output: 8192 }, + }, + "mistralai/Mistral-Nemo-Instruct-2407": { + id: "mistralai/Mistral-Nemo-Instruct-2407", + name: "Mistral Nemo Instruct 2407", + family: "mistral", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.04 }, + limit: { context: 131072, output: 65536 }, + }, + "XiaomiMiMo/MiMo-V2-Flash": { + id: "XiaomiMiMo/MiMo-V2-Flash", + name: "MiMo V2 Flash", + family: "mimo", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-12-01", + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 262144, output: 32000 }, + }, + "meta-llama/Llama-3.3-70B-Instruct": { + id: "meta-llama/Llama-3.3-70B-Instruct", + name: "Llama 3.3 70B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 131072, output: 16384 }, + }, + "deepseek-ai/DeepSeek-V3.1": { + id: "deepseek-ai/DeepSeek-V3.1", + name: "DeepSeek V3.1", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-25", + last_updated: "2025-08-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 1 }, + limit: { context: 164000, output: 164000 }, + }, + "deepseek-ai/DeepSeek-V3-0324": { + id: "deepseek-ai/DeepSeek-V3-0324", + name: "DeepSeek V3 0324", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-03-24", + last_updated: "2025-03-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.25, output: 0.88 }, + limit: { context: 163840, output: 163840 }, + }, + "deepseek-ai/DeepSeek-V3.2-Exp": { + id: "deepseek-ai/DeepSeek-V3.2-Exp", + name: "DeepSeek V3.2 Exp", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-10", + last_updated: "2025-10-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 0.4 }, + limit: { context: 164000, output: 164000 }, + }, + "deepseek-ai/DeepSeek-R1-0528": { + id: "deepseek-ai/DeepSeek-R1-0528", + name: "DeepSeek R1 0528", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: false, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-07", + release_date: "2025-05-28", + last_updated: "2025-05-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 2.15 }, + limit: { context: 163840, output: 64000 }, + }, + "deepseek-ai/DeepSeek-V3.2": { + id: "deepseek-ai/DeepSeek-V3.2", + name: "DeepSeek V3.2", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-03", + last_updated: "2025-12-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.26, output: 0.38 }, + limit: { context: 164000, output: 164000 }, + }, + "moonshotai/Kimi-K2-Thinking": { + id: "moonshotai/Kimi-K2-Thinking", + name: "Kimi K2 Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-08", + release_date: "2025-11-06", + last_updated: "2025-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.6 }, + limit: { context: 262144, output: 262144 }, + }, + "moonshotai/Kimi-K2.5": { + id: "moonshotai/Kimi-K2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2026-01", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.45, output: 2.8 }, + limit: { context: 262144, output: 262144 }, + }, + "MiniMaxAI/MiniMax-M2.5": { + id: "MiniMaxAI/MiniMax-M2.5", + name: "MiniMax M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMaxAI/MiniMax-M2.1": { + id: "MiniMaxAI/MiniMax-M2.1", + name: "MiniMax M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.28, output: 1.2 }, + limit: { context: 196608, output: 131072 }, + }, + }, + }, + "google-vertex-anthropic": { + id: "google-vertex-anthropic", + env: ["GOOGLE_VERTEX_PROJECT", "GOOGLE_VERTEX_LOCATION", "GOOGLE_APPLICATION_CREDENTIALS"], + npm: "@ai-sdk/google-vertex/anthropic", + name: "Vertex (Anthropic)", + doc: "https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/claude", + models: { + "claude-haiku-4-5@20251001": { + id: "claude-haiku-4-5@20251001", + name: "Claude Haiku 4.5", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-02-28", + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 200000, output: 64000 }, + }, + "claude-sonnet-4-6@default": { + id: "claude-sonnet-4-6@default", + name: "Claude Sonnet 4.6", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2026-02-17", + last_updated: "2026-02-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 3, + output: 15, + cache_read: 0.3, + cache_write: 3.75, + context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, + }, + limit: { context: 200000, output: 64000 }, + }, + "claude-3-5-haiku@20241022": { + id: "claude-3-5-haiku@20241022", + name: "Claude Haiku 3.5", + family: "claude-haiku", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07-31", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, + limit: { context: 200000, output: 8192 }, + }, + "claude-3-5-sonnet@20241022": { + id: "claude-3-5-sonnet@20241022", + name: "Claude Sonnet 3.5 v2", + family: "claude-sonnet", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04-30", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 8192 }, + }, + "claude-opus-4-1@20250805": { + id: "claude-opus-4-1@20250805", + name: "Claude Opus 4.1", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "claude-sonnet-4@20250514": { + id: "claude-sonnet-4@20250514", + name: "Claude Sonnet 4", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "claude-3-7-sonnet@20250219": { + id: "claude-3-7-sonnet@20250219", + name: "Claude Sonnet 3.7", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10-31", + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "claude-opus-4@20250514": { + id: "claude-opus-4@20250514", + name: "Claude Opus 4", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "claude-opus-4-5@20251101": { + id: "claude-opus-4-5@20251101", + name: "Claude Opus 4.5", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-24", + last_updated: "2025-11-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 64000 }, + }, + "claude-sonnet-4-5@20250929": { + id: "claude-sonnet-4-5@20250929", + name: "Claude Sonnet 4.5", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "claude-opus-4-6@default": { + id: "claude-opus-4-6@default", + name: "Claude Opus 4.6", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 5, + output: 25, + cache_read: 0.5, + cache_write: 6.25, + context_over_200k: { input: 10, output: 37.5, cache_read: 1, cache_write: 12.5 }, + }, + limit: { context: 1000000, output: 128000 }, + }, + }, + }, + evroc: { + id: "evroc", + env: ["EVROC_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://models.think.evroc.com/v1", + name: "evroc", + doc: "https://docs.evroc.com/products/think/overview.html", + models: { + "Qwen/Qwen3-VL-30B-A3B-Instruct": { + id: "Qwen/Qwen3-VL-30B-A3B-Instruct", + name: "Qwen3 VL 30B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + release_date: "2025-07-30", + last_updated: "2025-07-30", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.24, output: 0.94 }, + limit: { context: 100000, output: 100000 }, + }, + "Qwen/Qwen3-Embedding-8B": { + id: "Qwen/Qwen3-Embedding-8B", + name: "Qwen3 Embedding 8B", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2025-07-30", + last_updated: "2025-07-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.12, output: 0.12 }, + limit: { context: 40960, output: 40960 }, + }, + "Qwen/Qwen3-30B-A3B-Instruct-2507-FP8": { + id: "Qwen/Qwen3-30B-A3B-Instruct-2507-FP8", + name: "Qwen3 30B 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + release_date: "2025-07-30", + last_updated: "2025-07-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.35, output: 1.42 }, + limit: { context: 64000, output: 64000 }, + }, + "mistralai/devstral-small-2-24b-instruct-2512": { + id: "mistralai/devstral-small-2-24b-instruct-2512", + name: "Devstral Small 2 24B Instruct 2512", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: true, + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.12, output: 0.47 }, + limit: { context: 32768, output: 32768 }, + }, + "mistralai/Voxtral-Small-24B-2507": { + id: "mistralai/Voxtral-Small-24B-2507", + name: "Voxtral Small 24B", + family: "voxtral", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2025-03-01", + last_updated: "2025-03-01", + modalities: { input: ["audio", "text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.00236, output: 0.00236, output_audio: 2.36 }, + limit: { context: 32000, output: 32000 }, + }, + "mistralai/Magistral-Small-2509": { + id: "mistralai/Magistral-Small-2509", + name: "Magistral Small 1.2 24B", + family: "magistral-small", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2025-06-01", + last_updated: "2025-06-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.59, output: 2.36 }, + limit: { context: 131072, output: 131072 }, + }, + "microsoft/Phi-4-multimodal-instruct": { + id: "microsoft/Phi-4-multimodal-instruct", + name: "Phi-4 15B", + family: "phi", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.24, output: 0.47 }, + limit: { context: 32000, output: 32000 }, + }, + "KBLab/kb-whisper-large": { + id: "KBLab/kb-whisper-large", + name: "KB Whisper", + family: "whisper", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2024-10-01", + last_updated: "2024-10-01", + modalities: { input: ["audio"], output: ["text"] }, + open_weights: true, + cost: { input: 0.00236, output: 0.00236, output_audio: 2.36 }, + limit: { context: 448, output: 448 }, + }, + "nvidia/Llama-3.3-70B-Instruct-FP8": { + id: "nvidia/Llama-3.3-70B-Instruct-FP8", + name: "Llama 3.3 70B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.18, output: 1.18 }, + limit: { context: 131072, output: 32768 }, + }, + "openai/whisper-large-v3": { + id: "openai/whisper-large-v3", + name: "Whisper 3 Large", + family: "whisper", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2024-10-01", + last_updated: "2024-10-01", + modalities: { input: ["audio"], output: ["text"] }, + open_weights: true, + cost: { input: 0.00236, output: 0.00236, output_audio: 2.36 }, + limit: { context: 448, output: 4096 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "GPT OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.24, output: 0.94 }, + limit: { context: 65536, output: 65536 }, + }, + "moonshotai/Kimi-K2.5": { + id: "moonshotai/Kimi-K2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 1.47, output: 5.9 }, + limit: { context: 262144, output: 262144 }, + }, + "intfloat/multilingual-e5-large-instruct": { + id: "intfloat/multilingual-e5-large-instruct", + name: "E5 Multi-Lingual Large Embeddings 0.6B", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2024-06-01", + last_updated: "2024-06-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.12, output: 0.12 }, + limit: { context: 512, output: 512 }, + }, + }, + }, + synthetic: { + id: "synthetic", + env: ["SYNTHETIC_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.synthetic.new/openai/v1", + name: "Synthetic", + doc: "https://synthetic.new/pricing", + models: { + "hf:meta-llama/Llama-3.1-405B-Instruct": { + id: "hf:meta-llama/Llama-3.1-405B-Instruct", + name: "Llama-3.1-405B-Instruct", + family: "llama", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 3, output: 3 }, + limit: { context: 128000, output: 32768 }, + }, + "hf:meta-llama/Llama-4-Scout-17B-16E-Instruct": { + id: "hf:meta-llama/Llama-4-Scout-17B-16E-Instruct", + name: "Llama-4-Scout-17B-16E-Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 328000, output: 4096 }, + }, + "hf:meta-llama/Llama-3.3-70B-Instruct": { + id: "hf:meta-llama/Llama-3.3-70B-Instruct", + name: "Llama-3.3-70B-Instruct", + family: "llama", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.9, output: 0.9 }, + limit: { context: 128000, output: 32768 }, + }, + "hf:meta-llama/Llama-3.1-8B-Instruct": { + id: "hf:meta-llama/Llama-3.1-8B-Instruct", + name: "Llama-3.1-8B-Instruct", + family: "llama", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 128000, output: 32768 }, + }, + "hf:meta-llama/Llama-3.1-70B-Instruct": { + id: "hf:meta-llama/Llama-3.1-70B-Instruct", + name: "Llama-3.1-70B-Instruct", + family: "llama", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.9, output: 0.9 }, + limit: { context: 128000, output: 32768 }, + }, + "hf:meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8": { + id: "hf:meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8", + name: "Llama-4-Maverick-17B-128E-Instruct-FP8", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.22, output: 0.88 }, + limit: { context: 524000, output: 4096 }, + }, + "hf:MiniMaxAI/MiniMax-M2": { + id: "hf:MiniMaxAI/MiniMax-M2", + name: "MiniMax-M2", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-10-27", + last_updated: "2025-10-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.19 }, + limit: { context: 196608, output: 131000 }, + }, + "hf:MiniMaxAI/MiniMax-M2.5": { + id: "hf:MiniMaxAI/MiniMax-M2.5", + name: "MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-02-07", + last_updated: "2026-02-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3, cache_read: 0.6 }, + limit: { context: 191488, output: 65536 }, + }, + "hf:MiniMaxAI/MiniMax-M2.1": { + id: "hf:MiniMaxAI/MiniMax-M2.1", + name: "MiniMax-M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.19 }, + limit: { context: 204800, output: 131072 }, + }, + "hf:Qwen/Qwen3.5-397B-A17B": { + id: "hf:Qwen/Qwen3.5-397B-A17B", + name: "Qwen3.5-97B-A17B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3, cache_read: 0.6 }, + limit: { context: 262144, output: 65536 }, + status: "beta", + }, + "hf:Qwen/Qwen2.5-Coder-32B-Instruct": { + id: "hf:Qwen/Qwen2.5-Coder-32B-Instruct", + name: "Qwen2.5-Coder-32B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-10", + release_date: "2024-11-11", + last_updated: "2024-11-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.8, output: 0.8 }, + limit: { context: 32768, output: 32768 }, + }, + "hf:Qwen/Qwen3-235B-A22B-Instruct-2507": { + id: "hf:Qwen/Qwen3-235B-A22B-Instruct-2507", + name: "Qwen 3 235B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04-28", + last_updated: "2025-07-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.6 }, + limit: { context: 256000, output: 32000 }, + }, + "hf:Qwen/Qwen3-235B-A22B-Thinking-2507": { + id: "hf:Qwen/Qwen3-235B-A22B-Thinking-2507", + name: "Qwen3 235B A22B Thinking 2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-25", + last_updated: "2025-07-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.65, output: 3 }, + limit: { context: 256000, output: 32000 }, + }, + "hf:Qwen/Qwen3-Coder-480B-A35B-Instruct": { + id: "hf:Qwen/Qwen3-Coder-480B-A35B-Instruct", + name: "Qwen 3 Coder 480B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2, output: 2 }, + limit: { context: 256000, output: 32000 }, + }, + "hf:deepseek-ai/DeepSeek-V3.1": { + id: "hf:deepseek-ai/DeepSeek-V3.1", + name: "DeepSeek V3.1", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-21", + last_updated: "2025-08-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.56, output: 1.68 }, + limit: { context: 128000, output: 128000 }, + }, + "hf:deepseek-ai/DeepSeek-V3-0324": { + id: "hf:deepseek-ai/DeepSeek-V3-0324", + name: "DeepSeek V3 (0324)", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-08-01", + last_updated: "2025-08-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.2, output: 1.2 }, + limit: { context: 128000, output: 128000 }, + }, + "hf:deepseek-ai/DeepSeek-V3": { + id: "hf:deepseek-ai/DeepSeek-V3", + name: "DeepSeek V3", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-01-20", + last_updated: "2025-05-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.25, output: 1.25 }, + limit: { context: 128000, output: 128000 }, + }, + "hf:deepseek-ai/DeepSeek-R1": { + id: "hf:deepseek-ai/DeepSeek-R1", + name: "DeepSeek R1", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.19 }, + limit: { context: 128000, output: 128000 }, + }, + "hf:deepseek-ai/DeepSeek-R1-0528": { + id: "hf:deepseek-ai/DeepSeek-R1-0528", + name: "DeepSeek R1 (0528)", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-01", + last_updated: "2025-08-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 8 }, + limit: { context: 128000, output: 128000 }, + }, + "hf:deepseek-ai/DeepSeek-V3.2": { + id: "hf:deepseek-ai/DeepSeek-V3.2", + name: "DeepSeek V3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 0.4, cache_read: 0.27, cache_write: 0 }, + limit: { context: 162816, input: 162816, output: 8000 }, + }, + "hf:deepseek-ai/DeepSeek-V3.1-Terminus": { + id: "hf:deepseek-ai/DeepSeek-V3.1-Terminus", + name: "DeepSeek V3.1 Terminus", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-09-22", + last_updated: "2025-09-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.2, output: 1.2 }, + limit: { context: 128000, output: 128000 }, + }, + "hf:openai/gpt-oss-120b": { + id: "hf:openai/gpt-oss-120b", + name: "GPT OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 128000, output: 32768 }, + }, + "hf:moonshotai/Kimi-K2-Thinking": { + id: "hf:moonshotai/Kimi-K2-Thinking", + name: "Kimi K2 Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-11", + release_date: "2025-11-07", + last_updated: "2025-11-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.19 }, + limit: { context: 262144, output: 262144 }, + }, + "hf:moonshotai/Kimi-K2-Instruct-0905": { + id: "hf:moonshotai/Kimi-K2-Instruct-0905", + name: "Kimi K2 0905", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.2, output: 1.2 }, + limit: { context: 262144, output: 32768 }, + }, + "hf:moonshotai/Kimi-K2.5": { + id: "hf:moonshotai/Kimi-K2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.19 }, + limit: { context: 262144, output: 65536 }, + }, + "hf:nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-NVFP4": { + id: "hf:nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-NVFP4", + name: "Nemotron 3 Super 120B", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2024-04", + release_date: "2026-03-11", + last_updated: "2026-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1, cache_read: 0.3 }, + limit: { context: 262144, output: 65536 }, + }, + "hf:nvidia/Kimi-K2.5-NVFP4": { + id: "hf:nvidia/Kimi-K2.5-NVFP4", + name: "Kimi K2.5 (NVFP4)", + family: "kimi", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.19 }, + limit: { context: 262144, output: 65536 }, + }, + "hf:zai-org/GLM-4.7-Flash": { + id: "hf:zai-org/GLM-4.7-Flash", + name: "GLM-4.7-Flash", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-01-18", + last_updated: "2026-01-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.06, output: 0.4, cache_read: 0.06 }, + limit: { context: 196608, output: 65536 }, + }, + "hf:zai-org/GLM-4.7": { + id: "hf:zai-org/GLM-4.7", + name: "GLM 4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.19 }, + limit: { context: 200000, output: 64000 }, + }, + "hf:zai-org/GLM-5": { + id: "hf:zai-org/GLM-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-04-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3, cache_read: 1 }, + limit: { context: 196608, output: 65536 }, + }, + "hf:zai-org/GLM-4.6": { + id: "hf:zai-org/GLM-4.6", + name: "GLM 4.6", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.19 }, + limit: { context: 200000, output: 64000 }, + }, + }, + }, + nvidia: { + id: "nvidia", + env: ["NVIDIA_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://integrate.api.nvidia.com/v1", + name: "Nvidia", + doc: "https://docs.api.nvidia.com/nim/", + models: { + "black-forest-labs/flux.1-dev": { + id: "black-forest-labs/flux.1-dev", + name: "FLUX.1-dev", + family: "flux", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-08", + release_date: "2024-08-01", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 4096, output: 0 }, + }, + "stepfun-ai/step-3.5-flash": { + id: "stepfun-ai/step-3.5-flash", + name: "Step 3.5 Flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-02", + last_updated: "2026-02-02", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 16384 }, + }, + "mistralai/codestral-22b-instruct-v0.1": { + id: "mistralai/codestral-22b-instruct-v0.1", + name: "Codestral 22b Instruct V0.1", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-05-29", + last_updated: "2024-05-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "mistralai/mistral-large-3-675b-instruct-2512": { + id: "mistralai/mistral-large-3-675b-instruct-2512", + name: "Mistral Large 3 675B Instruct 2512", + family: "mistral-large", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-12-02", + last_updated: "2025-12-02", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 262144 }, + }, + "mistralai/devstral-2-123b-instruct-2512": { + id: "mistralai/devstral-2-123b-instruct-2512", + name: "Devstral-2-123B-Instruct-2512", + family: "devstral", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-12", + release_date: "2025-12-08", + last_updated: "2025-12-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 262144 }, + }, + "mistralai/ministral-14b-instruct-2512": { + id: "mistralai/ministral-14b-instruct-2512", + name: "Ministral 3 14B Instruct 2512", + family: "ministral", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-12", + release_date: "2025-12-01", + last_updated: "2025-12-08", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 262144 }, + }, + "mistralai/mistral-small-3.1-24b-instruct-2503": { + id: "mistralai/mistral-small-3.1-24b-instruct-2503", + name: "Mistral Small 3.1 24b Instruct 2503", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-03-11", + last_updated: "2025-03-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "mistralai/mamba-codestral-7b-v0.1": { + id: "mistralai/mamba-codestral-7b-v0.1", + name: "Mamba Codestral 7b V0.1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2024-07-16", + last_updated: "2024-07-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "mistralai/mistral-large-2-instruct": { + id: "mistralai/mistral-large-2-instruct", + name: "Mistral Large 2 Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-07-24", + last_updated: "2024-07-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "microsoft/phi-3-medium-4k-instruct": { + id: "microsoft/phi-3-medium-4k-instruct", + name: "Phi 3 Medium 4k Instruct", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-05-07", + last_updated: "2024-05-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 4000, output: 4096 }, + }, + "microsoft/phi-3.5-moe-instruct": { + id: "microsoft/phi-3.5-moe-instruct", + name: "Phi 3.5 Moe Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-08-17", + last_updated: "2024-08-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "microsoft/phi-4-mini-instruct": { + id: "microsoft/phi-4-mini-instruct", + name: "Phi-4-Mini", + family: "phi", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2024-12-01", + last_updated: "2025-09-05", + modalities: { input: ["text", "image", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 8192 }, + }, + "microsoft/phi-3-small-8k-instruct": { + id: "microsoft/phi-3-small-8k-instruct", + name: "Phi 3 Small 8k Instruct", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-05-07", + last_updated: "2024-05-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 8000, output: 4096 }, + }, + "microsoft/phi-3-vision-128k-instruct": { + id: "microsoft/phi-3-vision-128k-instruct", + name: "Phi 3 Vision 128k Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-05-19", + last_updated: "2024-05-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "microsoft/phi-3.5-vision-instruct": { + id: "microsoft/phi-3.5-vision-instruct", + name: "Phi 3.5 Vision Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-08-16", + last_updated: "2024-08-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "microsoft/phi-3-small-128k-instruct": { + id: "microsoft/phi-3-small-128k-instruct", + name: "Phi 3 Small 128k Instruct", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-05-07", + last_updated: "2024-05-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "microsoft/phi-3-medium-128k-instruct": { + id: "microsoft/phi-3-medium-128k-instruct", + name: "Phi 3 Medium 128k Instruct", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-05-07", + last_updated: "2024-05-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "nvidia/llama-3.3-nemotron-super-49b-v1": { + id: "nvidia/llama-3.3-nemotron-super-49b-v1", + name: "Llama 3.3 Nemotron Super 49b V1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-03-16", + last_updated: "2025-03-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "nvidia/nemotron-4-340b-instruct": { + id: "nvidia/nemotron-4-340b-instruct", + name: "Nemotron 4 340b Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-06-13", + last_updated: "2024-06-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "nvidia/llama3-chatqa-1.5-70b": { + id: "nvidia/llama3-chatqa-1.5-70b", + name: "Llama3 Chatqa 1.5 70b", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-04-28", + last_updated: "2024-04-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "nvidia/llama-3.3-nemotron-super-49b-v1.5": { + id: "nvidia/llama-3.3-nemotron-super-49b-v1.5", + name: "Llama 3.3 Nemotron Super 49b V1.5", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-03-16", + last_updated: "2025-03-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "nvidia/nemotron-3-super-120b-a12b": { + id: "nvidia/nemotron-3-super-120b-a12b", + name: "Nemotron 3 Super", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2026-03-11", + last_updated: "2026-03-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 262144, output: 262144 }, + }, + "nvidia/parakeet-tdt-0.6b-v2": { + id: "nvidia/parakeet-tdt-0.6b-v2", + name: "Parakeet TDT 0.6B v2", + family: "parakeet", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2024-01", + release_date: "2024-01-01", + last_updated: "2025-09-05", + modalities: { input: ["audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 0, output: 4096 }, + }, + "nvidia/nemotron-3-nano-30b-a3b": { + id: "nvidia/nemotron-3-nano-30b-a3b", + name: "nemotron-3-nano-30b-a3b", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-09", + release_date: "2024-12", + last_updated: "2024-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 131072 }, + }, + "nvidia/llama-3.1-nemotron-ultra-253b-v1": { + id: "nvidia/llama-3.1-nemotron-ultra-253b-v1", + name: "Llama-3.1-Nemotron-Ultra-253B-v1", + family: "llama", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2024-07-01", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 8192 }, + }, + "nvidia/nvidia-nemotron-nano-9b-v2": { + id: "nvidia/nvidia-nemotron-nano-9b-v2", + name: "nvidia-nemotron-nano-9b-v2", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-09", + release_date: "2025-08-18", + last_updated: "2025-08-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 131072 }, + }, + "nvidia/cosmos-nemotron-34b": { + id: "nvidia/cosmos-nemotron-34b", + name: "Cosmos Nemotron 34B", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2024-01", + release_date: "2024-01-01", + last_updated: "2025-09-05", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 8192 }, + }, + "nvidia/llama-embed-nemotron-8b": { + id: "nvidia/llama-embed-nemotron-8b", + name: "Llama Embed Nemotron 8B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2025-03", + release_date: "2025-03-18", + last_updated: "2025-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 32768, output: 2048 }, + }, + "nvidia/llama-3.1-nemotron-51b-instruct": { + id: "nvidia/llama-3.1-nemotron-51b-instruct", + name: "Llama 3.1 Nemotron 51b Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-09-22", + last_updated: "2024-09-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "nvidia/llama-3.1-nemotron-70b-instruct": { + id: "nvidia/llama-3.1-nemotron-70b-instruct", + name: "Llama 3.1 Nemotron 70b Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-10-12", + last_updated: "2024-10-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "nvidia/nemoretriever-ocr-v1": { + id: "nvidia/nemoretriever-ocr-v1", + name: "NeMo Retriever OCR v1", + family: "nemoretriever", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2024-01", + release_date: "2024-01-01", + last_updated: "2025-09-05", + modalities: { input: ["image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 0, output: 4096 }, + }, + "deepseek-ai/deepseek-r1": { + id: "deepseek-ai/deepseek-r1", + name: "Deepseek R1", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "deepseek-ai/deepseek-v3.1": { + id: "deepseek-ai/deepseek-v3.1", + name: "DeepSeek V3.1", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-08-20", + last_updated: "2025-08-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 8192 }, + }, + "deepseek-ai/deepseek-coder-6.7b-instruct": { + id: "deepseek-ai/deepseek-coder-6.7b-instruct", + name: "Deepseek Coder 6.7b Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2023-10-29", + last_updated: "2023-10-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "deepseek-ai/deepseek-v3.2": { + id: "deepseek-ai/deepseek-v3.2", + name: "DeepSeek V3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 163840, output: 65536 }, + }, + "deepseek-ai/deepseek-r1-0528": { + id: "deepseek-ai/deepseek-r1-0528", + name: "Deepseek R1 0528", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-05-28", + last_updated: "2025-05-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "deepseek-ai/deepseek-v3.1-terminus": { + id: "deepseek-ai/deepseek-v3.1-terminus", + name: "DeepSeek V3.1 Terminus", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-09-22", + last_updated: "2025-09-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 8192 }, + }, + "openai/whisper-large-v3": { + id: "openai/whisper-large-v3", + name: "Whisper Large v3", + family: "whisper", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2023-09", + release_date: "2023-09-01", + last_updated: "2025-09-05", + modalities: { input: ["audio"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 0, output: 4096 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "GPT-OSS-120B", + family: "gpt-oss", + attachment: true, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2025-08", + release_date: "2025-08-04", + last_updated: "2025-08-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 8192 }, + }, + "minimaxai/minimax-m2.1": { + id: "minimaxai/minimax-m2.1", + name: "MiniMax-M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "minimaxai/minimax-m2.5": { + id: "minimaxai/minimax-m2.5", + name: "MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "z-ai/glm4.7": { + id: "z-ai/glm4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "z-ai/glm5": { + id: "z-ai/glm5", + name: "GLM5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 202752, output: 131000 }, + }, + "meta/llama-4-scout-17b-16e-instruct": { + id: "meta/llama-4-scout-17b-16e-instruct", + name: "Llama 4 Scout 17b 16e Instruct", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-02", + release_date: "2025-04-02", + last_updated: "2025-04-02", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "meta/llama-3.3-70b-instruct": { + id: "meta/llama-3.3-70b-instruct", + name: "Llama 3.3 70b Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-11-26", + last_updated: "2024-11-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "meta/llama3-8b-instruct": { + id: "meta/llama3-8b-instruct", + name: "Llama3 8b Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-04-17", + last_updated: "2024-04-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "meta/llama3-70b-instruct": { + id: "meta/llama3-70b-instruct", + name: "Llama3 70b Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-04-17", + last_updated: "2024-04-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "meta/codellama-70b": { + id: "meta/codellama-70b", + name: "Codellama 70b", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2024-01-29", + last_updated: "2024-01-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "meta/llama-3.2-11b-vision-instruct": { + id: "meta/llama-3.2-11b-vision-instruct", + name: "Llama 3.2 11b Vision Instruct", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-09-18", + last_updated: "2024-09-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "meta/llama-3.1-70b-instruct": { + id: "meta/llama-3.1-70b-instruct", + name: "Llama 3.1 70b Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-07-16", + last_updated: "2024-07-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "meta/llama-3.2-1b-instruct": { + id: "meta/llama-3.2-1b-instruct", + name: "Llama 3.2 1b Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-09-18", + last_updated: "2024-09-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "meta/llama-4-maverick-17b-128e-instruct": { + id: "meta/llama-4-maverick-17b-128e-instruct", + name: "Llama 4 Maverick 17b 128e Instruct", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-02", + release_date: "2025-04-01", + last_updated: "2025-04-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "meta/llama-3.1-405b-instruct": { + id: "meta/llama-3.1-405b-instruct", + name: "Llama 3.1 405b Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-07-16", + last_updated: "2024-07-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "qwen/qwen3-235b-a22b": { + id: "qwen/qwen3-235b-a22b", + name: "Qwen3-235B-A22B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2024-12-01", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 8192 }, + }, + "qwen/qwen2.5-coder-7b-instruct": { + id: "qwen/qwen2.5-coder-7b-instruct", + name: "Qwen2.5 Coder 7b Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-09-17", + last_updated: "2024-09-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "qwen/qwen2.5-coder-32b-instruct": { + id: "qwen/qwen2.5-coder-32b-instruct", + name: "Qwen2.5 Coder 32b Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-11-06", + last_updated: "2024-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "qwen/qwen3.5-397b-a17b": { + id: "qwen/qwen3.5-397b-a17b", + name: "Qwen3.5-397B-A17B", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2026-01", + release_date: "2026-02-16", + last_updated: "2026-02-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 8192 }, + }, + "qwen/qwen3-next-80b-a3b-thinking": { + id: "qwen/qwen3-next-80b-a3b-thinking", + name: "Qwen3-Next-80B-A3B-Thinking", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2024-12-01", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 16384 }, + }, + "qwen/qwq-32b": { + id: "qwen/qwq-32b", + name: "Qwq 32b", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-03-05", + last_updated: "2025-03-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "qwen/qwen3-next-80b-a3b-instruct": { + id: "qwen/qwen3-next-80b-a3b-instruct", + name: "Qwen3-Next-80B-A3B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2024-12-01", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 16384 }, + }, + "qwen/qwen3-coder-480b-a35b-instruct": { + id: "qwen/qwen3-coder-480b-a35b-instruct", + name: "Qwen3 Coder 480B A35B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 66536 }, + }, + "google/gemma-2-2b-it": { + id: "google/gemma-2-2b-it", + name: "Gemma 2 2b It", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-07-16", + last_updated: "2024-07-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "google/gemma-3n-e4b-it": { + id: "google/gemma-3n-e4b-it", + name: "Gemma 3n E4b It", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-06", + release_date: "2025-06-03", + last_updated: "2025-06-03", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "google/gemma-3-1b-it": { + id: "google/gemma-3-1b-it", + name: "Gemma 3 1b It", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-03-10", + last_updated: "2025-03-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "google/codegemma-7b": { + id: "google/codegemma-7b", + name: "Codegemma 7b", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2024-03-21", + last_updated: "2024-03-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "google/gemma-4-31b-it": { + id: "google/gemma-4-31b-it", + name: "Gemma-4-31B-IT", + family: "gemma", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-04-02", + last_updated: "2026-04-02", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 16384 }, + }, + "google/gemma-3-12b-it": { + id: "google/gemma-3-12b-it", + name: "Gemma 3 12b It", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-03-01", + last_updated: "2025-03-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "google/codegemma-1.1-7b": { + id: "google/codegemma-1.1-7b", + name: "Codegemma 1.1 7b", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2024-04-30", + last_updated: "2024-04-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "google/gemma-3n-e2b-it": { + id: "google/gemma-3n-e2b-it", + name: "Gemma 3n E2b It", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-06", + release_date: "2025-06-12", + last_updated: "2025-06-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "google/gemma-2-27b-it": { + id: "google/gemma-2-27b-it", + name: "Gemma 2 27b It", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-06-24", + last_updated: "2024-06-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "google/gemma-3-27b-it": { + id: "google/gemma-3-27b-it", + name: "Gemma-3-27B-IT", + family: "gemma", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2024-12-01", + last_updated: "2025-09-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 8192 }, + }, + "moonshotai/kimi-k2.5": { + id: "moonshotai/kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-07", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 262144 }, + }, + "moonshotai/kimi-k2-instruct": { + id: "moonshotai/kimi-k2-instruct", + name: "Kimi K2 Instruct", + family: "kimi", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-01", + release_date: "2025-01-01", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 8192 }, + }, + "moonshotai/kimi-k2-instruct-0905": { + id: "moonshotai/kimi-k2-instruct-0905", + name: "Kimi K2 0905", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 262144 }, + }, + "moonshotai/kimi-k2-thinking": { + id: "moonshotai/kimi-k2-thinking", + name: "Kimi K2 Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: true, + structured_output: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-11", + last_updated: "2025-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 262144, output: 262144 }, + }, + }, + }, + inference: { + id: "inference", + env: ["INFERENCE_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://inference.net/v1", + name: "Inference", + doc: "https://inference.net/models", + models: { + "mistral/mistral-nemo-12b-instruct": { + id: "mistral/mistral-nemo-12b-instruct", + name: "Mistral Nemo 12B Instruct", + family: "mistral-nemo", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.038, output: 0.1 }, + limit: { context: 16000, output: 4096 }, + }, + "meta/llama-3.2-11b-vision-instruct": { + id: "meta/llama-3.2-11b-vision-instruct", + name: "Llama 3.2 11B Vision Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.055, output: 0.055 }, + limit: { context: 16000, output: 4096 }, + }, + "meta/llama-3.2-1b-instruct": { + id: "meta/llama-3.2-1b-instruct", + name: "Llama 3.2 1B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.01, output: 0.01 }, + limit: { context: 16000, output: 4096 }, + }, + "meta/llama-3.2-3b-instruct": { + id: "meta/llama-3.2-3b-instruct", + name: "Llama 3.2 3B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.02 }, + limit: { context: 16000, output: 4096 }, + }, + "meta/llama-3.1-8b-instruct": { + id: "meta/llama-3.1-8b-instruct", + name: "Llama 3.1 8B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.025, output: 0.025 }, + limit: { context: 16000, output: 4096 }, + }, + "qwen/qwen-2.5-7b-vision-instruct": { + id: "qwen/qwen-2.5-7b-vision-instruct", + name: "Qwen 2.5 7B Vision Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 125000, output: 4096 }, + }, + "qwen/qwen3-embedding-4b": { + id: "qwen/qwen3-embedding-4b", + name: "Qwen 3 Embedding 4B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2024-12", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.01, output: 0 }, + limit: { context: 32000, output: 2048 }, + }, + "google/gemma-3": { + id: "google/gemma-3", + name: "Google Gemma 3", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.3 }, + limit: { context: 125000, output: 4096 }, + }, + "osmosis/osmosis-structure-0.6b": { + id: "osmosis/osmosis-structure-0.6b", + name: "Osmosis Structure 0.6B", + family: "osmosis", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.5 }, + limit: { context: 4000, output: 2048 }, + }, + }, + }, + inception: { + id: "inception", + env: ["INCEPTION_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.inceptionlabs.ai/v1/", + name: "Inception", + doc: "https://platform.inceptionlabs.ai/docs", + models: { + "mercury-edit": { + id: "mercury-edit", + name: "Mercury Edit", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2026-02-24", + last_updated: "2026-02-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 0.75, cache_read: 0.025 }, + limit: { context: 128000, output: 8192 }, + }, + "mercury-2": { + id: "mercury-2", + name: "Mercury 2", + family: "mercury", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01-01", + release_date: "2026-02-24", + last_updated: "2026-02-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 0.75, cache_read: 0.025 }, + limit: { context: 128000, output: 50000 }, + }, + mercury: { + id: "mercury", + name: "Mercury", + family: "mercury", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2025-06-26", + last_updated: "2025-07-31", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1, cache_read: 0.25, cache_write: 1 }, + limit: { context: 128000, output: 16384 }, + }, + "mercury-coder": { + id: "mercury-coder", + name: "Mercury Coder", + family: "mercury", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2025-02-26", + last_updated: "2025-07-31", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1, cache_read: 0.25, cache_write: 1 }, + limit: { context: 128000, output: 16384 }, + }, + }, + }, + openai: { + id: "openai", + env: ["OPENAI_API_KEY"], + npm: "@ai-sdk/openai", + name: "OpenAI", + doc: "https://platform.openai.com/docs/models", + models: { + "gpt-5.1-codex-max": { + id: "gpt-5.1-codex-max", + name: "GPT-5.1 Codex Max", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gpt-4o-2024-05-13": { + id: "gpt-4o-2024-05-13", + name: "GPT-4o (2024-05-13)", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-09", + release_date: "2024-05-13", + last_updated: "2024-05-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 15 }, + limit: { context: 128000, output: 4096 }, + }, + "o1-mini": { + id: "o1-mini", + name: "o1-mini", + family: "o-mini", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: true, + temperature: false, + knowledge: "2023-09", + release_date: "2024-09-12", + last_updated: "2024-09-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, + limit: { context: 128000, output: 65536 }, + }, + "gpt-5.2-pro": { + id: "gpt-5.2-pro", + name: "GPT-5.2 Pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 21, output: 168 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "text-embedding-3-large": { + id: "text-embedding-3-large", + name: "text-embedding-3-large", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2024-01", + release_date: "2024-01-25", + last_updated: "2024-01-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.13, output: 0 }, + limit: { context: 8191, output: 3072 }, + }, + "gpt-5.3-chat-latest": { + id: "gpt-5.3-chat-latest", + name: "GPT-5.3 Chat (latest)", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-08-31", + release_date: "2026-03-03", + last_updated: "2026-03-03", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 128000, output: 16384 }, + }, + "gpt-5-mini": { + id: "gpt-5-mini", + name: "GPT-5 Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.025 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gpt-5-nano": { + id: "gpt-5-nano", + name: "GPT-5 Nano", + family: "gpt-nano", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.4, cache_read: 0.005 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gpt-5.3-codex": { + id: "gpt-5.3-codex", + name: "GPT-5.3 Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gpt-4-turbo": { + id: "gpt-4-turbo", + name: "GPT-4 Turbo", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + knowledge: "2023-12", + release_date: "2023-11-06", + last_updated: "2024-04-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 10, output: 30 }, + limit: { context: 128000, output: 4096 }, + }, + "text-embedding-ada-002": { + id: "text-embedding-ada-002", + name: "text-embedding-ada-002", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2022-12", + release_date: "2022-12-15", + last_updated: "2022-12-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0 }, + limit: { context: 8192, output: 1536 }, + }, + "gpt-5.2": { + id: "gpt-5.2", + name: "GPT-5.2", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "o3-pro": { + id: "o3-pro", + name: "o3-pro", + family: "o-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05", + release_date: "2025-06-10", + last_updated: "2025-06-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 20, output: 80 }, + limit: { context: 200000, output: 100000 }, + }, + "gpt-4o-mini": { + id: "gpt-4o-mini", + name: "GPT-4o mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-09", + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6, cache_read: 0.08 }, + limit: { context: 128000, output: 16384 }, + }, + "o4-mini-deep-research": { + id: "o4-mini-deep-research", + name: "o4-mini-deep-research", + family: "o-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05", + release_date: "2024-06-26", + last_updated: "2024-06-26", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 200000, output: 100000 }, + }, + "gpt-5.4-mini": { + id: "gpt-5.4-mini", + name: "GPT-5.4 mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-17", + last_updated: "2026-03-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.75, output: 4.5, cache_read: 0.075 }, + limit: { context: 400000, input: 272000, output: 128000 }, + experimental: { + modes: { + fast: { + cost: { input: 1.5, output: 9, cache_read: 0.15 }, + provider: { body: { service_tier: "priority" } }, + }, + }, + }, + }, + "o4-mini": { + id: "o4-mini", + name: "o4-mini", + family: "o-mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05", + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.28 }, + limit: { context: 200000, output: 100000 }, + }, + "gpt-5.4-nano": { + id: "gpt-5.4-nano", + name: "GPT-5.4 nano", + family: "gpt-nano", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-17", + last_updated: "2026-03-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.25, cache_read: 0.02 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gpt-image-1": { + id: "gpt-image-1", + name: "gpt-image-1", + family: "gpt-image", + attachment: true, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-04-24", + last_updated: "2025-04-24", + modalities: { input: ["text", "image"], output: ["image"] }, + open_weights: false, + limit: { context: 0, input: 0, output: 0 }, + }, + "gpt-5.2-codex": { + id: "gpt-5.2-codex", + name: "GPT-5.2 Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gpt-5.2-chat-latest": { + id: "gpt-5.2-chat-latest", + name: "GPT-5.2 Chat", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 128000, output: 16384 }, + }, + "gpt-5.1-codex-mini": { + id: "gpt-5.1-codex-mini", + name: "GPT-5.1 Codex mini", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.025 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "o1-preview": { + id: "o1-preview", + name: "o1-preview", + family: "o", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2023-09", + release_date: "2024-09-12", + last_updated: "2024-09-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 60, cache_read: 7.5 }, + limit: { context: 128000, output: 32768 }, + }, + "gpt-4o-2024-08-06": { + id: "gpt-4o-2024-08-06", + name: "GPT-4o (2024-08-06)", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-09", + release_date: "2024-08-06", + last_updated: "2024-08-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10, cache_read: 1.25 }, + limit: { context: 128000, output: 16384 }, + }, + "gpt-5.1": { + id: "gpt-5.1", + name: "GPT-5.1", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.13 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gpt-image-1-mini": { + id: "gpt-image-1-mini", + name: "gpt-image-1-mini", + family: "gpt-image", + attachment: true, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-09-26", + last_updated: "2025-09-26", + modalities: { input: ["text", "image"], output: ["text", "image"] }, + open_weights: false, + limit: { context: 0, input: 0, output: 0 }, + }, + o1: { + id: "o1", + name: "o1", + family: "o", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2023-09", + release_date: "2024-12-05", + last_updated: "2024-12-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 60, cache_read: 7.5 }, + limit: { context: 200000, output: 100000 }, + }, + "gpt-5.4-pro": { + id: "gpt-5.4-pro", + name: "GPT-5.4 Pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 30, output: 180, context_over_200k: { input: 60, output: 270 } }, + limit: { context: 1050000, input: 922000, output: 128000 }, + }, + "gpt-3.5-turbo": { + id: "gpt-3.5-turbo", + name: "GPT-3.5-turbo", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + knowledge: "2021-09-01", + release_date: "2023-03-01", + last_updated: "2023-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 1.5, cache_read: 1.25 }, + limit: { context: 16385, output: 4096 }, + }, + "o3-deep-research": { + id: "o3-deep-research", + name: "o3-deep-research", + family: "o", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05", + release_date: "2024-06-26", + last_updated: "2024-06-26", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 10, output: 40, cache_read: 2.5 }, + limit: { context: 200000, output: 100000 }, + }, + "o3-mini": { + id: "o3-mini", + name: "o3-mini", + family: "o-mini", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05", + release_date: "2024-12-20", + last_updated: "2025-01-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, + limit: { context: 200000, output: 100000 }, + }, + "text-embedding-3-small": { + id: "text-embedding-3-small", + name: "text-embedding-3-small", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2024-01", + release_date: "2024-01-25", + last_updated: "2024-01-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.02, output: 0 }, + limit: { context: 8191, output: 1536 }, + }, + "o1-pro": { + id: "o1-pro", + name: "o1-pro", + family: "o-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2023-09", + release_date: "2025-03-19", + last_updated: "2025-03-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 150, output: 600 }, + limit: { context: 200000, output: 100000 }, + }, + "codex-mini-latest": { + id: "codex-mini-latest", + name: "Codex Mini", + family: "gpt-codex-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-04", + release_date: "2025-05-16", + last_updated: "2025-05-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.5, output: 6, cache_read: 0.375 }, + limit: { context: 200000, output: 100000 }, + }, + "gpt-4": { + id: "gpt-4", + name: "GPT-4", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + knowledge: "2023-11", + release_date: "2023-11-06", + last_updated: "2024-04-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 30, output: 60 }, + limit: { context: 8192, output: 8192 }, + }, + "gpt-5-codex": { + id: "gpt-5-codex", + name: "GPT-5-Codex", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gpt-5.4": { + id: "gpt-5.4", + name: "GPT-5.4", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 2.5, + output: 15, + cache_read: 0.25, + context_over_200k: { input: 5, output: 22.5, cache_read: 0.5 }, + }, + limit: { context: 1050000, input: 922000, output: 128000 }, + experimental: { + modes: { + fast: { cost: { input: 5, output: 30, cache_read: 0.5 }, provider: { body: { service_tier: "priority" } } }, + }, + }, + }, + "gpt-5.1-chat-latest": { + id: "gpt-5.1-chat-latest", + name: "GPT-5.1 Chat", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 128000, output: 16384 }, + }, + "gpt-5.3-codex-spark": { + id: "gpt-5.3-codex-spark", + name: "GPT-5.3 Codex Spark", + family: "gpt-codex-spark", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 128000, input: 100000, output: 32000 }, + }, + "chatgpt-image-latest": { + id: "chatgpt-image-latest", + name: "chatgpt-image-latest", + family: "gpt-image", + attachment: true, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-12-16", + last_updated: "2025-12-16", + modalities: { input: ["text", "image"], output: ["text", "image"] }, + open_weights: false, + limit: { context: 0, input: 0, output: 0 }, + }, + "gpt-4.1-nano": { + id: "gpt-4.1-nano", + name: "GPT-4.1 nano", + family: "gpt-nano", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.03 }, + limit: { context: 1047576, output: 32768 }, + }, + o3: { + id: "o3", + name: "o3", + family: "o", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05", + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 200000, output: 100000 }, + }, + "gpt-5-pro": { + id: "gpt-5-pro", + name: "GPT-5 Pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-10-06", + last_updated: "2025-10-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 120 }, + limit: { context: 400000, input: 272000, output: 272000 }, + }, + "gpt-4o": { + id: "gpt-4o", + name: "GPT-4o", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-09", + release_date: "2024-05-13", + last_updated: "2024-08-06", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10, cache_read: 1.25 }, + limit: { context: 128000, output: 16384 }, + }, + "gpt-5": { + id: "gpt-5", + name: "GPT-5", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gpt-5-chat-latest": { + id: "gpt-5-chat-latest", + name: "GPT-5 Chat (latest)", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: true, + temperature: true, + knowledge: "2024-09-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gpt-image-1.5": { + id: "gpt-image-1.5", + name: "gpt-image-1.5", + family: "gpt-image", + attachment: true, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-11-25", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text", "image"] }, + open_weights: false, + limit: { context: 0, input: 0, output: 0 }, + }, + "gpt-4.1": { + id: "gpt-4.1", + name: "GPT-4.1", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 1047576, output: 32768 }, + }, + "gpt-4.1-mini": { + id: "gpt-4.1-mini", + name: "GPT-4.1 mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.6, cache_read: 0.1 }, + limit: { context: 1047576, output: 32768 }, + }, + "gpt-5.1-codex": { + id: "gpt-5.1-codex", + name: "GPT-5.1 Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gpt-4o-2024-11-20": { + id: "gpt-4o-2024-11-20", + name: "GPT-4o (2024-11-20)", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-09", + release_date: "2024-11-20", + last_updated: "2024-11-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10, cache_read: 1.25 }, + limit: { context: 128000, output: 16384 }, + }, + }, + }, + requesty: { + id: "requesty", + env: ["REQUESTY_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://router.requesty.ai/v1", + name: "Requesty", + doc: "https://requesty.ai/solution/llm-routing/models", + models: { + "xai/grok-4-fast": { + id: "xai/grok-4-fast", + name: "Grok 4 Fast", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-09-19", + last_updated: "2025-09-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05, cache_write: 0.2 }, + limit: { context: 2000000, output: 64000 }, + }, + "xai/grok-4": { + id: "xai/grok-4", + name: "Grok 4", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-09-09", + last_updated: "2025-09-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.75, cache_write: 3 }, + limit: { context: 256000, output: 64000 }, + }, + "openai/gpt-5.1-codex-max": { + id: "openai/gpt-5.1-codex-max", + name: "GPT-5.1-Codex-Max", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 9, cache_read: 0.11 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.2-chat": { + id: "openai/gpt-5.2-chat", + name: "GPT-5.2 Chat", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-5-chat": { + id: "openai/gpt-5-chat", + name: "GPT-5 Chat (latest)", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: true, + temperature: true, + knowledge: "2024-09-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.2-pro": { + id: "openai/gpt-5.2-pro", + name: "GPT-5.2 Pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 21, output: 168 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5-mini": { + id: "openai/gpt-5-mini", + name: "GPT-5 Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.03 }, + limit: { context: 128000, output: 32000 }, + }, + "openai/gpt-5-nano": { + id: "openai/gpt-5-nano", + name: "GPT-5 Nano", + family: "gpt-nano", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.4, cache_read: 0.01 }, + limit: { context: 16000, output: 4000 }, + }, + "openai/gpt-5.3-codex": { + id: "openai/gpt-5.3-codex", + name: "GPT-5.3-Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-02-24", + last_updated: "2026-02-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.2": { + id: "openai/gpt-5.2", + name: "GPT-5.2", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-4o-mini": { + id: "openai/gpt-4o-mini", + name: "GPT-4o Mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6, cache_read: 0.08 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-5.1-chat": { + id: "openai/gpt-5.1-chat", + name: "GPT-5.1 Chat", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/o4-mini": { + id: "openai/o4-mini", + name: "o4 Mini", + family: "o-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-06", + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.28 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-5.2-codex": { + id: "openai/gpt-5.2-codex", + name: "GPT-5.2-Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-08-31", + release_date: "2026-01-14", + last_updated: "2026-01-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.1-codex-mini": { + id: "openai/gpt-5.1-codex-mini", + name: "GPT-5.1-Codex-Mini", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.025 }, + limit: { context: 400000, output: 100000 }, + }, + "openai/gpt-5-image": { + id: "openai/gpt-5-image", + name: "GPT-5 Image", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-10-01", + release_date: "2025-10-14", + last_updated: "2025-10-14", + modalities: { input: ["text", "image", "pdf"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 5, output: 10, cache_read: 1.25 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.1": { + id: "openai/gpt-5.1", + name: "GPT-5.1", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.4-pro": { + id: "openai/gpt-5.4-pro", + name: "GPT-5.4 Pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 30, output: 180, cache_read: 30 }, + limit: { context: 1050000, input: 922000, output: 128000 }, + }, + "openai/gpt-5-codex": { + id: "openai/gpt-5-codex", + name: "GPT-5 Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-10-01", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5.4": { + id: "openai/gpt-5.4", + name: "GPT-5.4", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 2.5, + output: 15, + cache_read: 0.25, + context_over_200k: { input: 5, output: 22.5, cache_read: 0.5 }, + }, + limit: { context: 1050000, input: 922000, output: 128000 }, + }, + "openai/gpt-5-pro": { + id: "openai/gpt-5-pro", + name: "GPT-5 Pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-10-06", + last_updated: "2025-10-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 120 }, + limit: { context: 400000, output: 272000 }, + }, + "openai/gpt-5": { + id: "openai/gpt-5", + name: "GPT-5", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "audio", "image", "video"], output: ["text", "audio", "image"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.13 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-4.1": { + id: "openai/gpt-4.1", + name: "GPT-4.1", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 1047576, output: 32768 }, + }, + "openai/gpt-4.1-mini": { + id: "openai/gpt-4.1-mini", + name: "GPT-4.1 Mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.6, cache_read: 0.1 }, + limit: { context: 1047576, output: 32768 }, + }, + "openai/gpt-5.1-codex": { + id: "openai/gpt-5.1-codex", + name: "GPT-5.1-Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "google/gemini-3-flash-preview": { + id: "google/gemini-3-flash-preview", + name: "Gemini 3 Flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 3, cache_read: 0.05, cache_write: 1 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-3-pro-preview": { + id: "google/gemini-3-pro-preview", + name: "Gemini 3 Pro", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2, cache_write: 4.5 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-2.5-pro": { + id: "google/gemini-2.5-pro", + name: "Gemini 2.5 Pro", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.31, cache_write: 2.375 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-2.5-flash": { + id: "google/gemini-2.5-flash", + name: "Gemini 2.5 Flash", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5, cache_read: 0.075, cache_write: 0.55 }, + limit: { context: 1048576, output: 65536 }, + }, + "anthropic/claude-haiku-4-5": { + id: "anthropic/claude-haiku-4-5", + name: "Claude Haiku 4.5", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-02-01", + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 200000, output: 62000 }, + }, + "anthropic/claude-sonnet-4-6": { + id: "anthropic/claude-sonnet-4-6", + name: "Claude Sonnet 4.6", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-17", + last_updated: "2026-02-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { + input: 3, + output: 15, + cache_read: 0.3, + cache_write: 3.75, + context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, + }, + limit: { context: 1000000, output: 128000 }, + }, + "anthropic/claude-3-7-sonnet": { + id: "anthropic/claude-3-7-sonnet", + name: "Claude Sonnet 3.7", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-01", + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-opus-4-1": { + id: "anthropic/claude-opus-4-1", + name: "Claude Opus 4.1", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "anthropic/claude-sonnet-4": { + id: "anthropic/claude-sonnet-4", + name: "Claude Sonnet 4", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-opus-4-5": { + id: "anthropic/claude-opus-4-5", + name: "Claude Opus 4.5", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-24", + last_updated: "2025-11-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-opus-4": { + id: "anthropic/claude-opus-4", + name: "Claude Opus 4", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "anthropic/claude-opus-4-6": { + id: "anthropic/claude-opus-4-6", + name: "Claude Opus 4.6", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-05-30", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 5, + output: 25, + cache_read: 0.5, + cache_write: 6.25, + context_over_200k: { input: 10, output: 37.5, cache_read: 1, cache_write: 12.5 }, + }, + limit: { context: 1000000, output: 128000 }, + }, + "anthropic/claude-sonnet-4-5": { + id: "anthropic/claude-sonnet-4-5", + name: "Claude Sonnet 4.5", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 1000000, output: 64000 }, + }, + }, + }, + vultr: { + id: "vultr", + env: ["VULTR_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.vultrinference.com/v1", + name: "Vultr", + doc: "https://api.vultrinference.com/", + models: { + "MiniMax-M2.5": { + id: "MiniMax-M2.5", + name: "MiniMax M2.5", + family: "minimax", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-09", + release_date: "2025-02-11", + last_updated: "2025-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 194000, output: 4096 }, + }, + "GLM-5-FP8": { + id: "GLM-5-FP8", + name: "GLM 5 FP8", + family: "glm", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.85, output: 3.1 }, + limit: { context: 200000, output: 131072 }, + }, + "DeepSeek-V3.2": { + id: "DeepSeek-V3.2", + name: "DeepSeek V3.2", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 1.65 }, + limit: { context: 127000, output: 4096 }, + }, + "gpt-oss-120b": { + id: "gpt-oss-120b", + name: "GPT OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-06", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 129000, output: 4096 }, + }, + "Kimi-K2.5": { + id: "Kimi-K2.5", + name: "Kimi K2 Instruct", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.75 }, + limit: { context: 254000, output: 32768 }, + }, + }, + }, + "alibaba-coding-plan-cn": { + id: "alibaba-coding-plan-cn", + env: ["ALIBABA_CODING_PLAN_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://coding.dashscope.aliyuncs.com/v1", + name: "Alibaba Coding Plan (China)", + doc: "https://help.aliyun.com/zh/model-studio/coding-plan", + models: { + "qwen3-coder-plus": { + id: "qwen3-coder-plus", + name: "Qwen3 Coder Plus", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 1000000, output: 65536 }, + }, + "kimi-k2.5": { + id: "kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 262144, output: 32768 }, + }, + "glm-4.7": { + id: "glm-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 202752, output: 16384 }, + }, + "glm-5": { + id: "glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 202752, output: 16384 }, + }, + "MiniMax-M2.5": { + id: "MiniMax-M2.5", + name: "MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 196608, output: 24576 }, + }, + "qwen3.6-plus": { + id: "qwen3.6-plus", + name: "Qwen3.6 Plus", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-04-02", + last_updated: "2026-04-02", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 1000000, output: 65536 }, + }, + "qwen3-max-2026-01-23": { + id: "qwen3-max-2026-01-23", + name: "Qwen3 Max", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-01-23", + last_updated: "2026-01-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 262144, output: 32768 }, + }, + "qwen3-coder-next": { + id: "qwen3-coder-next", + name: "Qwen3 Coder Next", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-03", + last_updated: "2026-02-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen3.5-plus": { + id: "qwen3.5-plus", + name: "Qwen3.5 Plus", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02-16", + last_updated: "2026-02-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 1000000, output: 65536 }, + }, + }, + }, + mistral: { + id: "mistral", + env: ["MISTRAL_API_KEY"], + npm: "@ai-sdk/mistral", + name: "Mistral", + doc: "https://docs.mistral.ai/getting-started/models/", + models: { + "mistral-small-latest": { + id: "mistral-small-latest", + name: "Mistral Small (latest)", + family: "mistral-small", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2026-03-16", + last_updated: "2026-03-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 256000, output: 256000 }, + }, + "mistral-nemo": { + id: "mistral-nemo", + name: "Mistral Nemo", + family: "mistral-nemo", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2024-07-01", + last_updated: "2024-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.15 }, + limit: { context: 128000, output: 128000 }, + }, + "mistral-large-2512": { + id: "mistral-large-2512", + name: "Mistral Large 3", + family: "mistral-large", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2024-11-01", + last_updated: "2025-12-02", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 1.5 }, + limit: { context: 262144, output: 262144 }, + }, + "labs-devstral-small-2512": { + id: "labs-devstral-small-2512", + name: "Devstral Small 2", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-12", + release_date: "2025-12-09", + last_updated: "2025-12-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 256000 }, + }, + "devstral-2512": { + id: "devstral-2512", + name: "Devstral 2", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-12", + release_date: "2025-12-09", + last_updated: "2025-12-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 2 }, + limit: { context: 262144, output: 262144 }, + }, + "magistral-medium-latest": { + id: "magistral-medium-latest", + name: "Magistral Medium (latest)", + family: "magistral-medium", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-03-17", + last_updated: "2025-03-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2, output: 5 }, + limit: { context: 128000, output: 16384 }, + }, + "open-mixtral-8x7b": { + id: "open-mixtral-8x7b", + name: "Mixtral 8x7B", + family: "mixtral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-01", + release_date: "2023-12-11", + last_updated: "2023-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.7, output: 0.7 }, + limit: { context: 32000, output: 32000 }, + }, + "pixtral-large-latest": { + id: "pixtral-large-latest", + name: "Pixtral Large (latest)", + family: "pixtral", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2024-11-01", + last_updated: "2024-11-04", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 2, output: 6 }, + limit: { context: 128000, output: 128000 }, + }, + "mistral-large-2411": { + id: "mistral-large-2411", + name: "Mistral Large 2.1", + family: "mistral-large", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2024-11-01", + last_updated: "2024-11-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2, output: 6 }, + limit: { context: 131072, output: 16384 }, + }, + "codestral-latest": { + id: "codestral-latest", + name: "Codestral (latest)", + family: "codestral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-05-29", + last_updated: "2025-01-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.9 }, + limit: { context: 256000, output: 4096 }, + }, + "mistral-large-latest": { + id: "mistral-large-latest", + name: "Mistral Large (latest)", + family: "mistral-large", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2024-11-01", + last_updated: "2025-12-02", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 1.5 }, + limit: { context: 262144, output: 262144 }, + }, + "mistral-small-2506": { + id: "mistral-small-2506", + name: "Mistral Small 3.2", + family: "mistral-small", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-03", + release_date: "2025-06-20", + last_updated: "2025-06-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 128000, output: 16384 }, + }, + "pixtral-12b": { + id: "pixtral-12b", + name: "Pixtral 12B", + family: "pixtral", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-09", + release_date: "2024-09-01", + last_updated: "2024-09-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.15 }, + limit: { context: 128000, output: 128000 }, + }, + "ministral-8b-latest": { + id: "ministral-8b-latest", + name: "Ministral 8B (latest)", + family: "ministral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-10-01", + last_updated: "2024-10-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 128000, output: 128000 }, + }, + "mistral-embed": { + id: "mistral-embed", + name: "Mistral Embed", + family: "mistral-embed", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2023-12-11", + last_updated: "2023-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0 }, + limit: { context: 8000, output: 3072 }, + }, + "magistral-small": { + id: "magistral-small", + name: "Magistral Small", + family: "magistral-small", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-03-17", + last_updated: "2025-03-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 1.5 }, + limit: { context: 128000, output: 128000 }, + }, + "mistral-small-2603": { + id: "mistral-small-2603", + name: "Mistral Small 4", + family: "mistral-small", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2026-03-16", + last_updated: "2026-03-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 256000, output: 256000 }, + }, + "ministral-3b-latest": { + id: "ministral-3b-latest", + name: "Ministral 3B (latest)", + family: "ministral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-10-01", + last_updated: "2024-10-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.04, output: 0.04 }, + limit: { context: 128000, output: 128000 }, + }, + "open-mixtral-8x22b": { + id: "open-mixtral-8x22b", + name: "Mixtral 8x22B", + family: "mixtral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-04-17", + last_updated: "2024-04-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2, output: 6 }, + limit: { context: 64000, output: 64000 }, + }, + "devstral-small-2505": { + id: "devstral-small-2505", + name: "Devstral Small 2505", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2025-05-07", + last_updated: "2025-05-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 128000, output: 128000 }, + }, + "devstral-medium-2507": { + id: "devstral-medium-2507", + name: "Devstral Medium", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2025-07-10", + last_updated: "2025-07-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 2 }, + limit: { context: 128000, output: 128000 }, + }, + "mistral-medium-latest": { + id: "mistral-medium-latest", + name: "Mistral Medium (latest)", + family: "mistral-medium", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2025-05-07", + last_updated: "2025-05-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 2 }, + limit: { context: 128000, output: 16384 }, + }, + "open-mistral-7b": { + id: "open-mistral-7b", + name: "Mistral 7B", + family: "mistral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2023-09-27", + last_updated: "2023-09-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.25, output: 0.25 }, + limit: { context: 8000, output: 8000 }, + }, + "devstral-medium-latest": { + id: "devstral-medium-latest", + name: "Devstral 2 (latest)", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-12", + release_date: "2025-12-02", + last_updated: "2025-12-02", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 2 }, + limit: { context: 262144, output: 262144 }, + }, + "mistral-medium-2505": { + id: "mistral-medium-2505", + name: "Mistral Medium 3", + family: "mistral-medium", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2025-05-07", + last_updated: "2025-05-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2 }, + limit: { context: 131072, output: 131072 }, + }, + "devstral-small-2507": { + id: "devstral-small-2507", + name: "Devstral Small", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2025-07-10", + last_updated: "2025-07-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 128000, output: 128000 }, + }, + "mistral-medium-2508": { + id: "mistral-medium-2508", + name: "Mistral Medium 3.1", + family: "mistral-medium", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2025-08-12", + last_updated: "2025-08-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2 }, + limit: { context: 262144, output: 262144 }, + }, + }, + }, + ovhcloud: { + id: "ovhcloud", + env: ["OVHCLOUD_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://oai.endpoints.kepler.ai.cloud.ovh.net/v1", + name: "OVHcloud AI Endpoints", + doc: "https://www.ovhcloud.com/en/public-cloud/ai-endpoints/catalog//", + models: { + "mixtral-8x7b-instruct-v0.1": { + id: "mixtral-8x7b-instruct-v0.1", + name: "Mixtral-8x7B-Instruct-v0.1", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-04-01", + last_updated: "2025-04-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.7, output: 0.7 }, + limit: { context: 32768, output: 32768 }, + }, + "qwen2.5-coder-32b-instruct": { + id: "qwen2.5-coder-32b-instruct", + name: "Qwen2.5-Coder-32B-Instruct", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-03-24", + last_updated: "2025-03-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.96, output: 0.96 }, + limit: { context: 32768, output: 32768 }, + }, + "meta-llama-3_3-70b-instruct": { + id: "meta-llama-3_3-70b-instruct", + name: "Meta-Llama-3_3-70B-Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-01", + last_updated: "2025-04-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.74, output: 0.74 }, + limit: { context: 131072, output: 131072 }, + }, + "mistral-7b-instruct-v0.3": { + id: "mistral-7b-instruct-v0.3", + name: "Mistral-7B-Instruct-v0.3", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-01", + last_updated: "2025-04-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.11, output: 0.11 }, + limit: { context: 65536, output: 65536 }, + }, + "deepseek-r1-distill-llama-70b": { + id: "deepseek-r1-distill-llama-70b", + name: "DeepSeek-R1-Distill-Llama-70B", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-01-30", + last_updated: "2025-01-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.74, output: 0.74 }, + limit: { context: 131072, output: 131072 }, + }, + "qwen3-32b": { + id: "qwen3-32b", + name: "Qwen3-32B", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-16", + last_updated: "2025-07-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.09, output: 0.25 }, + limit: { context: 32768, output: 32768 }, + }, + "qwen2.5-vl-72b-instruct": { + id: "qwen2.5-vl-72b-instruct", + name: "Qwen2.5-VL-72B-Instruct", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-03-31", + last_updated: "2025-03-31", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 1.01, output: 1.01 }, + limit: { context: 32768, output: 32768 }, + }, + "qwen3-coder-30b-a3b-instruct": { + id: "qwen3-coder-30b-a3b-instruct", + name: "Qwen3-Coder-30B-A3B-Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-28", + last_updated: "2025-10-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.26 }, + limit: { context: 262144, output: 262144 }, + }, + "gpt-oss-20b": { + id: "gpt-oss-20b", + name: "gpt-oss-20b", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-08-28", + last_updated: "2025-08-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.18 }, + limit: { context: 131072, output: 131072 }, + }, + "mistral-small-3.2-24b-instruct-2506": { + id: "mistral-small-3.2-24b-instruct-2506", + name: "Mistral-Small-3.2-24B-Instruct-2506", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-16", + last_updated: "2025-07-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.31 }, + limit: { context: 131072, output: 131072 }, + }, + "gpt-oss-120b": { + id: "gpt-oss-120b", + name: "gpt-oss-120b", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + release_date: "2025-08-28", + last_updated: "2025-08-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.09, output: 0.47 }, + limit: { context: 131072, output: 131072 }, + }, + "mistral-nemo-instruct-2407": { + id: "mistral-nemo-instruct-2407", + name: "Mistral-Nemo-Instruct-2407", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-11-20", + last_updated: "2024-11-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.14, output: 0.14 }, + limit: { context: 65536, output: 65536 }, + }, + "llama-3.1-8b-instruct": { + id: "llama-3.1-8b-instruct", + name: "Llama-3.1-8B-Instruct", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-06-11", + last_updated: "2025-06-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.11, output: 0.11 }, + limit: { context: 131072, output: 131072 }, + }, + }, + }, + friendli: { + id: "friendli", + env: ["FRIENDLI_TOKEN"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.friendli.ai/serverless/v1", + name: "Friendli", + doc: "https://friendli.ai/docs/guides/serverless_endpoints/introduction", + models: { + "Qwen/Qwen3-235B-A22B-Instruct-2507": { + id: "Qwen/Qwen3-235B-A22B-Instruct-2507", + name: "Qwen3 235B A22B Instruct 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-29", + last_updated: "2026-01-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 262144, output: 262144 }, + }, + "zai-org/GLM-5.1": { + id: "zai-org/GLM-5.1", + name: "GLM-5.1", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-04-07", + last_updated: "2026-04-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.4, output: 4.4 }, + limit: { context: 202752, output: 202752 }, + }, + "zai-org/GLM-5": { + id: "zai-org/GLM-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3.2 }, + limit: { context: 202752, output: 202752 }, + }, + "meta-llama/Llama-3.3-70B-Instruct": { + id: "meta-llama/Llama-3.3-70B-Instruct", + name: "Llama 3.3 70B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-08-01", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 0.6 }, + limit: { context: 131072, output: 131072 }, + }, + "meta-llama/Llama-3.1-8B-Instruct": { + id: "meta-llama/Llama-3.1-8B-Instruct", + name: "Llama 3.1 8B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-08-01", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 131072, output: 8000 }, + }, + "MiniMaxAI/MiniMax-M2.5": { + id: "MiniMaxAI/MiniMax-M2.5", + name: "MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 196608, output: 196608 }, + }, + }, + }, + cortecs: { + id: "cortecs", + env: ["CORTECS_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.cortecs.ai/v1", + name: "Cortecs", + doc: "https://api.cortecs.ai/v1/models", + models: { + "claude-haiku-4-5": { + id: "claude-haiku-4-5", + name: "Claude Haiku 4.5", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-02-28", + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.09, output: 5.43 }, + limit: { context: 200000, output: 200000 }, + }, + "kimi-k2.5": { + id: "kimi-k2.5", + name: "Kimi K2.5", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.76 }, + limit: { context: 256000, output: 256000 }, + }, + "deepseek-v3-0324": { + id: "deepseek-v3-0324", + name: "DeepSeek V3 0324", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-03-24", + last_updated: "2025-03-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.551, output: 1.654 }, + limit: { context: 128000, output: 128000 }, + }, + "glm-4.7": { + id: "glm-4.7", + name: "GLM 4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.45, output: 2.23 }, + limit: { context: 198000, output: 198000 }, + }, + "glm-5": { + id: "glm-5", + name: "GLM 5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.08, output: 3.44 }, + limit: { context: 202752, output: 202752 }, + }, + "nova-pro-v1": { + id: "nova-pro-v1", + name: "Nova Pro 1.0", + family: "nova-pro", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-12-03", + last_updated: "2024-12-03", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.016, output: 4.061 }, + limit: { context: 300000, output: 5000 }, + }, + "devstral-2512": { + id: "devstral-2512", + name: "Devstral 2 2512", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-12", + release_date: "2025-12-09", + last_updated: "2025-12-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262000, output: 262000 }, + }, + "qwen3-32b": { + id: "qwen3-32b", + name: "Qwen3 32B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-04-29", + last_updated: "2025-04-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.099, output: 0.33 }, + limit: { context: 16384, output: 16384 }, + }, + "claude-4-5-sonnet": { + id: "claude-4-5-sonnet", + name: "Claude 4.5 Sonnet", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3.259, output: 16.296 }, + limit: { context: 200000, output: 200000 }, + }, + "kimi-k2-instruct": { + id: "kimi-k2-instruct", + name: "Kimi K2 Instruct", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-07-11", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.551, output: 2.646 }, + limit: { context: 131000, output: 131000 }, + }, + "minimax-m2": { + id: "minimax-m2", + name: "MiniMax-M2", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-11", + release_date: "2025-10-27", + last_updated: "2025-10-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.39, output: 1.57 }, + limit: { context: 400000, output: 400000 }, + }, + "gemini-2.5-pro": { + id: "gemini-2.5-pro", + name: "Gemini 2.5 Pro", + family: "gemini-pro", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-03-20", + last_updated: "2025-06-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.654, output: 11.024 }, + limit: { context: 1048576, output: 65535 }, + }, + "claude-opus4-6": { + id: "claude-opus4-6", + name: "Claude Opus 4.6", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2026-02-05", + last_updated: "2026-03-13", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5.98, output: 29.89 }, + limit: { context: 1000000, output: 1000000 }, + }, + "devstral-small-2512": { + id: "devstral-small-2512", + name: "Devstral Small 2 2512", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-12", + release_date: "2025-12-09", + last_updated: "2025-12-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262000, output: 262000 }, + }, + "minimax-m2.1": { + id: "minimax-m2.1", + name: "MiniMax-M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.34, output: 1.34 }, + limit: { context: 196000, output: 196000 }, + }, + "glm-4.5": { + id: "glm-4.5", + name: "GLM 4.5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-29", + last_updated: "2025-07-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.67, output: 2.46 }, + limit: { context: 131072, output: 131072 }, + }, + "claude-opus4-5": { + id: "claude-opus4-5", + name: "Claude Opus 4.5", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-24", + last_updated: "2025-11-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5.98, output: 29.89 }, + limit: { context: 200000, output: 200000 }, + }, + "claude-sonnet-4": { + id: "claude-sonnet-4", + name: "Claude Sonnet 4", + family: "claude-sonnet", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-03", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3.307, output: 16.536 }, + limit: { context: 200000, output: 64000 }, + }, + "qwen3-next-80b-a3b-thinking": { + id: "qwen3-next-80b-a3b-thinking", + name: "Qwen3 Next 80B A3B Thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-11", + last_updated: "2025-09-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.164, output: 1.311 }, + limit: { context: 128000, output: 128000 }, + }, + "glm-4.5-air": { + id: "glm-4.5-air", + name: "GLM 4.5 Air", + family: "glm-air", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-08-01", + last_updated: "2025-08-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.22, output: 1.34 }, + limit: { context: 131072, output: 131072 }, + }, + "qwen3-coder-next": { + id: "qwen3-coder-next", + name: "Qwen3 Coder Next 80B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-02-04", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.158, output: 0.84 }, + limit: { context: 256000, output: 65536 }, + }, + "claude-4-6-sonnet": { + id: "claude-4-6-sonnet", + name: "Claude Sonnet 4.6", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2026-02-17", + last_updated: "2026-03-13", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3.59, output: 17.92 }, + limit: { context: 1000000, output: 1000000 }, + }, + "qwen3-coder-480b-a35b-instruct": { + id: "qwen3-coder-480b-a35b-instruct", + name: "Qwen3 Coder 480B A35B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-07-25", + last_updated: "2025-07-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.441, output: 1.984 }, + limit: { context: 262000, output: 262000 }, + }, + "minimax-m2.5": { + id: "minimax-m2.5", + name: "MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.32, output: 1.18 }, + limit: { context: 196608, output: 196608 }, + }, + "intellect-3": { + id: "intellect-3", + name: "INTELLECT 3", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-11", + release_date: "2025-11-26", + last_updated: "2025-11-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.219, output: 1.202 }, + limit: { context: 128000, output: 128000 }, + }, + "glm-4.7-flash": { + id: "glm-4.7-flash", + name: "GLM-4.7-Flash", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-08-08", + last_updated: "2025-08-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.09, output: 0.53 }, + limit: { context: 203000, output: 203000 }, + }, + "gpt-oss-120b": { + id: "gpt-oss-120b", + name: "GPT Oss 120b", + family: "gpt-oss", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-01", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 128000 }, + }, + "gpt-4.1": { + id: "gpt-4.1", + name: "GPT 4.1", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-06", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.354, output: 9.417 }, + limit: { context: 1047576, output: 32768 }, + }, + "kimi-k2-thinking": { + id: "kimi-k2-thinking", + name: "Kimi K2 Thinking", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-12", + release_date: "2025-12-08", + last_updated: "2025-12-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.656, output: 2.731 }, + limit: { context: 262000, output: 262000 }, + }, + "llama-3.1-405b-instruct": { + id: "llama-3.1-405b-instruct", + name: "Llama 3.1 405B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 128000 }, + }, + }, + }, + siliconflow: { + id: "siliconflow", + env: ["SILICONFLOW_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.siliconflow.com/v1", + name: "SiliconFlow", + doc: "https://cloud.siliconflow.com/models", + models: { + "nex-agi/DeepSeek-V3.1-Nex-N1": { + id: "nex-agi/DeepSeek-V3.1-Nex-N1", + name: "nex-agi/DeepSeek-V3.1-Nex-N1", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-01-01", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 2 }, + limit: { context: 131000, output: 131000 }, + }, + "Qwen/Qwen2.5-VL-72B-Instruct": { + id: "Qwen/Qwen2.5-VL-72B-Instruct", + name: "Qwen/Qwen2.5-VL-72B-Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-01-28", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.59, output: 0.59 }, + limit: { context: 131000, output: 4000 }, + }, + "Qwen/Qwen3-VL-32B-Thinking": { + id: "Qwen/Qwen3-VL-32B-Thinking", + name: "Qwen/Qwen3-VL-32B-Thinking", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-21", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.5 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-30B-A3B-Thinking-2507": { + id: "Qwen/Qwen3-30B-A3B-Thinking-2507", + name: "Qwen/Qwen3-30B-A3B-Thinking-2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-31", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.09, output: 0.3 }, + limit: { context: 262000, output: 131000 }, + }, + "Qwen/Qwen3-VL-235B-A22B-Thinking": { + id: "Qwen/Qwen3-VL-235B-A22B-Thinking", + name: "Qwen/Qwen3-VL-235B-A22B-Thinking", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-04", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.45, output: 3.5 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen2.5-7B-Instruct": { + id: "Qwen/Qwen2.5-7B-Instruct", + name: "Qwen/Qwen2.5-7B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-09-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.05 }, + limit: { context: 33000, output: 4000 }, + }, + "Qwen/Qwen2.5-Coder-32B-Instruct": { + id: "Qwen/Qwen2.5-Coder-32B-Instruct", + name: "Qwen/Qwen2.5-Coder-32B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-11-11", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.18, output: 0.18 }, + limit: { context: 33000, output: 4000 }, + }, + "Qwen/Qwen3-VL-30B-A3B-Instruct": { + id: "Qwen/Qwen3-VL-30B-A3B-Instruct", + name: "Qwen/Qwen3-VL-30B-A3B-Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-05", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.29, output: 1 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/QwQ-32B": { + id: "Qwen/QwQ-32B", + name: "Qwen/QwQ-32B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-03-06", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.58 }, + limit: { context: 131000, output: 131000 }, + }, + "Qwen/Qwen3-235B-A22B": { + id: "Qwen/Qwen3-235B-A22B", + name: "Qwen/Qwen3-235B-A22B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-30", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.35, output: 1.42 }, + limit: { context: 131000, output: 131000 }, + }, + "Qwen/Qwen3-Omni-30B-A3B-Captioner": { + id: "Qwen/Qwen3-Omni-30B-A3B-Captioner", + name: "Qwen/Qwen3-Omni-30B-A3B-Captioner", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-04", + last_updated: "2025-11-25", + modalities: { input: ["audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 66000, output: 66000 }, + }, + "Qwen/Qwen3-VL-8B-Thinking": { + id: "Qwen/Qwen3-VL-8B-Thinking", + name: "Qwen/Qwen3-VL-8B-Thinking", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-15", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.18, output: 2 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen2.5-VL-7B-Instruct": { + id: "Qwen/Qwen2.5-VL-7B-Instruct", + name: "Qwen/Qwen2.5-VL-7B-Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-01-28", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.05 }, + limit: { context: 33000, output: 4000 }, + }, + "Qwen/Qwen3-Next-80B-A3B-Instruct": { + id: "Qwen/Qwen3-Next-80B-A3B-Instruct", + name: "Qwen/Qwen3-Next-80B-A3B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 1.4 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-8B": { + id: "Qwen/Qwen3-8B", + name: "Qwen/Qwen3-8B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-30", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.06, output: 0.06 }, + limit: { context: 131000, output: 131000 }, + }, + "Qwen/Qwen3-30B-A3B-Instruct-2507": { + id: "Qwen/Qwen3-30B-A3B-Instruct-2507", + name: "Qwen/Qwen3-30B-A3B-Instruct-2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-30", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.09, output: 0.3 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-235B-A22B-Instruct-2507": { + id: "Qwen/Qwen3-235B-A22B-Instruct-2507", + name: "Qwen/Qwen3-235B-A22B-Instruct-2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-23", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.09, output: 0.6 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-32B": { + id: "Qwen/Qwen3-32B", + name: "Qwen/Qwen3-32B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-30", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.57 }, + limit: { context: 131000, output: 131000 }, + }, + "Qwen/Qwen3-Coder-30B-A3B-Instruct": { + id: "Qwen/Qwen3-Coder-30B-A3B-Instruct", + name: "Qwen/Qwen3-Coder-30B-A3B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-01", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.07, output: 0.28 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-Omni-30B-A3B-Instruct": { + id: "Qwen/Qwen3-Omni-30B-A3B-Instruct", + name: "Qwen/Qwen3-Omni-30B-A3B-Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-04", + last_updated: "2025-11-25", + modalities: { input: ["text", "image", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 66000, output: 66000 }, + }, + "Qwen/Qwen3-14B": { + id: "Qwen/Qwen3-14B", + name: "Qwen/Qwen3-14B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-30", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.07, output: 0.28 }, + limit: { context: 131000, output: 131000 }, + }, + "Qwen/Qwen2.5-72B-Instruct-128K": { + id: "Qwen/Qwen2.5-72B-Instruct-128K", + name: "Qwen/Qwen2.5-72B-Instruct-128K", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-09-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.59, output: 0.59 }, + limit: { context: 131000, output: 4000 }, + }, + "Qwen/Qwen2.5-32B-Instruct": { + id: "Qwen/Qwen2.5-32B-Instruct", + name: "Qwen/Qwen2.5-32B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-09-19", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.18, output: 0.18 }, + limit: { context: 33000, output: 4000 }, + }, + "Qwen/Qwen3-235B-A22B-Thinking-2507": { + id: "Qwen/Qwen3-235B-A22B-Thinking-2507", + name: "Qwen/Qwen3-235B-A22B-Thinking-2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-28", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.13, output: 0.6 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-Omni-30B-A3B-Thinking": { + id: "Qwen/Qwen3-Omni-30B-A3B-Thinking", + name: "Qwen/Qwen3-Omni-30B-A3B-Thinking", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-04", + last_updated: "2025-11-25", + modalities: { input: ["text", "image", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4 }, + limit: { context: 66000, output: 66000 }, + }, + "Qwen/Qwen2.5-VL-32B-Instruct": { + id: "Qwen/Qwen2.5-VL-32B-Instruct", + name: "Qwen/Qwen2.5-VL-32B-Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-03-24", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 0.27 }, + limit: { context: 131000, output: 131000 }, + }, + "Qwen/Qwen3-Next-80B-A3B-Thinking": { + id: "Qwen/Qwen3-Next-80B-A3B-Thinking", + name: "Qwen/Qwen3-Next-80B-A3B-Thinking", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-25", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.57 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-VL-235B-A22B-Instruct": { + id: "Qwen/Qwen3-VL-235B-A22B-Instruct", + name: "Qwen/Qwen3-VL-235B-A22B-Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-04", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.5 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen2.5-14B-Instruct": { + id: "Qwen/Qwen2.5-14B-Instruct", + name: "Qwen/Qwen2.5-14B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-09-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 33000, output: 4000 }, + }, + "Qwen/Qwen3-VL-30B-A3B-Thinking": { + id: "Qwen/Qwen3-VL-30B-A3B-Thinking", + name: "Qwen/Qwen3-VL-30B-A3B-Thinking", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-11", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.29, output: 1 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-VL-32B-Instruct": { + id: "Qwen/Qwen3-VL-32B-Instruct", + name: "Qwen/Qwen3-VL-32B-Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-21", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.6 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-VL-8B-Instruct": { + id: "Qwen/Qwen3-VL-8B-Instruct", + name: "Qwen/Qwen3-VL-8B-Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-15", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.18, output: 0.68 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen3-Coder-480B-A35B-Instruct": { + id: "Qwen/Qwen3-Coder-480B-A35B-Instruct", + name: "Qwen/Qwen3-Coder-480B-A35B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-31", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1 }, + limit: { context: 262000, output: 262000 }, + }, + "Qwen/Qwen2.5-72B-Instruct": { + id: "Qwen/Qwen2.5-72B-Instruct", + name: "Qwen/Qwen2.5-72B-Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-09-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.59, output: 0.59 }, + limit: { context: 33000, output: 4000 }, + }, + "stepfun-ai/Step-3.5-Flash": { + id: "stepfun-ai/Step-3.5-Flash", + name: "stepfun-ai/Step-3.5-Flash", + family: "step", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 262000, output: 262000 }, + }, + "zai-org/GLM-4.5": { + id: "zai-org/GLM-4.5", + name: "zai-org/GLM-4.5", + family: "glm", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-28", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2 }, + limit: { context: 131000, output: 131000 }, + }, + "zai-org/GLM-5V-Turbo": { + id: "zai-org/GLM-5V-Turbo", + name: "zai-org/GLM-5V-Turbo", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-04-01", + last_updated: "2026-04-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.2, output: 4, cache_write: 0 }, + limit: { context: 200000, output: 131072 }, + }, + "zai-org/GLM-4.7": { + id: "zai-org/GLM-4.7", + name: "zai-org/GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 2.2 }, + limit: { context: 205000, output: 205000 }, + }, + "zai-org/GLM-5.1": { + id: "zai-org/GLM-5.1", + name: "zai-org/GLM-5.1", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-04-08", + last_updated: "2026-04-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.4, output: 4.4, cache_write: 0 }, + limit: { context: 205000, output: 205000 }, + }, + "zai-org/GLM-4.5-Air": { + id: "zai-org/GLM-4.5-Air", + name: "zai-org/GLM-4.5-Air", + family: "glm-air", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-28", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.86 }, + limit: { context: 131000, output: 131000 }, + }, + "zai-org/GLM-5": { + id: "zai-org/GLM-5", + name: "zai-org/GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3.2 }, + limit: { context: 205000, output: 205000 }, + }, + "zai-org/GLM-4.6V": { + id: "zai-org/GLM-4.6V", + name: "zai-org/GLM-4.6V", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-12-07", + last_updated: "2025-12-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.9 }, + limit: { context: 131000, output: 131000 }, + }, + "zai-org/GLM-4.6": { + id: "zai-org/GLM-4.6", + name: "zai-org/GLM-4.6", + family: "glm", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-04", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 1.9 }, + limit: { context: 205000, output: 205000 }, + }, + "zai-org/GLM-4.5V": { + id: "zai-org/GLM-4.5V", + name: "zai-org/GLM-4.5V", + family: "glm", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-13", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.86 }, + limit: { context: 66000, output: 66000 }, + }, + "meta-llama/Meta-Llama-3.1-8B-Instruct": { + id: "meta-llama/Meta-Llama-3.1-8B-Instruct", + name: "meta-llama/Meta-Llama-3.1-8B-Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-23", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.06, output: 0.06 }, + limit: { context: 33000, output: 4000 }, + }, + "inclusionAI/Ring-flash-2.0": { + id: "inclusionAI/Ring-flash-2.0", + name: "inclusionAI/Ring-flash-2.0", + family: "ring", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-29", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.57 }, + limit: { context: 131000, output: 131000 }, + }, + "inclusionAI/Ling-mini-2.0": { + id: "inclusionAI/Ling-mini-2.0", + name: "inclusionAI/Ling-mini-2.0", + family: "ling", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-10", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.07, output: 0.28 }, + limit: { context: 131000, output: 131000 }, + }, + "inclusionAI/Ling-flash-2.0": { + id: "inclusionAI/Ling-flash-2.0", + name: "inclusionAI/Ling-flash-2.0", + family: "ling", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.57 }, + limit: { context: 131000, output: 131000 }, + }, + "tencent/Hunyuan-A13B-Instruct": { + id: "tencent/Hunyuan-A13B-Instruct", + name: "tencent/Hunyuan-A13B-Instruct", + family: "hunyuan", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-06-30", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.57 }, + limit: { context: 131000, output: 131000 }, + }, + "tencent/Hunyuan-MT-7B": { + id: "tencent/Hunyuan-MT-7B", + name: "tencent/Hunyuan-MT-7B", + family: "hunyuan", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 33000, output: 33000 }, + }, + "deepseek-ai/DeepSeek-V3.1": { + id: "deepseek-ai/DeepSeek-V3.1", + name: "deepseek-ai/DeepSeek-V3.1", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-25", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 1 }, + limit: { context: 164000, output: 164000 }, + }, + "deepseek-ai/deepseek-vl2": { + id: "deepseek-ai/deepseek-vl2", + name: "deepseek-ai/deepseek-vl2", + family: "deepseek", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-12-13", + last_updated: "2025-11-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.15 }, + limit: { context: 4000, output: 4000 }, + }, + "deepseek-ai/DeepSeek-V3": { + id: "deepseek-ai/DeepSeek-V3", + name: "deepseek-ai/DeepSeek-V3", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-12-26", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1 }, + limit: { context: 164000, output: 164000 }, + }, + "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B": { + id: "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", + name: "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-01-20", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.18, output: 0.18 }, + limit: { context: 131000, output: 131000 }, + }, + "deepseek-ai/DeepSeek-R1": { + id: "deepseek-ai/DeepSeek-R1", + name: "deepseek-ai/DeepSeek-R1", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-05-28", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 2.18 }, + limit: { context: 164000, output: 164000 }, + }, + "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B": { + id: "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B", + name: "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-01-20", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 131000, output: 131000 }, + }, + "deepseek-ai/DeepSeek-V3.2-Exp": { + id: "deepseek-ai/DeepSeek-V3.2-Exp", + name: "deepseek-ai/DeepSeek-V3.2-Exp", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-10", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 0.41 }, + limit: { context: 164000, output: 164000 }, + }, + "deepseek-ai/DeepSeek-V3.2": { + id: "deepseek-ai/DeepSeek-V3.2", + name: "deepseek-ai/DeepSeek-V3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-03", + last_updated: "2025-12-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 0.42 }, + limit: { context: 164000, output: 164000 }, + }, + "deepseek-ai/DeepSeek-V3.1-Terminus": { + id: "deepseek-ai/DeepSeek-V3.1-Terminus", + name: "deepseek-ai/DeepSeek-V3.1-Terminus", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-29", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 1 }, + limit: { context: 164000, output: 164000 }, + }, + "openai/gpt-oss-20b": { + id: "openai/gpt-oss-20b", + name: "openai/gpt-oss-20b", + family: "gpt-oss", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-13", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.04, output: 0.18 }, + limit: { context: 131000, output: 8000 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "openai/gpt-oss-120b", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-13", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.45 }, + limit: { context: 131000, output: 8000 }, + }, + "baidu/ERNIE-4.5-300B-A47B": { + id: "baidu/ERNIE-4.5-300B-A47B", + name: "baidu/ERNIE-4.5-300B-A47B", + family: "ernie", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-02", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.28, output: 1.1 }, + limit: { context: 131000, output: 131000 }, + }, + "THUDM/GLM-Z1-9B-0414": { + id: "THUDM/GLM-Z1-9B-0414", + name: "THUDM/GLM-Z1-9B-0414", + family: "glm-z", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.086, output: 0.086 }, + limit: { context: 131000, output: 131000 }, + }, + "THUDM/GLM-4-9B-0414": { + id: "THUDM/GLM-4-9B-0414", + name: "THUDM/GLM-4-9B-0414", + family: "glm", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.086, output: 0.086 }, + limit: { context: 33000, output: 33000 }, + }, + "THUDM/GLM-4-32B-0414": { + id: "THUDM/GLM-4-32B-0414", + name: "THUDM/GLM-4-32B-0414", + family: "glm", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 0.27 }, + limit: { context: 33000, output: 33000 }, + }, + "THUDM/GLM-Z1-32B-0414": { + id: "THUDM/GLM-Z1-32B-0414", + name: "THUDM/GLM-Z1-32B-0414", + family: "glm-z", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-18", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.57 }, + limit: { context: 131000, output: 131000 }, + }, + "moonshotai/Kimi-K2-Thinking": { + id: "moonshotai/Kimi-K2-Thinking", + name: "moonshotai/Kimi-K2-Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-11-07", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.55, output: 2.5 }, + limit: { context: 262000, output: 262000 }, + }, + "moonshotai/Kimi-K2-Instruct": { + id: "moonshotai/Kimi-K2-Instruct", + name: "moonshotai/Kimi-K2-Instruct", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-13", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.58, output: 2.29 }, + limit: { context: 131000, output: 131000 }, + }, + "moonshotai/Kimi-K2-Instruct-0905": { + id: "moonshotai/Kimi-K2-Instruct-0905", + name: "moonshotai/Kimi-K2-Instruct-0905", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-08", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2 }, + limit: { context: 262000, output: 262000 }, + }, + "moonshotai/Kimi-K2.5": { + id: "moonshotai/Kimi-K2.5", + name: "moonshotai/Kimi-K2.5", + family: "kimi", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.55, output: 3 }, + limit: { context: 262000, output: 262000 }, + }, + "MiniMaxAI/MiniMax-M2.5": { + id: "MiniMaxAI/MiniMax-M2.5", + name: "MiniMaxAI/MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2026-02-15", + last_updated: "2026-02-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 197000, output: 131000 }, + }, + "MiniMaxAI/MiniMax-M2.1": { + id: "MiniMaxAI/MiniMax-M2.1", + name: "MiniMaxAI/MiniMax-M2.1", + family: "minimax", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 197000, output: 131000 }, + }, + "ByteDance-Seed/Seed-OSS-36B-Instruct": { + id: "ByteDance-Seed/Seed-OSS-36B-Instruct", + name: "ByteDance-Seed/Seed-OSS-36B-Instruct", + family: "seed", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-04", + last_updated: "2025-11-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.21, output: 0.57 }, + limit: { context: 262000, output: 262000 }, + }, + }, + }, + vercel: { + id: "vercel", + env: ["AI_GATEWAY_API_KEY"], + npm: "@ai-sdk/gateway", + name: "Vercel AI Gateway", + doc: "https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway", + models: { + "alibaba/qwen3-coder-plus": { + id: "alibaba/qwen3-coder-plus", + name: "Qwen3 Coder Plus", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 5 }, + limit: { context: 1000000, output: 1000000 }, + }, + "alibaba/qwen3-embedding-8b": { + id: "alibaba/qwen3-embedding-8b", + name: "Qwen3 Embedding 8B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-06-05", + last_updated: "2025-06-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0 }, + limit: { context: 32768, output: 32768 }, + }, + "alibaba/qwen-3-30b": { + id: "alibaba/qwen-3-30b", + name: "Qwen3-30B-A3B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.08, output: 0.29 }, + limit: { context: 40960, output: 16384 }, + }, + "alibaba/qwen-3-235b": { + id: "alibaba/qwen-3-235b", + name: "Qwen3 235B A22B Instruct 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.13, output: 0.6 }, + limit: { context: 40960, output: 16384 }, + }, + "alibaba/qwen3.5-flash": { + id: "alibaba/qwen3.5-flash", + name: "Qwen 3.5 Flash", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-24", + last_updated: "2026-02-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.001, cache_write: 0.125 }, + limit: { context: 1000000, output: 64000 }, + }, + "alibaba/qwen3.6-plus": { + id: "alibaba/qwen3.6-plus", + name: "Qwen 3.6 Plus", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-04-02", + last_updated: "2026-04-03", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 3, cache_read: 0.09999999999999999, cache_write: 0.625 }, + limit: { context: 1000000, output: 64000 }, + }, + "alibaba/qwen3-max": { + id: "alibaba/qwen3-max", + name: "Qwen3 Max", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-23", + last_updated: "2025-09-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.2, output: 6 }, + limit: { context: 262144, output: 32768 }, + }, + "alibaba/qwen3-embedding-0.6b": { + id: "alibaba/qwen3-embedding-0.6b", + name: "Qwen3 Embedding 0.6B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.01, output: 0 }, + limit: { context: 32768, output: 32768 }, + }, + "alibaba/qwen-3-32b": { + id: "alibaba/qwen-3-32b", + name: "Qwen 3.32B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 40960, output: 16384 }, + }, + "alibaba/qwen3-next-80b-a3b-thinking": { + id: "alibaba/qwen3-next-80b-a3b-thinking", + name: "Qwen3 Next 80B A3B Thinking", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-09", + release_date: "2025-09-12", + last_updated: "2025-09-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 1.5 }, + limit: { context: 131072, output: 65536 }, + }, + "alibaba/qwen3-vl-thinking": { + id: "alibaba/qwen3-vl-thinking", + name: "Qwen3 VL Thinking", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-09", + release_date: "2025-09-24", + last_updated: "2025-09-24", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.7, output: 8.4 }, + limit: { context: 131072, output: 129024 }, + }, + "alibaba/qwen3-235b-a22b-thinking": { + id: "alibaba/qwen3-235b-a22b-thinking", + name: "Qwen3 235B A22B Thinking 2507", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.9 }, + limit: { context: 262114, output: 262114 }, + }, + "alibaba/qwen3-next-80b-a3b-instruct": { + id: "alibaba/qwen3-next-80b-a3b-instruct", + name: "Qwen3 Next 80B A3B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-12", + last_updated: "2025-09-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.09, output: 1.1 }, + limit: { context: 262144, output: 32768 }, + }, + "alibaba/qwen3-coder-next": { + id: "alibaba/qwen3-coder-next", + name: "Qwen3 Coder Next", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-07-22", + last_updated: "2026-02-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 1.2 }, + limit: { context: 256000, output: 256000 }, + }, + "alibaba/qwen3-embedding-4b": { + id: "alibaba/qwen3-embedding-4b", + name: "Qwen3 Embedding 4B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-06-05", + last_updated: "2025-06-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.02, output: 0 }, + limit: { context: 32768, output: 32768 }, + }, + "alibaba/qwen3-max-thinking": { + id: "alibaba/qwen3-max-thinking", + name: "Qwen 3 Max Thinking", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-01", + last_updated: "2025-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.2, output: 6, cache_read: 0.24 }, + limit: { context: 256000, output: 65536 }, + }, + "alibaba/qwen3-coder": { + id: "alibaba/qwen3-coder", + name: "Qwen3 Coder 480B A35B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.38, output: 1.53 }, + limit: { context: 262144, output: 66536 }, + }, + "alibaba/qwen3-max-preview": { + id: "alibaba/qwen3-max-preview", + name: "Qwen3 Max Preview", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-23", + last_updated: "2025-09-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.2, output: 6, cache_read: 0.24 }, + limit: { context: 262144, output: 32768 }, + }, + "alibaba/qwen3.5-plus": { + id: "alibaba/qwen3.5-plus", + name: "Qwen 3.5 Plus", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-16", + last_updated: "2026-02-19", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2.4, cache_read: 0.04, cache_write: 0.5 }, + limit: { context: 1000000, output: 64000 }, + }, + "alibaba/qwen-3-14b": { + id: "alibaba/qwen-3-14b", + name: "Qwen3-14B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.06, output: 0.24 }, + limit: { context: 40960, output: 16384 }, + }, + "alibaba/qwen3-vl-instruct": { + id: "alibaba/qwen3-vl-instruct", + name: "Qwen3 VL Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-24", + last_updated: "2025-09-24", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.7, output: 2.8 }, + limit: { context: 131072, output: 129024 }, + }, + "alibaba/qwen3-coder-30b-a3b": { + id: "alibaba/qwen3-coder-30b-a3b", + name: "Qwen 3 Coder 30B A3B Instruct", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.07, output: 0.27 }, + limit: { context: 160000, output: 32768 }, + }, + "perplexity/sonar-pro": { + id: "perplexity/sonar-pro", + name: "Sonar Pro", + family: "sonar-pro", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-09", + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 200000, output: 8000 }, + }, + "perplexity/sonar": { + id: "perplexity/sonar", + name: "Sonar", + family: "sonar", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-02", + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 1 }, + limit: { context: 127000, output: 8000 }, + }, + "perplexity/sonar-reasoning": { + id: "perplexity/sonar-reasoning", + name: "Sonar Reasoning", + family: "sonar-reasoning", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2025-09", + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5 }, + limit: { context: 127000, output: 8000 }, + }, + "perplexity/sonar-reasoning-pro": { + id: "perplexity/sonar-reasoning-pro", + name: "Sonar Reasoning Pro", + family: "sonar-reasoning", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2025-09", + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8 }, + limit: { context: 127000, output: 8000 }, + }, + "deepseek/deepseek-v3.2-thinking": { + id: "deepseek/deepseek-v3.2-thinking", + name: "DeepSeek V3.2 Thinking", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.28, output: 0.42, cache_read: 0.03 }, + limit: { context: 128000, output: 64000 }, + }, + "deepseek/deepseek-v3.2-exp": { + id: "deepseek/deepseek-v3.2-exp", + name: "DeepSeek V3.2 Exp", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-09", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 0.4 }, + limit: { context: 163840, output: 163840 }, + }, + "deepseek/deepseek-v3.1": { + id: "deepseek/deepseek-v3.1", + name: "DeepSeek-V3.1", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-08-21", + last_updated: "2025-08-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1 }, + limit: { context: 163840, output: 128000 }, + }, + "deepseek/deepseek-v3.2": { + id: "deepseek/deepseek-v3.2", + name: "DeepSeek V3.2", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-07", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.27, output: 0.4, cache_read: 0.22 }, + limit: { context: 163842, output: 8000 }, + }, + "deepseek/deepseek-v3": { + id: "deepseek/deepseek-v3", + name: "DeepSeek V3 0324", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2024-12-26", + last_updated: "2024-12-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.77, output: 0.77 }, + limit: { context: 163840, output: 16384 }, + }, + "deepseek/deepseek-v3.1-terminus": { + id: "deepseek/deepseek-v3.1-terminus", + name: "DeepSeek V3.1 Terminus", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-09-22", + last_updated: "2025-09-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 1 }, + limit: { context: 131072, output: 65536 }, + }, + "deepseek/deepseek-r1": { + id: "deepseek/deepseek-r1", + name: "DeepSeek-R1", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-01-20", + last_updated: "2025-05-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.35, output: 5.4 }, + limit: { context: 128000, output: 32768 }, + }, + "arcee-ai/trinity-mini": { + id: "arcee-ai/trinity-mini", + name: "Trinity Mini", + family: "trinity", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-10", + release_date: "2025-12", + last_updated: "2025-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.15 }, + limit: { context: 131072, output: 131072 }, + }, + "arcee-ai/trinity-large-thinking": { + id: "arcee-ai/trinity-large-thinking", + name: "Trinity Large Thinking", + family: "trinity", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-04-01", + last_updated: "2026-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.25, output: 0.8999999999999999 }, + limit: { context: 262100, output: 80000 }, + }, + "arcee-ai/trinity-large-preview": { + id: "arcee-ai/trinity-large-preview", + name: "Trinity Large Preview", + family: "trinity", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-01", + last_updated: "2025-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1 }, + limit: { context: 131000, output: 131000 }, + }, + "recraft/recraft-v3": { + id: "recraft/recraft-v3", + name: "Recraft V3", + family: "recraft", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-10", + last_updated: "2024-10", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 512, output: 0 }, + }, + "recraft/recraft-v2": { + id: "recraft/recraft-v2", + name: "Recraft V2", + family: "recraft", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-03", + last_updated: "2024-03", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 512, output: 0 }, + }, + "voyage/voyage-3-large": { + id: "voyage/voyage-3-large", + name: "voyage-3-large", + family: "voyage", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-09", + last_updated: "2024-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.18, output: 0 }, + limit: { context: 8192, output: 1536 }, + }, + "voyage/voyage-4-large": { + id: "voyage/voyage-4-large", + name: "voyage-4-large", + family: "voyage", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2026-03-06", + last_updated: "2026-03-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 32000, output: 0 }, + }, + "voyage/voyage-3.5-lite": { + id: "voyage/voyage-3.5-lite", + name: "voyage-3.5-lite", + family: "voyage", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-05-20", + last_updated: "2025-05-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.02, output: 0 }, + limit: { context: 8192, output: 1536 }, + }, + "voyage/voyage-code-3": { + id: "voyage/voyage-code-3", + name: "voyage-code-3", + family: "voyage", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-09", + last_updated: "2024-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.18, output: 0 }, + limit: { context: 8192, output: 1536 }, + }, + "voyage/voyage-finance-2": { + id: "voyage/voyage-finance-2", + name: "voyage-finance-2", + family: "voyage", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-03", + last_updated: "2024-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.12, output: 0 }, + limit: { context: 8192, output: 1536 }, + }, + "voyage/voyage-4-lite": { + id: "voyage/voyage-4-lite", + name: "voyage-4-lite", + family: "voyage", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2026-03-06", + last_updated: "2026-03-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 32000, output: 0 }, + }, + "voyage/voyage-4": { + id: "voyage/voyage-4", + name: "voyage-4", + family: "voyage", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2026-03-06", + last_updated: "2026-03-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 32000, output: 0 }, + }, + "voyage/voyage-code-2": { + id: "voyage/voyage-code-2", + name: "voyage-code-2", + family: "voyage", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-01", + last_updated: "2024-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.12, output: 0 }, + limit: { context: 8192, output: 1536 }, + }, + "voyage/voyage-law-2": { + id: "voyage/voyage-law-2", + name: "voyage-law-2", + family: "voyage", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-03", + last_updated: "2024-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.12, output: 0 }, + limit: { context: 8192, output: 1536 }, + }, + "voyage/voyage-3.5": { + id: "voyage/voyage-3.5", + name: "voyage-3.5", + family: "voyage", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-05-20", + last_updated: "2025-05-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.06, output: 0 }, + limit: { context: 8192, output: 1536 }, + }, + "morph/morph-v3-large": { + id: "morph/morph-v3-large", + name: "Morph v3 Large", + family: "morph", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-08-15", + last_updated: "2024-08-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.9, output: 1.9 }, + limit: { context: 32000, output: 32000 }, + }, + "morph/morph-v3-fast": { + id: "morph/morph-v3-fast", + name: "Morph v3 Fast", + family: "morph", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-08-15", + last_updated: "2024-08-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 1.2 }, + limit: { context: 16000, output: 16000 }, + }, + "zai/glm-5v-turbo": { + id: "zai/glm-5v-turbo", + name: "GLM 5V Turbo", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-04-01", + last_updated: "2026-04-03", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.2, output: 4, cache_read: 0.24 }, + limit: { context: 200000, output: 128000 }, + }, + "zai/glm-4.7": { + id: "zai/glm-4.7", + name: "GLM 4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.43, output: 1.75, cache_read: 0.08 }, + limit: { context: 202752, output: 120000 }, + }, + "zai/glm-5": { + id: "zai/glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3.2, cache_read: 0.2 }, + limit: { context: 202800, output: 131072 }, + }, + "zai/glm-4.7-flashx": { + id: "zai/glm-4.7-flashx", + name: "GLM 4.7 FlashX", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-01", + last_updated: "2025-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.06, output: 0.4, cache_read: 0.01 }, + limit: { context: 200000, output: 128000 }, + }, + "zai/glm-4.6v-flash": { + id: "zai/glm-4.6v-flash", + name: "GLM-4.6V-Flash", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 24000 }, + }, + "zai/glm-4.5": { + id: "zai/glm-4.5", + name: "GLM 4.5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2 }, + limit: { context: 131072, output: 131072 }, + }, + "zai/glm-4.5-air": { + id: "zai/glm-4.5-air", + name: "GLM 4.5 Air", + family: "glm-air", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 1.1 }, + limit: { context: 128000, output: 96000 }, + }, + "zai/glm-5-turbo": { + id: "zai/glm-5-turbo", + name: "GLM 5 Turbo", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-15", + last_updated: "2026-03-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.2, output: 4, cache_read: 0.24 }, + limit: { context: 202800, output: 131100 }, + }, + "zai/glm-4.5v": { + id: "zai/glm-4.5v", + name: "GLM 4.5V", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2025-08-11", + last_updated: "2025-08-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 1.8 }, + limit: { context: 66000, output: 66000 }, + }, + "zai/glm-4.6": { + id: "zai/glm-4.6", + name: "GLM 4.6", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.45, output: 1.8 }, + limit: { context: 200000, output: 96000 }, + }, + "zai/glm-4.6v": { + id: "zai/glm-4.6v", + name: "GLM-4.6V", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.9, cache_read: 0.05 }, + limit: { context: 128000, output: 24000 }, + }, + "zai/glm-4.7-flash": { + id: "zai/glm-4.7-flash", + name: "GLM 4.7 Flash", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-13", + last_updated: "2026-03-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.07, output: 0.39999999999999997 }, + limit: { context: 200000, output: 131000 }, + }, + "cohere/command-a": { + id: "cohere/command-a", + name: "Command A", + family: "command", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-03-13", + last_updated: "2025-03-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10 }, + limit: { context: 256000, output: 8000 }, + }, + "cohere/embed-v4.0": { + id: "cohere/embed-v4.0", + name: "Embed v4.0", + family: "cohere-embed", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-04-15", + last_updated: "2025-04-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.12, output: 0 }, + limit: { context: 8192, output: 1536 }, + }, + "prime-intellect/intellect-3": { + id: "prime-intellect/intellect-3", + name: "INTELLECT 3", + family: "intellect", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-11-26", + last_updated: "2025-11-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.1 }, + limit: { context: 131072, output: 131072 }, + }, + "xai/grok-4.20-non-reasoning": { + id: "xai/grok-4.20-non-reasoning", + name: "Grok 4.20 Non-Reasoning", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2026-03-09", + last_updated: "2026-03-23", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6, cache_read: 0.19999999999999998 }, + limit: { context: 2000000, output: 2000000 }, + }, + "xai/grok-4.20-non-reasoning-beta": { + id: "xai/grok-4.20-non-reasoning-beta", + name: "Grok 4.20 Beta Non-Reasoning", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2026-03-11", + last_updated: "2026-03-13", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6, cache_read: 0.19999999999999998 }, + limit: { context: 2000000, output: 2000000 }, + }, + "xai/grok-4.20-reasoning": { + id: "xai/grok-4.20-reasoning", + name: "Grok 4.20 Reasoning", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-09", + last_updated: "2026-03-23", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6, cache_read: 0.19999999999999998 }, + limit: { context: 2000000, output: 2000000 }, + }, + "xai/grok-imagine-image": { + id: "xai/grok-imagine-image", + name: "Grok Imagine Image", + family: "grok", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2026-01-28", + last_updated: "2026-02-19", + modalities: { input: ["text"], output: ["text", "image"] }, + open_weights: false, + limit: { context: 0, output: 0 }, + }, + "xai/grok-4.20-multi-agent-beta": { + id: "xai/grok-4.20-multi-agent-beta", + name: "Grok 4.20 Multi Agent Beta", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-11", + last_updated: "2026-03-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6, cache_read: 0.19999999999999998 }, + limit: { context: 2000000, output: 2000000 }, + }, + "xai/grok-imagine-image-pro": { + id: "xai/grok-imagine-image-pro", + name: "Grok Imagine Image Pro", + family: "grok", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2026-01-28", + last_updated: "2026-02-19", + modalities: { input: ["text"], output: ["text", "image"] }, + open_weights: false, + limit: { context: 0, output: 0 }, + }, + "xai/grok-4-fast-reasoning": { + id: "xai/grok-4-fast-reasoning", + name: "Grok 4 Fast Reasoning", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 256000 }, + }, + "xai/grok-4.1-fast-non-reasoning": { + id: "xai/grok-4.1-fast-non-reasoning", + name: "Grok 4.1 Fast Non-Reasoning", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + "xai/grok-4.20-reasoning-beta": { + id: "xai/grok-4.20-reasoning-beta", + name: "Grok 4.20 Beta Reasoning", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-11", + last_updated: "2026-03-13", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6, cache_read: 0.19999999999999998 }, + limit: { context: 2000000, output: 2000000 }, + }, + "xai/grok-4.20-multi-agent": { + id: "xai/grok-4.20-multi-agent", + name: "Grok 4.20 Multi-Agent", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-09", + last_updated: "2026-03-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6, cache_read: 0.19999999999999998 }, + limit: { context: 2000000, output: 2000000 }, + }, + "xai/grok-4.1-fast-reasoning": { + id: "xai/grok-4.1-fast-reasoning", + name: "Grok 4.1 Fast Reasoning", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + "xai/grok-4-fast-non-reasoning": { + id: "xai/grok-4-fast-non-reasoning", + name: "Grok 4 Fast (Non-Reasoning)", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-09-19", + last_updated: "2025-09-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + "xai/grok-3": { + id: "xai/grok-3", + name: "Grok 3", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.75 }, + limit: { context: 131072, output: 8192 }, + }, + "xai/grok-3-mini": { + id: "xai/grok-3-mini", + name: "Grok 3 Mini", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.5, reasoning: 0.5, cache_read: 0.075 }, + limit: { context: 131072, output: 8192 }, + }, + "xai/grok-2-vision": { + id: "xai/grok-2-vision", + name: "Grok 2 Vision", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2024-08-20", + last_updated: "2024-08-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 10, cache_read: 2 }, + limit: { context: 8192, output: 4096 }, + }, + "xai/grok-4": { + id: "xai/grok-4", + name: "Grok 4", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, reasoning: 15, cache_read: 0.75 }, + limit: { context: 256000, output: 64000 }, + }, + "xai/grok-code-fast-1": { + id: "xai/grok-code-fast-1", + name: "Grok Code Fast 1", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2025-08-28", + last_updated: "2025-08-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.5, cache_read: 0.02 }, + limit: { context: 256000, output: 10000 }, + }, + "xai/grok-3-fast": { + id: "xai/grok-3-fast", + name: "Grok 3 Fast", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 1.25 }, + limit: { context: 131072, output: 8192 }, + }, + "xai/grok-3-mini-fast": { + id: "xai/grok-3-mini-fast", + name: "Grok 3 Mini Fast", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 4, reasoning: 4, cache_read: 0.15 }, + limit: { context: 131072, output: 8192 }, + }, + "nvidia/nemotron-3-super-120b-a12b": { + id: "nvidia/nemotron-3-super-120b-a12b", + name: "NVIDIA Nemotron 3 Super 120B A12B", + family: "nemotron", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.65 }, + limit: { context: 256000, output: 32000 }, + }, + "nvidia/nemotron-3-nano-30b-a3b": { + id: "nvidia/nemotron-3-nano-30b-a3b", + name: "Nemotron 3 Nano 30B A3B", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12", + last_updated: "2024-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.06, output: 0.24 }, + limit: { context: 262144, output: 262144 }, + }, + "nvidia/nemotron-nano-12b-v2-vl": { + id: "nvidia/nemotron-nano-12b-v2-vl", + name: "Nvidia Nemotron Nano 12B V2 VL", + family: "nemotron", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12", + last_updated: "2024-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.6 }, + limit: { context: 131072, output: 131072 }, + }, + "nvidia/nemotron-nano-9b-v2": { + id: "nvidia/nemotron-nano-9b-v2", + name: "Nvidia Nemotron Nano 9B V2", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-08-18", + last_updated: "2025-08-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.04, output: 0.16 }, + limit: { context: 131072, output: 131072 }, + }, + "inception/mercury-2": { + id: "inception/mercury-2", + name: "Mercury 2", + family: "mercury", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-24", + last_updated: "2026-03-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 0.75, cache_read: 0.024999999999999998 }, + limit: { context: 128000, output: 128000 }, + }, + "inception/mercury-coder-small": { + id: "inception/mercury-coder-small", + name: "Mercury Coder Small Beta", + family: "mercury", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-02-26", + last_updated: "2025-02-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1 }, + limit: { context: 32000, output: 16384 }, + }, + "openai/gpt-5.1-codex-max": { + id: "openai/gpt-5.1-codex-max", + name: "GPT 5.1 Codex Max", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.13 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "openai/gpt-5.2-chat": { + id: "openai/gpt-5.2-chat", + name: "GPT-5.2 Chat", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.18 }, + limit: { context: 128000, input: 111616, output: 16384 }, + }, + "openai/gpt-4o-mini-search-preview": { + id: "openai/gpt-4o-mini-search-preview", + name: "GPT 4o Mini Search Preview", + family: "gpt-mini", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + knowledge: "2023-09", + release_date: "2025-01", + last_updated: "2025-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 128000, input: 111616, output: 16384 }, + }, + "openai/codex-mini": { + id: "openai/codex-mini", + name: "Codex Mini", + family: "gpt-codex-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-05-16", + last_updated: "2025-05-16", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.5, output: 6, cache_read: 0.38 }, + limit: { context: 200000, input: 100000, output: 100000 }, + }, + "openai/gpt-5-chat": { + id: "openai/gpt-5-chat", + name: "GPT-5 Chat", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image", "pdf"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.13 }, + limit: { context: 128000, input: 111616, output: 16384 }, + }, + "openai/gpt-5.3-chat": { + id: "openai/gpt-5.3-chat", + name: "GPT-5.3 Chat", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-03", + last_updated: "2026-03-06", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 128000, input: 111616, output: 16384 }, + }, + "openai/gpt-5.2-pro": { + id: "openai/gpt-5.2-pro", + name: "GPT 5.2 ", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 21, output: 168 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "openai/text-embedding-3-large": { + id: "openai/text-embedding-3-large", + name: "text-embedding-3-large", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-01-25", + last_updated: "2024-01-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.13, output: 0 }, + limit: { context: 8192, input: 6656, output: 1536 }, + }, + "openai/gpt-5.3-codex": { + id: "openai/gpt-5.3-codex", + name: "GPT 5.3 Codex", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-24", + last_updated: "2026-02-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "openai/text-embedding-ada-002": { + id: "openai/text-embedding-ada-002", + name: "text-embedding-ada-002", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2022-12-15", + last_updated: "2022-12-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0 }, + limit: { context: 8192, input: 6656, output: 1536 }, + }, + "openai/gpt-5.2": { + id: "openai/gpt-5.2", + name: "GPT-5.2", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.18 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "openai/o3-pro": { + id: "openai/o3-pro", + name: "o3 Pro", + family: "o-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-10", + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 20, output: 80 }, + limit: { context: 200000, input: 100000, output: 100000 }, + }, + "openai/gpt-5.4-mini": { + id: "openai/gpt-5.4-mini", + name: "GPT 5.4 Mini", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-17", + last_updated: "2026-03-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.75, output: 4.5, cache_read: 0.075 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "openai/gpt-5.4-nano": { + id: "openai/gpt-5.4-nano", + name: "GPT 5.4 Nano", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-17", + last_updated: "2026-03-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.19999999999999998, output: 1.25, cache_read: 0.02 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "openai/gpt-5.2-codex": { + id: "openai/gpt-5.2-codex", + name: "GPT-5.2-Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-12", + last_updated: "2025-12", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "openai/gpt-5.1-codex-mini": { + id: "openai/gpt-5.1-codex-mini", + name: "GPT-5.1 Codex mini", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-05-16", + last_updated: "2025-05-16", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.03 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "openai/gpt-5.1-thinking": { + id: "openai/gpt-5.1-thinking", + name: "GPT 5.1 Thinking", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-10", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image", "pdf"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.13 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "openai/gpt-5.4-pro": { + id: "openai/gpt-5.4-pro", + name: "GPT 5.4 Pro", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-05", + last_updated: "2026-03-06", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 30, output: 180 }, + limit: { context: 1050000, input: 922000, output: 128000 }, + }, + "openai/gpt-3.5-turbo": { + id: "openai/gpt-3.5-turbo", + name: "GPT-3.5 Turbo", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2021-09", + release_date: "2023-03-01", + last_updated: "2023-03-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 1.5 }, + limit: { context: 16385, input: 12289, output: 4096 }, + }, + "openai/o3-deep-research": { + id: "openai/o3-deep-research", + name: "o3-deep-research", + family: "o", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-10", + release_date: "2024-06-26", + last_updated: "2024-06-26", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 10, output: 40, cache_read: 2.5 }, + limit: { context: 200000, input: 100000, output: 100000 }, + }, + "openai/text-embedding-3-small": { + id: "openai/text-embedding-3-small", + name: "text-embedding-3-small", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-01-25", + last_updated: "2024-01-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.02, output: 0 }, + limit: { context: 8192, input: 6656, output: 1536 }, + }, + "openai/gpt-5.4": { + id: "openai/gpt-5.4", + name: "GPT 5.4", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-05", + last_updated: "2026-03-06", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 15, cache_read: 0.25 }, + limit: { context: 1050000, input: 922000, output: 128000 }, + }, + "openai/gpt-oss-20b": { + id: "openai/gpt-oss-20b", + name: "GPT OSS 20B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.3 }, + limit: { context: 131072, input: 98304, output: 32768 }, + }, + "openai/gpt-5-pro": { + id: "openai/gpt-5-pro", + name: "GPT-5 pro", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image", "pdf"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 15, output: 120 }, + limit: { context: 400000, input: 128000, output: 272000 }, + }, + "openai/gpt-oss-safeguard-20b": { + id: "openai/gpt-oss-safeguard-20b", + name: "gpt-oss-safeguard-20b", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.08, output: 0.3, cache_read: 0.04 }, + limit: { context: 131072, input: 65536, output: 65536 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "GPT OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.5 }, + limit: { context: 131072, output: 131072 }, + }, + "openai/gpt-3.5-turbo-instruct": { + id: "openai/gpt-3.5-turbo-instruct", + name: "GPT-3.5 Turbo Instruct", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2021-09", + release_date: "2023-03-01", + last_updated: "2023-03-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.5, output: 2 }, + limit: { context: 8192, input: 4096, output: 4096 }, + }, + "openai/gpt-5.1-instant": { + id: "openai/gpt-5.1-instant", + name: "GPT-5.1 Instant", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image", "pdf"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.13 }, + limit: { context: 128000, input: 111616, output: 16384 }, + }, + "openai/gpt-5.1-codex": { + id: "openai/gpt-5.1-codex", + name: "GPT-5.1-Codex", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.13 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "openai/gpt-4.1-mini": { + id: "openai/gpt-4.1-mini", + name: "GPT-4.1 mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.6, cache_read: 0.1 }, + limit: { context: 1047576, output: 32768 }, + }, + "openai/gpt-4.1": { + id: "openai/gpt-4.1", + name: "GPT-4.1", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 1047576, output: 32768 }, + }, + "openai/gpt-5": { + id: "openai/gpt-5", + name: "GPT-5", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "openai/gpt-4o": { + id: "openai/gpt-4o", + name: "GPT-4o", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-09", + release_date: "2024-05-13", + last_updated: "2024-08-06", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10, cache_read: 1.25 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/o3": { + id: "openai/o3", + name: "o3", + family: "o", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05", + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-4.1-nano": { + id: "openai/gpt-4.1-nano", + name: "GPT-4.1 nano", + family: "gpt-nano", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.03 }, + limit: { context: 1047576, output: 32768 }, + }, + "openai/gpt-5-codex": { + id: "openai/gpt-5-codex", + name: "GPT-5-Codex", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "openai/o3-mini": { + id: "openai/o3-mini", + name: "o3-mini", + family: "o-mini", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05", + release_date: "2024-12-20", + last_updated: "2025-01-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/o1": { + id: "openai/o1", + name: "o1", + family: "o", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2023-09", + release_date: "2024-12-05", + last_updated: "2024-12-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 60, cache_read: 7.5 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/o4-mini": { + id: "openai/o4-mini", + name: "o4-mini", + family: "o-mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05", + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.28 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-4o-mini": { + id: "openai/gpt-4o-mini", + name: "GPT-4o mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-09", + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6, cache_read: 0.08 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-4-turbo": { + id: "openai/gpt-4-turbo", + name: "GPT-4 Turbo", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + knowledge: "2023-12", + release_date: "2023-11-06", + last_updated: "2024-04-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 10, output: 30 }, + limit: { context: 128000, output: 4096 }, + }, + "openai/gpt-5-nano": { + id: "openai/gpt-5-nano", + name: "GPT-5 Nano", + family: "gpt-nano", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.4, cache_read: 0.005 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "openai/gpt-5-mini": { + id: "openai/gpt-5-mini", + name: "GPT-5 Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.025 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "amazon/titan-embed-text-v2": { + id: "amazon/titan-embed-text-v2", + name: "Titan Text Embeddings V2", + family: "titan-embed", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-04", + last_updated: "2024-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.02, output: 0 }, + limit: { context: 8192, output: 1536 }, + }, + "amazon/nova-2-lite": { + id: "amazon/nova-2-lite", + name: "Nova 2 Lite", + family: "nova", + attachment: true, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12-01", + last_updated: "2024-12-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5 }, + limit: { context: 1000000, output: 1000000 }, + }, + "amazon/nova-pro": { + id: "amazon/nova-pro", + name: "Nova Pro", + family: "nova-pro", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12-03", + last_updated: "2024-12-03", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 3.2, cache_read: 0.2 }, + limit: { context: 300000, output: 8192 }, + }, + "amazon/nova-lite": { + id: "amazon/nova-lite", + name: "Nova Lite", + family: "nova-lite", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12-03", + last_updated: "2024-12-03", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.06, output: 0.24, cache_read: 0.015 }, + limit: { context: 300000, output: 8192 }, + }, + "amazon/nova-micro": { + id: "amazon/nova-micro", + name: "Nova Micro", + family: "nova-micro", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12-03", + last_updated: "2024-12-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.035, output: 0.14, cache_read: 0.00875 }, + limit: { context: 128000, output: 8192 }, + }, + "mistral/mistral-nemo": { + id: "mistral/mistral-nemo", + name: "Mistral Nemo", + family: "mistral-nemo", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-07-01", + last_updated: "2024-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.04, output: 0.17 }, + limit: { context: 60288, output: 16000 }, + }, + "mistral/ministral-14b": { + id: "mistral/ministral-14b", + name: "Ministral 14B", + family: "ministral", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-10", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 256000, output: 256000 }, + }, + "mistral/codestral-embed": { + id: "mistral/codestral-embed", + name: "Codestral Embed", + family: "codestral-embed", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-05-28", + last_updated: "2025-05-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0 }, + limit: { context: 8192, output: 1536 }, + }, + "mistral/mistral-medium": { + id: "mistral/mistral-medium", + name: "Mistral Medium 3.1", + family: "mistral-medium", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-05-07", + last_updated: "2025-05-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2 }, + limit: { context: 128000, output: 64000 }, + }, + "mistral/mistral-embed": { + id: "mistral/mistral-embed", + name: "Mistral Embed", + family: "mistral-embed", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2023-12-11", + last_updated: "2023-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0 }, + limit: { context: 8192, output: 1536 }, + }, + "mistral/devstral-2": { + id: "mistral/devstral-2", + name: "Devstral 2", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-12-09", + last_updated: "2025-12-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 256000 }, + }, + "mistral/mistral-large-3": { + id: "mistral/mistral-large-3", + name: "Mistral Large 3", + family: "mistral-large", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-10", + release_date: "2025-12-02", + last_updated: "2025-12-02", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 1.5 }, + limit: { context: 256000, output: 256000 }, + }, + "mistral/devstral-small-2": { + id: "mistral/devstral-small-2", + name: "Devstral Small 2", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-05-07", + last_updated: "2025-05-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 256000 }, + }, + "mistral/devstral-small": { + id: "mistral/devstral-small", + name: "Devstral Small 1.1", + family: "devstral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-05-07", + last_updated: "2025-05-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 128000, output: 64000 }, + }, + "mistral/ministral-8b": { + id: "mistral/ministral-8b", + name: "Ministral 8B (latest)", + family: "ministral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-10-01", + last_updated: "2024-10-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 128000, output: 128000 }, + }, + "mistral/magistral-medium": { + id: "mistral/magistral-medium", + name: "Magistral Medium (latest)", + family: "magistral-medium", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-03-17", + last_updated: "2025-03-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2, output: 5 }, + limit: { context: 128000, output: 16384 }, + }, + "mistral/mistral-small": { + id: "mistral/mistral-small", + name: "Mistral Small (latest)", + family: "mistral-small", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2026-03-16", + last_updated: "2026-03-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 256000, output: 256000 }, + }, + "mistral/magistral-small": { + id: "mistral/magistral-small", + name: "Magistral Small", + family: "magistral-small", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-06", + release_date: "2025-03-17", + last_updated: "2025-03-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 1.5 }, + limit: { context: 128000, output: 128000 }, + }, + "mistral/pixtral-12b": { + id: "mistral/pixtral-12b", + name: "Pixtral 12B", + family: "pixtral", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-09", + release_date: "2024-09-01", + last_updated: "2024-09-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.15 }, + limit: { context: 128000, output: 128000 }, + }, + "mistral/mixtral-8x22b-instruct": { + id: "mistral/mixtral-8x22b-instruct", + name: "Mixtral 8x22B", + family: "mixtral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-04-17", + last_updated: "2024-04-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2, output: 6 }, + limit: { context: 64000, output: 64000 }, + }, + "mistral/pixtral-large": { + id: "mistral/pixtral-large", + name: "Pixtral Large (latest)", + family: "pixtral", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2024-11-01", + last_updated: "2024-11-04", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 2, output: 6 }, + limit: { context: 128000, output: 128000 }, + }, + "mistral/ministral-3b": { + id: "mistral/ministral-3b", + name: "Ministral 3B (latest)", + family: "ministral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-10-01", + last_updated: "2024-10-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.04, output: 0.04 }, + limit: { context: 128000, output: 128000 }, + }, + "mistral/codestral": { + id: "mistral/codestral", + name: "Codestral (latest)", + family: "codestral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-05-29", + last_updated: "2025-01-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.9 }, + limit: { context: 256000, output: 4096 }, + }, + "meta/llama-3.2-1b": { + id: "meta/llama-3.2-1b", + name: "Llama 3.2 1B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-12", + release_date: "2024-09-18", + last_updated: "2024-09-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 128000, output: 8192 }, + }, + "meta/llama-3.1-8b": { + id: "meta/llama-3.1-8b", + name: "Llama 3.1 8B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.03, output: 0.05 }, + limit: { context: 131072, output: 16384 }, + }, + "meta/llama-3.2-90b": { + id: "meta/llama-3.2-90b", + name: "Llama 3.2 90B Vision Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-09-25", + last_updated: "2024-09-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.72, output: 0.72 }, + limit: { context: 128000, output: 8192 }, + }, + "meta/llama-3.2-3b": { + id: "meta/llama-3.2-3b", + name: "Llama 3.2 3B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-12", + release_date: "2024-09-18", + last_updated: "2024-09-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.15 }, + limit: { context: 128000, output: 8192 }, + }, + "meta/llama-3.2-11b": { + id: "meta/llama-3.2-11b", + name: "Llama 3.2 11B Vision Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-09-25", + last_updated: "2024-09-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.16, output: 0.16 }, + limit: { context: 128000, output: 8192 }, + }, + "meta/llama-3.1-70b": { + id: "meta/llama-3.1-70b", + name: "Llama 3.1 70B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 0.4 }, + limit: { context: 131072, output: 16384 }, + }, + "meta/llama-3.3-70b": { + id: "meta/llama-3.3-70b", + name: "Llama-3.3-70B-Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "meta/llama-4-maverick": { + id: "meta/llama-4-maverick", + name: "Llama-4-Maverick-17B-128E-Instruct-FP8", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "meta/llama-4-scout": { + id: "meta/llama-4-scout", + name: "Llama-4-Scout-17B-16E-Instruct-FP8", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "vercel/v0-1.5-md": { + id: "vercel/v0-1.5-md", + name: "v0-1.5-md", + family: "v0", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-06-09", + last_updated: "2025-06-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 128000, output: 32000 }, + }, + "vercel/v0-1.0-md": { + id: "vercel/v0-1.0-md", + name: "v0-1.0-md", + family: "v0", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 128000, output: 32000 }, + }, + "minimax/minimax-m2.7": { + id: "minimax/minimax-m2.7", + name: "Minimax M2.7", + family: "minimax", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.06, cache_write: 0.375 }, + limit: { context: 204800, output: 131000 }, + }, + "minimax/minimax-m2.7-highspeed": { + id: "minimax/minimax-m2.7-highspeed", + name: "MiniMax M2.7 High Speed", + family: "minimax", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.4, cache_read: 0.06, cache_write: 0.375 }, + limit: { context: 204800, output: 131100 }, + }, + "minimax/minimax-m2": { + id: "minimax/minimax-m2", + name: "MiniMax M2", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-10-27", + last_updated: "2025-10-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 1.15, cache_read: 0.03, cache_write: 0.38 }, + limit: { context: 262114, output: 262114 }, + }, + "minimax/minimax-m2.1": { + id: "minimax/minimax-m2.1", + name: "MiniMax M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-10-27", + last_updated: "2025-10-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2, cache_read: 0.03, cache_write: 0.38 }, + limit: { context: 204800, output: 131072 }, + }, + "minimax/minimax-m2.1-lightning": { + id: "minimax/minimax-m2.1-lightning", + name: "MiniMax M2.1 Lightning", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-10-27", + last_updated: "2025-10-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.4, cache_read: 0.03, cache_write: 0.38 }, + limit: { context: 204800, output: 131072 }, + }, + "minimax/minimax-m2.5": { + id: "minimax/minimax-m2.5", + name: "MiniMax M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2, cache_read: 0.03, cache_write: 0.375 }, + limit: { context: 204800, output: 131000 }, + }, + "minimax/minimax-m2.5-highspeed": { + id: "minimax/minimax-m2.5-highspeed", + name: "MiniMax M2.5 High Speed", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-03-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 2.4, cache_read: 0.03, cache_write: 0.375 }, + limit: { context: 0, output: 0 }, + }, + "kwaipilot/kat-coder-pro-v1": { + id: "kwaipilot/kat-coder-pro-v1", + name: "KAT-Coder-Pro V1", + family: "kat-coder", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2024-10", + release_date: "2025-10-24", + last_updated: "2025-10-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 256000, output: 32000 }, + }, + "kwaipilot/kat-coder-pro-v2": { + id: "kwaipilot/kat-coder-pro-v2", + name: "Kat Coder Pro V2", + family: "kat-coder", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-27", + last_updated: "2026-03-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 1.2, cache_read: 0.06 }, + limit: { context: 256000, output: 256000 }, + }, + "google/gemini-2.5-flash-lite-preview-09-2025": { + id: "google/gemini-2.5-flash-lite-preview-09-2025", + name: "Gemini 2.5 Flash Lite Preview 09-25", + family: "gemini-flash-lite", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.01 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-3.1-flash-lite-preview": { + id: "google/gemini-3.1-flash-lite-preview", + name: "Gemini 3.1 Flash Lite Preview", + family: "gemini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-03", + last_updated: "2026-03-06", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1.5, cache_read: 0.025, cache_write: 1 }, + limit: { context: 1000000, output: 65000 }, + }, + "google/gemini-3-pro-image": { + id: "google/gemini-3-pro-image", + name: "Nano Banana Pro (Gemini 3 Pro Image)", + family: "gemini-pro", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-03", + release_date: "2025-09", + last_updated: "2025-09", + modalities: { input: ["text"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 2, output: 120 }, + limit: { context: 65536, output: 32768 }, + }, + "google/gemini-3.1-pro-preview": { + id: "google/gemini-3.1-pro-preview", + name: "Gemini 3.1 Pro Preview", + family: "gemini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-19", + last_updated: "2026-02-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2 }, + limit: { context: 1000000, output: 64000 }, + }, + "google/gemini-3-pro-preview": { + id: "google/gemini-3-pro-preview", + name: "Gemini 3 Pro Preview", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, + limit: { context: 1000000, output: 64000 }, + }, + "google/imagen-4.0-ultra-generate-001": { + id: "google/imagen-4.0-ultra-generate-001", + name: "Imagen 4 Ultra", + family: "imagen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-05-24", + last_updated: "2025-05-24", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 480, output: 0 }, + }, + "google/gemini-embedding-001": { + id: "google/gemini-embedding-001", + name: "Gemini Embedding 001", + family: "gemini-embedding", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-05-20", + last_updated: "2025-05-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0 }, + limit: { context: 8192, output: 1536 }, + }, + "google/gemma-4-31b-it": { + id: "google/gemma-4-31b-it", + name: "Gemma 4 31B IT", + family: "gemma", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-04-02", + last_updated: "2026-04-03", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.39999999999999997 }, + limit: { context: 262144, output: 131072 }, + }, + "google/gemini-2.5-flash-image": { + id: "google/gemini-2.5-flash-image", + name: "Nano Banana (Gemini 2.5 Flash Image)", + family: "gemini-flash", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-01", + release_date: "2025-03-20", + last_updated: "2025-03-20", + modalities: { input: ["text"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5 }, + limit: { context: 32768, output: 32768 }, + }, + "google/text-embedding-005": { + id: "google/text-embedding-005", + name: "Text Embedding 005", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-08", + last_updated: "2024-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.03, output: 0 }, + limit: { context: 8192, output: 1536 }, + }, + "google/text-multilingual-embedding-002": { + id: "google/text-multilingual-embedding-002", + name: "Text Multilingual Embedding 002", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-03", + last_updated: "2024-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.03, output: 0 }, + limit: { context: 8192, output: 1536 }, + }, + "google/gemini-3.1-flash-image-preview": { + id: "google/gemini-3.1-flash-image-preview", + name: "Gemini 3.1 Flash Image Preview (Nano Banana 2)", + family: "gemini", + attachment: true, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2026-02-26", + last_updated: "2026-03-06", + modalities: { input: ["text", "image"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 0.5, output: 3 }, + limit: { context: 131072, output: 32768 }, + }, + "google/gemini-3-flash": { + id: "google/gemini-3-flash", + name: "Gemini 3 Flash", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03", + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 3, cache_read: 0.05 }, + limit: { context: 1000000, output: 64000 }, + }, + "google/imagen-4.0-generate-001": { + id: "google/imagen-4.0-generate-001", + name: "Imagen 4", + family: "imagen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 480, output: 0 }, + }, + "google/gemini-2.5-flash-preview-09-2025": { + id: "google/gemini-2.5-flash-preview-09-2025", + name: "Gemini 2.5 Flash Preview 09-25", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5, cache_read: 0.03, cache_write: 0.383 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-embedding-2": { + id: "google/gemini-embedding-2", + name: "Gemini Embedding 2", + family: "gemini-embedding", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2026-03-10", + last_updated: "2026-03-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 0, output: 0 }, + }, + "google/gemma-4-26b-a4b-it": { + id: "google/gemma-4-26b-a4b-it", + name: "Gemma 4 26B A4B IT", + family: "gemma", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-04-02", + last_updated: "2026-04-03", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.13, output: 0.39999999999999997 }, + limit: { context: 262144, output: 131072 }, + }, + "google/imagen-4.0-fast-generate-001": { + id: "google/imagen-4.0-fast-generate-001", + name: "Imagen 4 Fast", + family: "imagen", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-06", + last_updated: "2025-06", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 480, output: 0 }, + }, + "google/gemini-2.5-flash-lite": { + id: "google/gemini-2.5-flash-lite", + name: "Gemini 2.5 Flash Lite", + family: "gemini-flash-lite", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.01 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-2.5-flash-image-preview": { + id: "google/gemini-2.5-flash-image-preview", + name: "Nano Banana Preview (Gemini 2.5 Flash Image Preview)", + family: "gemini-flash", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-01", + release_date: "2025-03-20", + last_updated: "2025-03-20", + modalities: { input: ["text"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5 }, + limit: { context: 32768, output: 32768 }, + }, + "google/gemini-2.0-flash-lite": { + id: "google/gemini-2.0-flash-lite", + name: "Gemini 2.0 Flash Lite", + family: "gemini-flash-lite", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-06", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.075, output: 0.3 }, + limit: { context: 1048576, output: 8192 }, + }, + "google/gemini-2.5-flash": { + id: "google/gemini-2.5-flash", + name: "Gemini 2.5 Flash", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-03-20", + last_updated: "2025-06-05", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5, cache_read: 0.075, input_audio: 1 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-2.5-pro": { + id: "google/gemini-2.5-pro", + name: "Gemini 2.5 Pro", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-03-20", + last_updated: "2025-06-05", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.31 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-2.0-flash": { + id: "google/gemini-2.0-flash", + name: "Gemini 2.0 Flash", + family: "gemini-flash", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-06", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, + limit: { context: 1048576, output: 8192 }, + }, + "moonshotai/kimi-k2-turbo": { + id: "moonshotai/kimi-k2-turbo", + name: "Kimi K2 Turbo", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.4, output: 10 }, + limit: { context: 256000, output: 16384 }, + }, + "moonshotai/kimi-k2.5": { + id: "moonshotai/kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01-26", + last_updated: "2026-01-26", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 1.2 }, + limit: { context: 262144, output: 262144 }, + }, + "moonshotai/kimi-k2-thinking-turbo": { + id: "moonshotai/kimi-k2-thinking-turbo", + name: "Kimi K2 Thinking Turbo", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-11-06", + last_updated: "2025-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.15, output: 8, cache_read: 0.15 }, + limit: { context: 262114, output: 262114 }, + }, + "moonshotai/kimi-k2-0905": { + id: "moonshotai/kimi-k2-0905", + name: "Kimi K2 0905", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 2.5 }, + limit: { context: 131072, output: 16384 }, + }, + "moonshotai/kimi-k2-thinking": { + id: "moonshotai/kimi-k2-thinking", + name: "Kimi K2 Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-11-06", + last_updated: "2025-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.47, output: 2, cache_read: 0.14 }, + limit: { context: 216144, output: 216144 }, + }, + "moonshotai/kimi-k2": { + id: "moonshotai/kimi-k2", + name: "Kimi K2 Instruct", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-07-14", + last_updated: "2025-07-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3 }, + limit: { context: 131072, output: 16384 }, + status: "deprecated", + }, + "anthropic/claude-3.5-sonnet-20240620": { + id: "anthropic/claude-3.5-sonnet-20240620", + name: "Claude 3.5 Sonnet (2024-06-20)", + family: "claude-sonnet", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-06-20", + last_updated: "2024-06-20", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 200000, output: 8192 }, + }, + "anthropic/claude-opus-4.6": { + id: "anthropic/claude-opus-4.6", + name: "Claude Opus 4.6", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2025-05", + release_date: "2026-02", + last_updated: "2026-02", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 1000000, output: 128000 }, + }, + "anthropic/claude-opus-4.5": { + id: "anthropic/claude-opus-4.5", + name: "Claude Opus 4.5", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-24", + last_updated: "2025-11-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 18.75 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-haiku-4.5": { + id: "anthropic/claude-haiku-4.5", + name: "Claude Haiku 4.5", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2025-02-28", + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-sonnet-4.6": { + id: "anthropic/claude-sonnet-4.6", + name: "Claude Sonnet 4.6", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2025-08", + release_date: "2026-02-17", + last_updated: "2026-02-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 3, + output: 15, + cache_read: 0.3, + cache_write: 3.75, + context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 }, + }, + limit: { context: 1000000, output: 128000 }, + }, + "anthropic/claude-3-opus": { + id: "anthropic/claude-3-opus", + name: "Claude Opus 3", + family: "claude-opus", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-08-31", + release_date: "2024-02-29", + last_updated: "2024-02-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 4096 }, + }, + "anthropic/claude-3.5-haiku": { + id: "anthropic/claude-3.5-haiku", + name: "Claude Haiku 3.5", + family: "claude-haiku", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07-31", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, + limit: { context: 200000, output: 8192 }, + }, + "anthropic/claude-opus-4": { + id: "anthropic/claude-opus-4", + name: "Claude Opus 4", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "anthropic/claude-3-haiku": { + id: "anthropic/claude-3-haiku", + name: "Claude Haiku 3", + family: "claude-haiku", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-08-31", + release_date: "2024-03-13", + last_updated: "2024-03-13", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1.25, cache_read: 0.03, cache_write: 0.3 }, + limit: { context: 200000, output: 4096 }, + }, + "anthropic/claude-sonnet-4.5": { + id: "anthropic/claude-sonnet-4.5", + name: "Claude Sonnet 4.5", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-sonnet-4": { + id: "anthropic/claude-sonnet-4", + name: "Claude Sonnet 4", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-3.5-sonnet": { + id: "anthropic/claude-3.5-sonnet", + name: "Claude Sonnet 3.5 v2", + family: "claude-sonnet", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04-30", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 8192 }, + }, + "anthropic/claude-3.7-sonnet": { + id: "anthropic/claude-3.7-sonnet", + name: "Claude Sonnet 3.7", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10-31", + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "anthropic/claude-opus-4.1": { + id: "anthropic/claude-opus-4.1", + name: "Claude Opus 4", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "xiaomi/mimo-v2-pro": { + id: "xiaomi/mimo-v2-pro", + name: "MiMo V2 Pro", + family: "mimo", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 3, cache_read: 0.19999999999999998 }, + limit: { context: 1000000, output: 128000 }, + }, + "xiaomi/mimo-v2-flash": { + id: "xiaomi/mimo-v2-flash", + name: "MiMo V2 Flash", + family: "mimo", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.29 }, + limit: { context: 262144, output: 32000 }, + }, + "bytedance/seed-1.6": { + id: "bytedance/seed-1.6", + name: "Seed 1.6", + family: "seed", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09", + last_updated: "2025-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.05 }, + limit: { context: 256000, output: 32000 }, + }, + "bytedance/seed-1.8": { + id: "bytedance/seed-1.8", + name: "Seed 1.8", + family: "seed", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-10", + last_updated: "2025-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.05 }, + limit: { context: 256000, output: 64000 }, + }, + "meituan/longcat-flash-chat": { + id: "meituan/longcat-flash-chat", + name: "LongCat Flash Chat", + family: "longcat", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-08-30", + last_updated: "2025-08-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 128000, output: 8192 }, + }, + "meituan/longcat-flash-thinking": { + id: "meituan/longcat-flash-thinking", + name: "LongCat Flash Thinking", + family: "longcat", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09-23", + last_updated: "2025-09-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 1.5 }, + limit: { context: 128000, output: 8192 }, + }, + "meituan/longcat-flash-thinking-2601": { + id: "meituan/longcat-flash-thinking-2601", + name: "LongCat Flash Thinking 2601", + family: "longcat", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + release_date: "2026-03-13", + last_updated: "2026-03-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + limit: { context: 32768, output: 32768 }, + }, + "bfl/flux-pro-1.0-fill": { + id: "bfl/flux-pro-1.0-fill", + name: "FLUX.1 Fill [pro]", + family: "flux", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-10", + last_updated: "2024-10", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 512, output: 0 }, + }, + "bfl/flux-pro-1.1": { + id: "bfl/flux-pro-1.1", + name: "FLUX1.1 [pro]", + family: "flux", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-10", + last_updated: "2024-10", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 512, output: 0 }, + }, + "bfl/flux-kontext-pro": { + id: "bfl/flux-kontext-pro", + name: "FLUX.1 Kontext Pro", + family: "flux", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-06", + last_updated: "2025-06", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 512, output: 0 }, + }, + "bfl/flux-kontext-max": { + id: "bfl/flux-kontext-max", + name: "FLUX.1 Kontext Max", + family: "flux", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-06", + last_updated: "2025-06", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 512, output: 0 }, + }, + "bfl/flux-pro-1.1-ultra": { + id: "bfl/flux-pro-1.1-ultra", + name: "FLUX1.1 [pro] Ultra", + family: "flux", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2024-11", + last_updated: "2024-11", + modalities: { input: ["text"], output: ["image"] }, + open_weights: false, + limit: { context: 512, output: 0 }, + }, + }, + }, + minimax: { + id: "minimax", + env: ["MINIMAX_API_KEY"], + npm: "@ai-sdk/anthropic", + api: "https://api.minimax.io/anthropic/v1", + name: "MiniMax (minimax.io)", + doc: "https://platform.minimax.io/docs/guides/quickstart", + models: { + "MiniMax-M2": { + id: "MiniMax-M2", + name: "MiniMax-M2", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-10-27", + last_updated: "2025-10-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 196608, output: 128000 }, + }, + "MiniMax-M2.5": { + id: "MiniMax-M2.5", + name: "MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.03, cache_write: 0.375 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMax-M2.7": { + id: "MiniMax-M2.7", + name: "MiniMax-M2.7", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.06, cache_write: 0.375 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMax-M2.7-highspeed": { + id: "MiniMax-M2.7-highspeed", + name: "MiniMax-M2.7-highspeed", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.4, cache_read: 0.06, cache_write: 0.375 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMax-M2.1": { + id: "MiniMax-M2.1", + name: "MiniMax-M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMax-M2.5-highspeed": { + id: "MiniMax-M2.5-highspeed", + name: "MiniMax-M2.5-highspeed", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-13", + last_updated: "2026-02-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.4, cache_read: 0.06, cache_write: 0.375 }, + limit: { context: 204800, output: 131072 }, + }, + }, + }, + llmgateway: { + id: "llmgateway", + env: ["LLMGATEWAY_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.llmgateway.io/v1", + name: "LLM Gateway", + doc: "https://llmgateway.io/docs", + models: { + "minimax-m2.7": { + id: "minimax-m2.7", + name: "MiniMax M2.7", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-01-01", + last_updated: "2024-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.06 }, + limit: { context: 204800, output: 131100 }, + }, + "gpt-4o-mini-search-preview": { + id: "gpt-4o-mini-search-preview", + name: "GPT-4o Mini Search Preview", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2024-10-01", + last_updated: "2024-10-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 128000, output: 16384 }, + }, + "grok-4-1-fast-reasoning": { + id: "grok-4-1-fast-reasoning", + name: "Grok 4.1 Fast Reasoning", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-11-19", + last_updated: "2025-11-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + "grok-4-20-beta-0309-non-reasoning": { + id: "grok-4-20-beta-0309-non-reasoning", + name: "Grok 4.20 Beta Non-Reasoning (0309)", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-03-09", + last_updated: "2026-03-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6, cache_read: 0.2 }, + limit: { context: 2000000, output: 30000 }, + }, + "qwen3-coder-plus": { + id: "qwen3-coder-plus", + name: "Qwen3 Coder Plus", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-23", + last_updated: "2025-09-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 6, output: 60 }, + limit: { context: 1000000, output: 66000 }, + }, + "claude-haiku-4-5": { + id: "claude-haiku-4-5", + name: "Claude Haiku 4.5", + family: "claude", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1 }, + limit: { context: 200000, output: 64000 }, + }, + "claude-opus-4-5-20251101": { + id: "claude-opus-4-5-20251101", + name: "Claude Opus 4.5", + family: "claude", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-11-24", + last_updated: "2025-11-24", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5 }, + limit: { context: 200000, output: 32000 }, + }, + "gemini-2.5-flash-lite-preview-09-2025": { + id: "gemini-2.5-flash-lite-preview-09-2025", + name: "Gemini 2.5 Flash Lite Preview (09-2025)", + family: "gemini", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.01 }, + limit: { context: 1048576, output: 65535 }, + }, + "qwen3-235b-a22b-instruct-2507": { + id: "qwen3-235b-a22b-instruct-2507", + name: "Qwen3 235B A22B Instruct 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-21", + last_updated: "2025-07-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.6 }, + limit: { context: 262000, output: 8192 }, + status: "beta", + }, + "kimi-k2.5": { + id: "kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01-26", + last_updated: "2026-01-26", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 3, cache_read: 0.1 }, + limit: { context: 262144, output: 32768 }, + }, + "llama-3.3-70b-instruct": { + id: "llama-3.3-70b-instruct", + name: "Llama 3.3 70B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 0.4 }, + limit: { context: 128000, output: 16384 }, + }, + "mistral-large-2512": { + id: "mistral-large-2512", + name: "Mistral Large 3", + family: "mistral", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-12-02", + last_updated: "2025-12-02", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 1.5 }, + limit: { context: 262144, output: 16384 }, + }, + "llama-4-scout": { + id: "llama-4-scout", + name: "Llama 4 Scout", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.18, output: 0.59 }, + limit: { context: 32768, output: 16384 }, + status: "beta", + }, + "glm-4.7": { + id: "glm-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 2.2, cache_read: 0.11 }, + limit: { context: 200000, output: 128000 }, + }, + "minimax-m2.7-highspeed": { + id: "minimax-m2.7-highspeed", + name: "MiniMax M2.7 Highspeed", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2024-01-01", + last_updated: "2024-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.4, cache_read: 0.06 }, + limit: { context: 204800, output: 131100 }, + }, + "hermes-2-pro-llama-3-8b": { + id: "hermes-2-pro-llama-3-8b", + name: "Hermes 2 Pro Llama 3 8B", + family: "nousresearch", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2024-05-27", + last_updated: "2024-05-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.14, output: 0.14 }, + limit: { context: 8192, output: 8192 }, + status: "beta", + }, + "qwen-coder-plus": { + id: "qwen-coder-plus", + name: "Qwen Coder Plus", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-09-18", + last_updated: "2024-09-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 5 }, + limit: { context: 131072, output: 8192 }, + }, + auto: { + id: "auto", + name: "Auto Route", + family: "auto", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-01-01", + last_updated: "2024-01-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "gemma-3n-e4b-it": { + id: "gemma-3n-e4b-it", + name: "Gemma 3n E4B IT", + family: "gemma", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-06-26", + last_updated: "2025-06-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.08, output: 0.3 }, + limit: { context: 1000000, output: 16384 }, + }, + "claude-3-5-sonnet-20241022": { + id: "claude-3-5-sonnet-20241022", + name: "Claude 3.5 Sonnet (2024-10-22)", + family: "claude", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3 }, + limit: { context: 200000, output: 8192 }, + status: "deprecated", + }, + "gpt-5.2-pro": { + id: "gpt-5.2-pro", + name: "GPT-5.2 Pro", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 21, output: 168 }, + limit: { context: 400000, output: 272000 }, + }, + "qwq-plus": { + id: "qwq-plus", + name: "QwQ Plus", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-03-06", + last_updated: "2025-03-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.8, output: 2.4 }, + limit: { context: 131072, output: 8192 }, + }, + "glm-4.6v-flashx": { + id: "glm-4.6v-flashx", + name: "GLM-4.6V FlashX", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-08", + last_updated: "2025-12-08", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.04, output: 0.4, cache_read: 0 }, + limit: { context: 128000, output: 16000 }, + }, + "gemini-3.1-flash-lite-preview": { + id: "gemini-3.1-flash-lite-preview", + name: "Gemini 3.1 Flash Lite (Preview)", + family: "gemini", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-03-03", + last_updated: "2026-03-03", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1.5, cache_read: 0.03 }, + limit: { context: 1048576, output: 65536 }, + }, + "qwen-vl-plus": { + id: "qwen-vl-plus", + name: "Qwen VL Plus", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-02-05", + last_updated: "2025-02-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.21, output: 0.64 }, + limit: { context: 131072, output: 32000 }, + }, + "gemma-2-27b-it-together": { + id: "gemma-2-27b-it-together", + name: "Gemma 2 27B IT", + family: "gemma", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2024-06-27", + last_updated: "2024-06-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.08, output: 0.08 }, + limit: { context: 8192, output: 16384 }, + }, + "glm-5": { + id: "glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-15", + last_updated: "2026-02-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 3.2, cache_read: 0.2 }, + limit: { context: 202800, output: 131100 }, + }, + "devstral-2512": { + id: "devstral-2512", + name: "Devstral 2", + family: "mistral", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-12-09", + last_updated: "2025-12-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 2 }, + limit: { context: 262144, output: 16384 }, + }, + "qwen3-32b": { + id: "qwen3-32b", + name: "Qwen3 32B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-28", + last_updated: "2025-04-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 32768, output: 8192 }, + }, + "codestral-2508": { + id: "codestral-2508", + name: "Codestral", + family: "mistral", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-07-30", + last_updated: "2025-07-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.9 }, + limit: { context: 256000, output: 16384 }, + }, + "claude-sonnet-4-6": { + id: "claude-sonnet-4-6", + name: "Claude Sonnet 4.6", + family: "claude", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-17", + last_updated: "2026-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3 }, + limit: { context: 200000, output: 64000 }, + }, + "glm-4.7-flashx": { + id: "glm-4.7-flashx", + name: "GLM-4.7 FlashX", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.07, output: 0.4, cache_read: 0.01 }, + limit: { context: 200000, output: 128000 }, + }, + "gemma-3-1b-it": { + id: "gemma-3-1b-it", + name: "Gemma 3 1B IT", + family: "gemma", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-03-12", + last_updated: "2025-03-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.08, output: 0.3 }, + limit: { context: 1000000, output: 16384 }, + }, + "gemini-3.1-pro-preview": { + id: "gemini-3.1-pro-preview", + name: "Gemini 3.1 Pro (Preview)", + family: "gemini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-19", + last_updated: "2026-02-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2 }, + limit: { context: 1048576, output: 65536 }, + }, + "qwen35-397b-a17b": { + id: "qwen35-397b-a17b", + name: "Qwen3.5 397B A17B", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-16", + last_updated: "2026-02-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3.6 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen-max": { + id: "qwen-max", + name: "Qwen Max", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 1.6, output: 6.4 }, + limit: { context: 131072, output: 32000 }, + }, + "gpt-5.3-chat-latest": { + id: "gpt-5.3-chat-latest", + name: "GPT-5.3 Chat", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2026-03-03", + last_updated: "2026-03-03", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.18 }, + limit: { context: 128000, output: 16384 }, + }, + "gemini-2.0-flash": { + id: "gemini-2.0-flash", + name: "Gemini 2.0 Flash", + family: "gemini", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-02-05", + last_updated: "2025-02-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.03 }, + limit: { context: 1048576, output: 8192 }, + status: "deprecated", + }, + "gemini-3-flash-preview": { + id: "gemini-3-flash-preview", + name: "Gemini 3 Flash (Preview)", + family: "gemini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 3, cache_read: 0.05 }, + limit: { context: 1048576, output: 65535 }, + }, + "qwen-plus": { + id: "qwen-plus", + name: "Qwen Plus", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-01-25", + last_updated: "2025-01-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 1.2, cache_read: 0.08 }, + limit: { context: 131072, output: 32000 }, + }, + "glm-4-32b-0414-128k": { + id: "glm-4-32b-0414-128k", + name: "GLM-4 32B (0414-128k)", + family: "glm", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 128000, output: 16384 }, + }, + "seed-1-6-flash-250715": { + id: "seed-1-6-flash-250715", + name: "Seed 1.6 Flash (250715)", + family: "seed", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-26", + last_updated: "2025-07-26", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.07, output: 0.3, cache_read: 0.02 }, + limit: { context: 256000, output: 16384 }, + }, + "qwen-omni-turbo": { + id: "qwen-omni-turbo", + name: "Qwen Omni Turbo", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-03-26", + last_updated: "2025-03-26", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 32768, output: 8192 }, + }, + "gpt-5-mini": { + id: "gpt-5-mini", + name: "GPT-5 Mini", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-01", + last_updated: "2025-08-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.03 }, + limit: { context: 400000, output: 128000 }, + }, + "gpt-5-nano": { + id: "gpt-5-nano", + name: "GPT-5 Nano", + family: "gpt", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-01", + last_updated: "2025-08-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.4, cache_read: 0.01 }, + limit: { context: 400000, output: 128000 }, + }, + "claude-3-haiku-20240307": { + id: "claude-3-haiku-20240307", + name: "Claude 3 Haiku (2024-03-07)", + family: "claude", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2024-03-04", + last_updated: "2024-03-04", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1.25, cache_read: 0.03 }, + limit: { context: 200000, output: 4096 }, + }, + "seed-1-6-250615": { + id: "seed-1-6-250615", + name: "Seed 1.6 (250615)", + family: "seed", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-06-25", + last_updated: "2025-06-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.05 }, + limit: { context: 256000, output: 16384 }, + }, + "qwen3-vl-235b-a22b-thinking": { + id: "qwen3-vl-235b-a22b-thinking", + name: "Qwen3 VL 235B A22B Thinking", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-09-23", + last_updated: "2025-09-23", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 2 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen3-vl-30b-a3b-thinking": { + id: "qwen3-vl-30b-a3b-thinking", + name: "Qwen3 VL 30B A3B Thinking", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-11", + last_updated: "2025-10-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 1 }, + limit: { context: 131072, output: 32768 }, + }, + "gpt-5.3-codex": { + id: "gpt-5.3-codex", + name: "GPT-5.3 Codex", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-24", + last_updated: "2026-02-24", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.18 }, + limit: { context: 400000, output: 128000 }, + }, + "minimax-m2": { + id: "minimax-m2", + name: "MiniMax M2", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-27", + last_updated: "2025-10-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 1, cache_read: 0.03 }, + limit: { context: 196608, output: 131072 }, + }, + "claude-sonnet-4-5-20250929": { + id: "claude-sonnet-4-5-20250929", + name: "Claude Sonnet 4.5 (2025-09-29)", + family: "claude", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3 }, + limit: { context: 200000, output: 64000 }, + }, + "qwen-flash": { + id: "qwen-flash", + name: "Qwen Flash", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-09-09", + last_updated: "2024-09-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.4, cache_read: 0.01 }, + limit: { context: 1000000, output: 32000 }, + }, + "gpt-4-turbo": { + id: "gpt-4-turbo", + name: "GPT-4 Turbo", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2023-11-06", + last_updated: "2023-11-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 10, output: 30 }, + limit: { context: 128000, output: 16384 }, + }, + "cogview-4": { + id: "cogview-4", + name: "CogView-4", + family: "glm", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-03-04", + last_updated: "2025-03-04", + modalities: { input: ["text"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 2000, output: 4096 }, + }, + "qwen2-5-vl-32b-instruct": { + id: "qwen2-5-vl-32b-instruct", + name: "Qwen2.5 VL 32B Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 1.4, output: 4.2 }, + limit: { context: 131072, output: 32768 }, + }, + "gemini-2.5-pro": { + id: "gemini-2.5-pro", + name: "Gemini 2.5 Pro", + family: "gemini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-03-25", + last_updated: "2025-03-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.13 }, + limit: { context: 1048576, output: 65536 }, + }, + "grok-4-1-fast-non-reasoning": { + id: "grok-4-1-fast-non-reasoning", + name: "Grok 4.1 Fast Non-Reasoning", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-11-19", + last_updated: "2025-11-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + "sonar-pro": { + id: "sonar-pro", + name: "Sonar Pro", + family: "sonar", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-03-07", + last_updated: "2025-03-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 200000, output: 16384 }, + }, + "pixtral-large-latest": { + id: "pixtral-large-latest", + name: "Pixtral Large Latest", + family: "mistral", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2024-11-18", + last_updated: "2024-11-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 4, output: 12 }, + limit: { context: 128000, output: 16384 }, + }, + "gpt-5.2": { + id: "gpt-5.2", + name: "GPT-5.2", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.18 }, + limit: { context: 400000, output: 128000 }, + }, + "qwen3-vl-8b-instruct": { + id: "qwen3-vl-8b-instruct", + name: "Qwen3 VL 8B Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-10-14", + last_updated: "2025-10-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.08, output: 0.5 }, + limit: { context: 131072, output: 8192 }, + }, + "claude-3-7-sonnet": { + id: "claude-3-7-sonnet", + name: "Claude 3.7 Sonnet", + family: "claude", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-02-24", + last_updated: "2025-02-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3 }, + limit: { context: 200000, output: 8192 }, + }, + "grok-4-20-beta-0309-reasoning": { + id: "grok-4-20-beta-0309-reasoning", + name: "Grok 4.20 Beta Reasoning (0309)", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-03-09", + last_updated: "2026-03-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6, cache_read: 0.2 }, + limit: { context: 2000000, output: 30000 }, + }, + "grok-imagine-image": { + id: "grok-imagine-image", + name: "Grok Imagine Image", + family: "grok", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2026-03-02", + last_updated: "2026-03-02", + modalities: { input: ["text", "image"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 2000, output: 4096 }, + }, + "gpt-4o-mini": { + id: "gpt-4o-mini", + name: "GPT-4o Mini", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6, cache_read: 0.08 }, + limit: { context: 128000, output: 16384 }, + }, + "gemini-pro-latest": { + id: "gemini-pro-latest", + name: "Gemini Pro Latest", + family: "gemini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-27", + last_updated: "2026-02-27", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2 }, + limit: { context: 1048576, output: 65536 }, + }, + "gpt-5.4-mini": { + id: "gpt-5.4-mini", + name: "GPT-5.4 Mini", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-03-17", + last_updated: "2026-03-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.75, output: 4.5, cache_read: 0.08 }, + limit: { context: 400000, output: 128000 }, + }, + "claude-3-5-haiku": { + id: "claude-3-5-haiku", + name: "Claude 3.5 Haiku", + family: "claude", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 4, cache_read: 0.08 }, + limit: { context: 200000, output: 8192 }, + status: "deprecated", + }, + "qwen3-max": { + id: "qwen3-max", + name: "Qwen3 Max", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-24", + last_updated: "2025-09-24", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 3, output: 15, cache_read: 0.6 }, + limit: { context: 256000, output: 32800 }, + }, + "minimax-m2.1": { + id: "minimax-m2.1", + name: "MiniMax M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 1.1 }, + limit: { context: 196608, output: 131072 }, + }, + "gemini-3-pro-image-preview": { + id: "gemini-3-pro-image-preview", + name: "Gemini 3 Pro Image (Preview)", + family: "gemini", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-11-20", + last_updated: "2025-11-20", + modalities: { input: ["text", "image"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2 }, + limit: { context: 65536, output: 32768 }, + }, + "mixtral-8x7b-instruct-together": { + id: "mixtral-8x7b-instruct-together", + name: "Mixtral 8x7B Instruct", + family: "mistral", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2023-12-10", + last_updated: "2023-12-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.06, output: 0.06 }, + limit: { context: 32768, output: 16384 }, + }, + "qwen-max-latest": { + id: "qwen-max-latest", + name: "Qwen Max Latest", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-01-25", + last_updated: "2025-01-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 1.6, output: 6.4 }, + limit: { context: 131072, output: 32000 }, + }, + "o4-mini": { + id: "o4-mini", + name: "o4 Mini", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.28 }, + limit: { context: 200000, output: 16384 }, + }, + "glm-4.6v-flash": { + id: "glm-4.6v-flash", + name: "GLM-4.6V Flash", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-08", + last_updated: "2025-12-08", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 16000 }, + }, + "gpt-5.4-nano": { + id: "gpt-5.4-nano", + name: "GPT-5.4 Nano", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-03-17", + last_updated: "2026-03-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.25, cache_read: 0.02 }, + limit: { context: 400000, output: 128000 }, + }, + "gemini-2.5-flash-image": { + id: "gemini-2.5-flash-image", + name: "Gemini 2.5 Flash Image", + family: "gemini", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-10-02", + last_updated: "2025-10-02", + modalities: { input: ["text", "image"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 0.3, output: 30, cache_read: 0.03 }, + limit: { context: 32768, output: 32768 }, + }, + "glm-4.5": { + id: "glm-4.5", + name: "GLM-4.5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 2.2, cache_read: 0.11 }, + limit: { context: 128000, output: 16384 }, + }, + "mistral-large-latest": { + id: "mistral-large-latest", + name: "Mistral Large Latest", + family: "mistral", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-12-02", + last_updated: "2025-12-02", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 4, output: 12 }, + limit: { context: 128000, output: 16384 }, + }, + "mistral-small-2506": { + id: "mistral-small-2506", + name: "Mistral Small 3.2", + family: "mistral", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-06-20", + last_updated: "2025-06-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 128000, output: 16384 }, + }, + "gemma-3-12b-it": { + id: "gemma-3-12b-it", + name: "Gemma 3 12B IT", + family: "gemma", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-03-10", + last_updated: "2025-03-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.08, output: 0.3 }, + limit: { context: 1000000, output: 16384 }, + }, + "seedream-4-0": { + id: "seedream-4-0", + name: "Seedream 4.0", + family: "seed", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-09-16", + last_updated: "2025-09-16", + modalities: { input: ["text"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 2000, output: 4096 }, + }, + "qwen3-30b-a3b-instruct-2507": { + id: "qwen3-30b-a3b-instruct-2507", + name: "Qwen3 30B A3B Instruct 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-30", + last_updated: "2025-07-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 262000, output: 8192 }, + }, + "gpt-5.2-codex": { + id: "gpt-5.2-codex", + name: "GPT-5.2 Codex", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01-14", + last_updated: "2026-01-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.18 }, + limit: { context: 400000, output: 128000 }, + }, + "minimax-text-01": { + id: "minimax-text-01", + name: "MiniMax Text 01", + family: "minimax", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-01-15", + last_updated: "2025-01-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 1.1 }, + limit: { context: 1000000, output: 131072 }, + }, + "qwen3-32b-fp8": { + id: "qwen3-32b-fp8", + name: "Qwen3 32B FP8", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-04-28", + last_updated: "2025-04-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.45 }, + limit: { context: 40960, output: 20000 }, + }, + "gemini-2.5-flash": { + id: "gemini-2.5-flash", + name: "Gemini 2.5 Flash", + family: "gemini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-26", + last_updated: "2025-08-26", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5, cache_read: 0.03 }, + limit: { context: 1048576, output: 65535 }, + }, + "llama-4-scout-17b-instruct": { + id: "llama-4-scout-17b-instruct", + name: "Llama 4 Scout 17B Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.17, output: 0.66 }, + limit: { context: 8192, output: 2048 }, + status: "beta", + }, + "gpt-5.2-chat-latest": { + id: "gpt-5.2-chat-latest", + name: "GPT-5.2 Chat", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.18 }, + limit: { context: 128000, output: 16400 }, + }, + "qwen3-4b-fp8": { + id: "qwen3-4b-fp8", + name: "Qwen3 4B FP8", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-04-28", + last_updated: "2025-04-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.03 }, + limit: { context: 128000, output: 20000 }, + }, + "veo-3.1-generate-preview": { + id: "veo-3.1-generate-preview", + name: "Veo 3.1", + family: "gemini", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2026-03-14", + last_updated: "2026-03-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 32768, output: 1 }, + status: "beta", + }, + "llama-guard-4-12b": { + id: "llama-guard-4-12b", + name: "Llama Guard 4 12B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-04-30", + last_updated: "2025-04-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 131072, output: 16384 }, + }, + "gemma-3n-e2b-it": { + id: "gemma-3n-e2b-it", + name: "Gemma 3n E2B IT", + family: "gemma", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-06-26", + last_updated: "2025-06-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.08, output: 0.3 }, + limit: { context: 1000000, output: 16384 }, + }, + "gpt-5.1-codex-mini": { + id: "gpt-5.1-codex-mini", + name: "GPT-5.1 Codex mini", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-11-12", + last_updated: "2025-11-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.03 }, + limit: { context: 400000, output: 128000 }, + }, + "gemini-3.1-flash-image-preview": { + id: "gemini-3.1-flash-image-preview", + name: "Gemini 3.1 Flash Image (Preview)", + family: "gemini", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2026-02-26", + last_updated: "2026-02-26", + modalities: { input: ["text", "image"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 0.25, output: 1.5 }, + limit: { context: 65536, output: 65536 }, + }, + "ministral-8b-2512": { + id: "ministral-8b-2512", + name: "Ministral 8B", + family: "mistral", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-12-02", + last_updated: "2025-12-02", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.15 }, + limit: { context: 262144, output: 16384 }, + }, + "grok-4-fast": { + id: "grok-4-fast", + name: "Grok 4 Fast", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + "gemma-3-27b": { + id: "gemma-3-27b", + name: "Gemma 3 27B", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-03-12", + last_updated: "2025-03-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 0.27 }, + limit: { context: 128000, output: 16384 }, + }, + "grok-imagine-image-pro": { + id: "grok-imagine-image-pro", + name: "Grok Imagine Image Pro", + family: "grok", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2026-03-02", + last_updated: "2026-03-02", + modalities: { input: ["text", "image"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 2000, output: 4096 }, + }, + "qwen3-vl-flash": { + id: "qwen3-vl-flash", + name: "Qwen3 VL Flash", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.4, cache_read: 0.01 }, + limit: { context: 262144, output: 32768 }, + }, + "llama-3.1-70b-instruct": { + id: "llama-3.1-70b-instruct", + name: "Llama 3.1 70B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.72, output: 0.72 }, + limit: { context: 128000, output: 2048 }, + status: "beta", + }, + "seed-1-8-251228": { + id: "seed-1-8-251228", + name: "Seed 1.8 (251228)", + family: "seed", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-18", + last_updated: "2025-12-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.05 }, + limit: { context: 256000, output: 16384 }, + }, + "qwen3-235b-a22b-thinking-2507": { + id: "qwen3-235b-a22b-thinking-2507", + name: "Qwen3 235B A22B Thinking 2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-25", + last_updated: "2025-07-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.6 }, + limit: { context: 262000, output: 8192 }, + status: "beta", + }, + "qwen3-next-80b-a3b-thinking": { + id: "qwen3-next-80b-a3b-thinking", + name: "Qwen3 Next 80B A3B Thinking", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-09-10", + last_updated: "2025-09-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 6 }, + limit: { context: 131072, output: 32768 }, + status: "beta", + }, + "seed-1-6-250915": { + id: "seed-1-6-250915", + name: "Seed 1.6 (250915)", + family: "seed", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.05 }, + limit: { context: 256000, output: 16384 }, + }, + "grok-code-fast-1": { + id: "grok-code-fast-1", + name: "Grok Code Fast 1", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-28", + last_updated: "2025-08-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.5 }, + limit: { context: 256000, output: 10000 }, + }, + "glm-4.5-x": { + id: "glm-4.5-x", + name: "GLM-4.5 X", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2.2, output: 8.9, cache_read: 0.45 }, + limit: { context: 128000, output: 16384 }, + status: "beta", + }, + "veo-3.1-fast-generate-preview": { + id: "veo-3.1-fast-generate-preview", + name: "Veo 3.1 Fast", + family: "gemini", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2026-03-14", + last_updated: "2026-03-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 32768, output: 1 }, + status: "beta", + }, + "gpt-5.1": { + id: "gpt-5.1", + name: "GPT-5.1", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-11-01", + last_updated: "2025-11-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.13 }, + limit: { context: 400000, output: 128000 }, + }, + "gemma-3-4b-it": { + id: "gemma-3-4b-it", + name: "Gemma 3 4B IT", + family: "gemma", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-03-10", + last_updated: "2025-03-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.08, output: 0.3 }, + limit: { context: 1000000, output: 16384 }, + }, + "kimi-k2-thinking-turbo": { + id: "kimi-k2-thinking-turbo", + name: "Kimi K2 Thinking Turbo", + family: "kimi", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-11-06", + last_updated: "2025-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.15, output: 8, cache_read: 0.15 }, + limit: { context: 262144, output: 262144 }, + }, + "qwen-image-max": { + id: "qwen-image-max", + name: "Qwen Image Max", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-08-04", + last_updated: "2025-08-04", + modalities: { input: ["text"], output: ["text", "image"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 2000, output: 4096 }, + }, + "qwen3-30b-a3b-thinking-2507": { + id: "qwen3-30b-a3b-thinking-2507", + name: "Qwen3 30B A3B Thinking 2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-30", + last_updated: "2025-07-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 262000, output: 8192 }, + }, + "grok-4-fast-reasoning": { + id: "grok-4-fast-reasoning", + name: "Grok 4 Fast Reasoning", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + o1: { + id: "o1", + name: "o1", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2024-09-12", + last_updated: "2024-09-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 60, cache_read: 7.5 }, + limit: { context: 200000, output: 16384 }, + }, + "glm-4.5-air": { + id: "glm-4.5-air", + name: "GLM-4.5 Air", + family: "glm", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-25", + last_updated: "2025-07-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.1, cache_read: 0.03 }, + limit: { context: 128000, output: 16384 }, + }, + "gpt-5.4-pro": { + id: "gpt-5.4-pro", + name: "GPT-5.4 Pro", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-03-01", + last_updated: "2026-03-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 30, output: 180 }, + limit: { context: 1050000, output: 128000 }, + }, + "claude-3-5-sonnet": { + id: "claude-3-5-sonnet", + name: "Claude 3.5 Sonnet", + family: "claude", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2024-06-20", + last_updated: "2024-06-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3 }, + limit: { context: 200000, output: 16384 }, + }, + "gpt-3.5-turbo": { + id: "gpt-3.5-turbo", + name: "GPT-3.5 Turbo", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2022-11-30", + last_updated: "2022-11-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 1.5 }, + limit: { context: 16385, output: 16384 }, + }, + "o3-mini": { + id: "o3-mini", + name: "o3 Mini", + family: "gpt", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-06-01", + last_updated: "2025-06-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, + limit: { context: 200000, output: 16384 }, + }, + "qwen-image-max-2025-12-30": { + id: "qwen-image-max-2025-12-30", + name: "Qwen Image Max 2025-12-30", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-12-31", + last_updated: "2025-12-31", + modalities: { input: ["text"], output: ["text", "image"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 2000, output: 4096 }, + }, + "qwen-vl-max": { + id: "qwen-vl-max", + name: "Qwen VL Max", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-02-01", + last_updated: "2025-02-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.8, output: 3.2 }, + limit: { context: 131072, output: 32000 }, + }, + sonar: { + id: "sonar", + name: "Sonar", + family: "sonar", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 1 }, + limit: { context: 130000, output: 16384 }, + }, + "qwen3-coder-flash": { + id: "qwen3-coder-flash", + name: "Qwen3 Coder Flash", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-22", + last_updated: "2025-07-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.5, cache_read: 0.06 }, + limit: { context: 1000000, output: 65536 }, + }, + "deepseek-v3.1": { + id: "deepseek-v3.1", + name: "DeepSeek V3.1", + family: "deepseek", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-21", + last_updated: "2025-08-21", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.56, output: 1.68, cache_read: 0.11 }, + limit: { context: 128000, output: 32768 }, + }, + "ministral-3b-2512": { + id: "ministral-3b-2512", + name: "Ministral 3B", + family: "mistral", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-12-02", + last_updated: "2025-12-02", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 131072, output: 16384 }, + }, + "grok-4-20-multi-agent-beta-0309": { + id: "grok-4-20-multi-agent-beta-0309", + name: "Grok 4.20 Multi-Agent Beta (0309)", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-03-09", + last_updated: "2026-03-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6, cache_read: 0.2 }, + limit: { context: 2000000, output: 30000 }, + }, + "qwen-plus-latest": { + id: "qwen-plus-latest", + name: "Qwen Plus Latest", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-09-09", + last_updated: "2024-09-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 1.2, cache_read: 0.08 }, + limit: { context: 1000000, output: 32000 }, + }, + "glm-4.5v": { + id: "glm-4.5v", + name: "GLM-4.5V", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-11", + last_updated: "2025-08-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 1.8, cache_read: 0.11 }, + limit: { context: 128000, output: 16000 }, + }, + "seedream-4-5": { + id: "seedream-4-5", + name: "Seedream 4.5", + family: "seed", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-12-03", + last_updated: "2025-12-03", + modalities: { input: ["text"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 2000, output: 4096 }, + }, + "llama-3.1-nemotron-ultra-253b": { + id: "llama-3.1-nemotron-ultra-253b", + name: "Llama 3.1 Nemotron Ultra 253B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-04-07", + last_updated: "2025-04-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 1.8 }, + limit: { context: 128000, output: 16384 }, + }, + "grok-4": { + id: "grok-4", + name: "Grok 4", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 256000, output: 256000 }, + }, + "llama-4-maverick-17b-instruct": { + id: "llama-4-maverick-17b-instruct", + name: "Llama 4 Maverick 17B Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.24, output: 0.97 }, + limit: { context: 8192, output: 2048 }, + status: "beta", + }, + "grok-4-0709": { + id: "grok-4-0709", + name: "Grok 4 (0709)", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 256000, output: 256000 }, + }, + "qwen3-next-80b-a3b-instruct": { + id: "qwen3-next-80b-a3b-instruct", + name: "Qwen3 Next 80B A3B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-10", + last_updated: "2025-09-10", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 2 }, + limit: { context: 129024, output: 32768 }, + }, + "gpt-4": { + id: "gpt-4", + name: "GPT-4", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2023-03-14", + last_updated: "2023-03-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 30, output: 60 }, + limit: { context: 8192, output: 8192 }, + }, + "qwen-image": { + id: "qwen-image", + name: "Qwen Image", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-08-04", + last_updated: "2025-08-04", + modalities: { input: ["text"], output: ["text", "image"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 2000, output: 4096 }, + }, + "qwen-image-edit-plus": { + id: "qwen-image-edit-plus", + name: "Qwen Image Edit Plus", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-08-19", + last_updated: "2025-08-19", + modalities: { input: ["text", "image"], output: ["text", "image"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 2000, output: 4096 }, + }, + "glm-4.6": { + id: "glm-4.6", + name: "GLM-4.6", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 2.2, cache_read: 0.11 }, + limit: { context: 200000, output: 16384 }, + }, + "qwen3-30b-a3b-fp8": { + id: "qwen3-30b-a3b-fp8", + name: "Qwen3 30B A3B FP8", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-04-28", + last_updated: "2025-04-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.09, output: 0.45 }, + limit: { context: 40960, output: 20000 }, + }, + "minimax-m2.1-lightning": { + id: "minimax-m2.1-lightning", + name: "MiniMax M2.1 Lightning", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.12, output: 0.48 }, + limit: { context: 196608, output: 131072 }, + }, + "claude-3-haiku": { + id: "claude-3-haiku", + name: "Claude 3 Haiku", + family: "claude", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2024-03-04", + last_updated: "2024-03-04", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1.25, cache_read: 0.03 }, + limit: { context: 200000, output: 4096 }, + }, + "glm-image": { + id: "glm-image", + name: "GLM-Image", + family: "glm", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-01-14", + last_updated: "2025-01-14", + modalities: { input: ["text"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 2000, output: 4096 }, + }, + "glm-4.6v": { + id: "glm-4.6v", + name: "GLM-4.6V", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-08", + last_updated: "2025-12-08", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.9, cache_read: 0.05 }, + limit: { context: 128000, output: 16000 }, + }, + "qwen3-max-2026-01-23": { + id: "qwen3-max-2026-01-23", + name: "Qwen3 Max 2026-01-23", + family: "qwen", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-01-23", + last_updated: "2026-01-23", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 1.2, output: 6, cache_read: 0.24 }, + limit: { context: 262144, output: 65536 }, + }, + "claude-opus-4-1-20250805": { + id: "claude-opus-4-1-20250805", + name: "Claude Opus 4.1", + family: "claude", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5 }, + limit: { context: 200000, output: 32000 }, + }, + "gpt-5.4": { + id: "gpt-5.4", + name: "GPT-5.4", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-03-06", + last_updated: "2026-03-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 15, cache_read: 0.25 }, + limit: { context: 1050000, output: 128000 }, + }, + "claude-haiku-4-5-20251001": { + id: "claude-haiku-4-5-20251001", + name: "Claude Haiku 4.5 (2025-10-01)", + family: "claude", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1 }, + limit: { context: 200000, output: 64000 }, + }, + "qwen-image-edit-max": { + id: "qwen-image-edit-max", + name: "Qwen Image Edit Max", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2026-01-16", + last_updated: "2026-01-16", + modalities: { input: ["text", "image"], output: ["text", "image"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 2000, output: 4096 }, + }, + "glm-4.5-flash": { + id: "glm-4.5-flash", + name: "GLM-4.5 Flash", + family: "glm", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-13", + last_updated: "2025-08-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "llama-3.2-3b-instruct": { + id: "llama-3.2-3b-instruct", + name: "Llama 3.2 3B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2024-09-18", + last_updated: "2024-09-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.05 }, + limit: { context: 32768, output: 32000 }, + status: "beta", + }, + "qwen3-coder-next": { + id: "qwen3-coder-next", + name: "Qwen3 Coder Next", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-01-01", + last_updated: "2024-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.11, output: 0.68, cache_read: 0.06 }, + limit: { context: 262144, output: 262144 }, + }, + "qwen-image-plus": { + id: "qwen-image-plus", + name: "Qwen Image Plus", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-08-04", + last_updated: "2025-08-04", + modalities: { input: ["text"], output: ["text", "image"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 2000, output: 4096 }, + }, + "qwen3-vl-plus": { + id: "qwen3-vl-plus", + name: "Qwen3 VL Plus", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-09-23", + last_updated: "2025-09-23", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 1.6, cache_read: 0.04 }, + limit: { context: 262144, output: 32768 }, + }, + "grok-4-1-fast": { + id: "grok-4-1-fast", + name: "Grok 4.1 Fast", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-11-19", + last_updated: "2025-11-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + "claude-sonnet-4-20250514": { + id: "claude-sonnet-4-20250514", + name: "Claude Sonnet 4 (2025-05-14)", + family: "claude", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-05-14", + last_updated: "2025-05-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3 }, + limit: { context: 200000, output: 16384 }, + }, + "qwen3-coder-480b-a35b-instruct": { + id: "qwen3-coder-480b-a35b-instruct", + name: "Qwen3 Coder 480B A35B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-01-31", + last_updated: "2025-01-31", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 1.8 }, + limit: { context: 262000, output: 8192 }, + }, + "claude-opus-4-6": { + id: "claude-opus-4-6", + name: "Claude Opus 4.6", + family: "claude", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5 }, + limit: { context: 1000000, output: 128000 }, + }, + "gpt-4o-search-preview": { + id: "gpt-4o-search-preview", + name: "GPT-4o Search Preview", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2024-10-01", + last_updated: "2024-10-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10 }, + limit: { context: 128000, output: 16384 }, + }, + custom: { + id: "custom", + name: "Custom Model", + family: "auto", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-01-01", + last_updated: "2024-01-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "gpt-4.1-nano": { + id: "gpt-4.1-nano", + name: "GPT-4.1 Nano", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.03 }, + limit: { context: 1000000, output: 16384 }, + }, + "claude-3-7-sonnet-20250219": { + id: "claude-3-7-sonnet-20250219", + name: "Claude 3.7 Sonnet (2025-02-19)", + family: "claude", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3 }, + limit: { context: 200000, output: 8192 }, + }, + "qwen3-vl-30b-a3b-instruct": { + id: "qwen3-vl-30b-a3b-instruct", + name: "Qwen3 VL 30B A3B Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-10-05", + last_updated: "2025-10-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.7 }, + limit: { context: 131072, output: 32768 }, + }, + "qwen3-coder-30b-a3b-instruct": { + id: "qwen3-coder-30b-a3b-instruct", + name: "Qwen3 Coder 30B A3B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-31", + last_updated: "2025-07-31", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 262000, output: 8192 }, + }, + "minimax-m2.5": { + id: "minimax-m2.5", + name: "MiniMax M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-02-15", + last_updated: "2026-02-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.03 }, + limit: { context: 204800, output: 131100 }, + }, + o3: { + id: "o3", + name: "o3", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-06-01", + last_updated: "2025-06-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 200000, output: 16384 }, + }, + "deepseek-v3.2": { + id: "deepseek-v3.2", + name: "DeepSeek V3.2", + family: "deepseek", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.28, output: 0.42, cache_read: 0.03 }, + limit: { context: 163840, output: 16384 }, + }, + "qwen3-235b-a22b-fp8": { + id: "qwen3-235b-a22b-fp8", + name: "Qwen3 235B A22B FP8", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-04-28", + last_updated: "2025-04-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.8 }, + limit: { context: 40960, output: 20000 }, + }, + "gpt-oss-20b": { + id: "gpt-oss-20b", + name: "GPT OSS 20B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.5 }, + limit: { context: 131072, output: 32766 }, + }, + "gpt-5-pro": { + id: "gpt-5-pro", + name: "GPT-5 Pro", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-01", + last_updated: "2025-08-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 120 }, + limit: { context: 400000, output: 272000 }, + }, + "gpt-4o": { + id: "gpt-4o", + name: "GPT-4o", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-05-13", + last_updated: "2024-05-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10, cache_read: 1.25 }, + limit: { context: 128000, output: 16384 }, + }, + "minimax-m2.5-highspeed": { + id: "minimax-m2.5-highspeed", + name: "MiniMax M2.5 Highspeed", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2024-01-01", + last_updated: "2024-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.4, cache_read: 0.03 }, + limit: { context: 204800, output: 131100 }, + }, + "qwen-turbo": { + id: "qwen-turbo", + name: "Qwen Turbo", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-02-01", + last_updated: "2025-02-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.2 }, + limit: { context: 1000000, output: 8192 }, + }, + "kimi-k2": { + id: "kimi-k2", + name: "Kimi K2", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-11", + last_updated: "2025-07-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 3, cache_read: 0.5 }, + limit: { context: 131072, output: 16384 }, + }, + "llama-3-8b-instruct": { + id: "llama-3-8b-instruct", + name: "Llama 3 8B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-04-03", + last_updated: "2025-04-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.04, output: 0.04 }, + limit: { context: 8192, output: 8192 }, + }, + "claude-sonnet-4-5": { + id: "claude-sonnet-4-5", + name: "Claude Sonnet 4.5", + family: "claude", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3 }, + limit: { context: 200000, output: 64000 }, + }, + "qwen3-vl-235b-a22b-instruct": { + id: "qwen3-vl-235b-a22b-instruct", + name: "Qwen3 VL 235B A22B Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-09-23", + last_updated: "2025-09-23", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 2 }, + limit: { context: 131072, output: 32768 }, + }, + "gemini-2.5-flash-lite": { + id: "gemini-2.5-flash-lite", + name: "Gemini 2.5 Flash Lite", + family: "gemini", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-22", + last_updated: "2025-07-22", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.01 }, + limit: { context: 1048576, output: 65535 }, + }, + "gpt-5": { + id: "gpt-5", + name: "GPT-5", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-01", + last_updated: "2025-08-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.13 }, + limit: { context: 400000, output: 128000 }, + }, + "glm-4.7-flash": { + id: "glm-4.7-flash", + name: "GLM-4.7 Flash", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 200000, output: 128000 }, + }, + "gemini-2.5-flash-image-preview": { + id: "gemini-2.5-flash-image-preview", + name: "Gemini 2.5 Flash Image (Preview)", + family: "gemini", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-10-02", + last_updated: "2025-10-02", + modalities: { input: ["text", "image"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5 }, + limit: { context: 32768, output: 32768 }, + }, + "gpt-oss-120b": { + id: "gpt-oss-120b", + name: "GPT OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.75 }, + limit: { context: 131072, output: 32766 }, + }, + "gpt-5-chat-latest": { + id: "gpt-5-chat-latest", + name: "GPT-5 Chat Latest", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-08-01", + last_updated: "2025-08-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.13 }, + limit: { context: 400000, output: 128000 }, + }, + "claude-opus-4-20250514": { + id: "claude-opus-4-20250514", + name: "Claude Opus 4 (2025-05-14)", + family: "claude", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5 }, + limit: { context: 200000, output: 16384 }, + }, + "qwen2-5-vl-72b-instruct": { + id: "qwen2-5-vl-72b-instruct", + name: "Qwen2.5 VL 72B Instruct", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-01-26", + last_updated: "2025-01-26", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 0.4 }, + limit: { context: 32768, output: 8192 }, + }, + "qwen25-coder-7b": { + id: "qwen25-coder-7b", + name: "Qwen2.5 Coder 7B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2024-09-19", + last_updated: "2024-09-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.01, output: 0.03 }, + limit: { context: 32768, output: 8192 }, + }, + "llama-3.1-8b-instruct": { + id: "llama-3.1-8b-instruct", + name: "Llama 3.1 8B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.22, output: 0.22 }, + limit: { context: 128000, output: 2048 }, + status: "beta", + }, + "llama-3-70b-instruct": { + id: "llama-3-70b-instruct", + name: "Llama 3 70B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2024-04-18", + last_updated: "2024-04-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.51, output: 0.74 }, + limit: { context: 8192, output: 8000 }, + }, + "deepseek-r1-0528": { + id: "deepseek-r1-0528", + name: "DeepSeek R1 (0528)", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-05-28", + last_updated: "2025-05-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.8, output: 2.4 }, + limit: { context: 64000, output: 16384 }, + status: "beta", + }, + "glm-4.5-airx": { + id: "glm-4.5-airx", + name: "GLM-4.5 AirX", + family: "glm", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.5, cache_read: 0.22 }, + limit: { context: 128000, output: 16384 }, + }, + "gpt-4.1": { + id: "gpt-4.1", + name: "GPT-4.1", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 1000000, output: 16384 }, + }, + "devstral-small-2507": { + id: "devstral-small-2507", + name: "Devstral Small 1.1", + family: "mistral", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-07-21", + last_updated: "2025-07-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 131072, output: 16384 }, + }, + "kimi-k2-thinking": { + id: "kimi-k2-thinking", + name: "Kimi K2 Thinking", + family: "kimi", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-11-06", + last_updated: "2025-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, + limit: { context: 262144, output: 262144 }, + }, + "gemini-2.0-flash-lite": { + id: "gemini-2.0-flash-lite", + name: "Gemini 2.0 Flash Lite", + family: "gemini", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-02-25", + last_updated: "2025-02-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.08, output: 0.3 }, + limit: { context: 1048576, output: 8192 }, + status: "deprecated", + }, + "gpt-4.1-mini": { + id: "gpt-4.1-mini", + name: "GPT-4.1 Mini", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.6, cache_read: 0.1 }, + limit: { context: 1000000, output: 16384 }, + }, + "gpt-5.1-codex": { + id: "gpt-5.1-codex", + name: "GPT-5.1 Codex", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10 }, + limit: { context: 400000, output: 272000 }, + }, + "grok-3": { + id: "grok-3", + name: "Grok-3", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15 }, + limit: { context: 131072, output: 16384 }, + }, + "grok-4-fast-non-reasoning": { + id: "grok-4-fast-non-reasoning", + name: "Grok 4 Fast Non-Reasoning", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-10-10", + last_updated: "2025-10-10", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + "ministral-14b-2512": { + id: "ministral-14b-2512", + name: "Ministral 14B", + family: "mistral", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-12-02", + last_updated: "2025-12-02", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 262144, output: 16384 }, + }, + "llama-3.2-11b-instruct": { + id: "llama-3.2-11b-instruct", + name: "Llama 3.2 11B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2024-09-25", + last_updated: "2024-09-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.33 }, + limit: { context: 128000, output: 16384 }, + status: "beta", + }, + "sonar-reasoning-pro": { + id: "sonar-reasoning-pro", + name: "Sonar Reasoning Pro", + family: "sonar", + attachment: false, + reasoning: true, + tool_call: false, + structured_output: true, + temperature: true, + release_date: "2025-03-07", + last_updated: "2025-03-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8 }, + limit: { context: 128000, output: 16384 }, + }, + "claude-3-opus": { + id: "claude-3-opus", + name: "Claude 3 Opus", + family: "claude", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2024-03-04", + last_updated: "2024-03-04", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5 }, + limit: { context: 200000, output: 4096 }, + }, + }, + }, + "google-vertex": { + id: "google-vertex", + env: ["GOOGLE_VERTEX_PROJECT", "GOOGLE_VERTEX_LOCATION", "GOOGLE_APPLICATION_CREDENTIALS"], + npm: "@ai-sdk/google-vertex", + name: "Vertex", + doc: "https://cloud.google.com/vertex-ai/generative-ai/docs/models", + models: { + "gemini-flash-lite-latest": { + id: "gemini-flash-lite-latest", + name: "Gemini Flash-Lite Latest", + family: "gemini-flash-lite", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-2.5-pro-preview-05-06": { + id: "gemini-2.5-pro-preview-05-06", + name: "Gemini 2.5 Pro Preview 05-06", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-05-06", + last_updated: "2025-05-06", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.31 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-3.1-pro-preview-customtools": { + id: "gemini-3.1-pro-preview-customtools", + name: "Gemini 3.1 Pro Preview Custom Tools", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-02-19", + last_updated: "2026-02-19", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-2.5-flash-lite-preview-09-2025": { + id: "gemini-2.5-flash-lite-preview-09-2025", + name: "Gemini 2.5 Flash Lite Preview 09-25", + family: "gemini-flash-lite", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-3.1-pro-preview": { + id: "gemini-3.1-pro-preview", + name: "Gemini 3.1 Pro Preview", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-02-19", + last_updated: "2026-02-19", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-2.0-flash": { + id: "gemini-2.0-flash", + name: "Gemini 2.0 Flash", + family: "gemini-flash", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-06", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6, cache_read: 0.025 }, + limit: { context: 1048576, output: 8192 }, + }, + "gemini-3-flash-preview": { + id: "gemini-3-flash-preview", + name: "Gemini 3 Flash Preview", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 0.5, + output: 3, + cache_read: 0.05, + context_over_200k: { input: 0.5, output: 3, cache_read: 0.05 }, + }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-3-pro-preview": { + id: "gemini-3-pro-preview", + name: "Gemini 3 Pro Preview", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-2.5-flash-preview-05-20": { + id: "gemini-2.5-flash-preview-05-20", + name: "Gemini 2.5 Flash Preview 05-20", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-05-20", + last_updated: "2025-05-20", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6, cache_read: 0.0375 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-embedding-001": { + id: "gemini-embedding-001", + name: "Gemini Embedding 001", + family: "gemini", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2025-05", + release_date: "2025-05-20", + last_updated: "2025-05-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0 }, + limit: { context: 2048, output: 3072 }, + }, + "gemini-2.5-pro": { + id: "gemini-2.5-pro", + name: "Gemini 2.5 Pro", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-03-20", + last_updated: "2025-06-05", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.31 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-flash-latest": { + id: "gemini-flash-latest", + name: "Gemini Flash Latest", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5, cache_read: 0.075, cache_write: 0.383 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-2.5-pro-preview-06-05": { + id: "gemini-2.5-pro-preview-06-05", + name: "Gemini 2.5 Pro Preview 06-05", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-06-05", + last_updated: "2025-06-05", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.31 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-2.5-flash-lite-preview-06-17": { + id: "gemini-2.5-flash-lite-preview-06-17", + name: "Gemini 2.5 Flash Lite Preview 06-17", + family: "gemini-flash-lite", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, + limit: { context: 65536, output: 65536 }, + }, + "gemini-2.5-flash": { + id: "gemini-2.5-flash", + name: "Gemini 2.5 Flash", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5, cache_read: 0.075, cache_write: 0.383 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-2.5-flash-preview-04-17": { + id: "gemini-2.5-flash-preview-04-17", + name: "Gemini 2.5 Flash Preview 04-17", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-04-17", + last_updated: "2025-04-17", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6, cache_read: 0.0375 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-2.5-flash-preview-09-2025": { + id: "gemini-2.5-flash-preview-09-2025", + name: "Gemini 2.5 Flash Preview 09-25", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5, cache_read: 0.075, cache_write: 0.383 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-2.5-flash-lite": { + id: "gemini-2.5-flash-lite", + name: "Gemini 2.5 Flash Lite", + family: "gemini-flash-lite", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-2.0-flash-lite": { + id: "gemini-2.0-flash-lite", + name: "Gemini 2.0 Flash Lite", + family: "gemini-flash-lite", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-06", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.075, output: 0.3 }, + limit: { context: 1048576, output: 8192 }, + }, + "zai-org/glm-5-maas": { + id: "zai-org/glm-5-maas", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3.2, cache_read: 0.1 }, + limit: { context: 202752, output: 131072 }, + provider: { + npm: "@ai-sdk/openai-compatible", + api: "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi", + }, + }, + "zai-org/glm-4.7-maas": { + id: "zai-org/glm-4.7-maas", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-01-06", + last_updated: "2026-01-06", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2 }, + limit: { context: 200000, output: 128000 }, + provider: { + npm: "@ai-sdk/openai-compatible", + api: "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi", + }, + }, + "deepseek-ai/deepseek-v3.2-maas": { + id: "deepseek-ai/deepseek-v3.2-maas", + name: "DeepSeek V3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-12-17", + last_updated: "2026-04-04", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: true, + cost: { input: 0.56, output: 1.68, cache_read: 0.056 }, + limit: { context: 163840, output: 65536 }, + provider: { + npm: "@ai-sdk/openai-compatible", + api: "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi", + }, + }, + "deepseek-ai/deepseek-v3.1-maas": { + id: "deepseek-ai/deepseek-v3.1-maas", + name: "DeepSeek V3.1", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-28", + last_updated: "2025-08-28", + modalities: { input: ["text", "pdf"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 1.7 }, + limit: { context: 163840, output: 32768 }, + provider: { + npm: "@ai-sdk/openai-compatible", + api: "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi", + }, + }, + "openai/gpt-oss-120b-maas": { + id: "openai/gpt-oss-120b-maas", + name: "GPT OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.09, output: 0.36 }, + limit: { context: 131072, output: 32768 }, + }, + "openai/gpt-oss-20b-maas": { + id: "openai/gpt-oss-20b-maas", + name: "GPT OSS 20B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.25 }, + limit: { context: 131072, output: 32768 }, + }, + "meta/llama-3.3-70b-instruct-maas": { + id: "meta/llama-3.3-70b-instruct-maas", + name: "Llama 3.3 70B Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-12", + release_date: "2025-04-29", + last_updated: "2025-04-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.72, output: 0.72 }, + limit: { context: 128000, output: 8192 }, + provider: { + npm: "@ai-sdk/openai-compatible", + api: "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi", + }, + }, + "meta/llama-4-maverick-17b-128e-instruct-maas": { + id: "meta/llama-4-maverick-17b-128e-instruct-maas", + name: "Llama 4 Maverick 17B 128E Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-04-29", + last_updated: "2025-04-29", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.35, output: 1.15 }, + limit: { context: 524288, output: 8192 }, + provider: { + npm: "@ai-sdk/openai-compatible", + api: "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi", + }, + }, + "qwen/qwen3-235b-a22b-instruct-2507-maas": { + id: "qwen/qwen3-235b-a22b-instruct-2507-maas", + name: "Qwen3 235B A22B Instruct", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-13", + last_updated: "2025-08-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.22, output: 0.88 }, + limit: { context: 262144, output: 16384 }, + provider: { + npm: "@ai-sdk/openai-compatible", + api: "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi", + }, + }, + "moonshotai/kimi-k2-thinking-maas": { + id: "moonshotai/kimi-k2-thinking-maas", + name: "Kimi K2 Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5 }, + limit: { context: 262144, output: 262144 }, + provider: { + npm: "@ai-sdk/openai-compatible", + api: "https://${GOOGLE_VERTEX_ENDPOINT}/v1/projects/${GOOGLE_VERTEX_PROJECT}/locations/${GOOGLE_VERTEX_LOCATION}/endpoints/openapi", + }, + }, + }, + }, + "cloudflare-workers-ai": { + id: "cloudflare-workers-ai", + env: ["CLOUDFLARE_ACCOUNT_ID", "CLOUDFLARE_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.cloudflare.com/client/v4/accounts/${CLOUDFLARE_ACCOUNT_ID}/ai/v1", + name: "Cloudflare Workers AI", + doc: "https://developers.cloudflare.com/workers-ai/models/", + models: { + "@cf/zai-org/glm-4.7-flash": { + id: "@cf/zai-org/glm-4.7-flash", + name: "GLM-4.7-Flash", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.06, output: 0.4 }, + limit: { context: 131072, output: 131072 }, + }, + "@cf/nvidia/nemotron-3-120b-a12b": { + id: "@cf/nvidia/nemotron-3-120b-a12b", + name: "Nemotron 3 Super 120B", + family: "nemotron", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-03-11", + last_updated: "2026-03-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 1.5 }, + limit: { context: 256000, output: 256000 }, + }, + "@cf/openai/gpt-oss-20b": { + id: "@cf/openai/gpt-oss-20b", + name: "GPT OSS 20B", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.3 }, + limit: { context: 128000, output: 16384 }, + }, + "@cf/openai/gpt-oss-120b": { + id: "@cf/openai/gpt-oss-120b", + name: "GPT OSS 120B", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.35, output: 0.75 }, + limit: { context: 128000, output: 16384 }, + }, + "@cf/meta/llama-4-scout-17b-16e-instruct": { + id: "@cf/meta/llama-4-scout-17b-16e-instruct", + name: "Llama 4 Scout 17B 16E Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.27, output: 0.85 }, + limit: { context: 128000, output: 16384 }, + }, + "@cf/google/gemma-4-26b-a4b-it": { + id: "@cf/google/gemma-4-26b-a4b-it", + name: "Gemma 4 26B A4B IT", + family: "gemma", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12-15", + last_updated: "2025-12-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 256000, output: 16384 }, + }, + "@cf/moonshotai/kimi-k2.5": { + id: "@cf/moonshotai/kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3, cache_read: 0.1 }, + limit: { context: 256000, output: 256000 }, + }, + }, + }, + groq: { + id: "groq", + env: ["GROQ_API_KEY"], + npm: "@ai-sdk/groq", + name: "Groq", + doc: "https://console.groq.com/docs/models", + models: { + "gemma2-9b-it": { + id: "gemma2-9b-it", + name: "Gemma 2 9B", + family: "gemma", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-06", + release_date: "2024-06-27", + last_updated: "2024-06-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 8192, output: 8192 }, + status: "deprecated", + }, + "mistral-saba-24b": { + id: "mistral-saba-24b", + name: "Mistral Saba 24B", + family: "mistral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-02-06", + last_updated: "2025-02-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.79, output: 0.79 }, + limit: { context: 32768, output: 32768 }, + status: "deprecated", + }, + "deepseek-r1-distill-llama-70b": { + id: "deepseek-r1-distill-llama-70b", + name: "DeepSeek R1 Distill Llama 70B", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.75, output: 0.99 }, + limit: { context: 131072, output: 8192 }, + status: "deprecated", + }, + "llama-guard-3-8b": { + id: "llama-guard-3-8b", + name: "Llama Guard 3 8B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 8192, output: 8192 }, + status: "deprecated", + }, + "llama-3.3-70b-versatile": { + id: "llama-3.3-70b-versatile", + name: "Llama 3.3 70B Versatile", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.59, output: 0.79 }, + limit: { context: 131072, output: 32768 }, + }, + "allam-2-7b": { + id: "allam-2-7b", + name: "ALLaM-2-7b", + family: "allam", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-09", + release_date: "2024-09", + last_updated: "2024-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 4096, output: 4096 }, + }, + "whisper-large-v3": { + id: "whisper-large-v3", + name: "Whisper Large V3", + family: "whisper", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-09", + release_date: "2023-09-01", + last_updated: "2025-09-05", + modalities: { input: ["audio"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 448, output: 448 }, + }, + "llama-3.1-8b-instant": { + id: "llama-3.1-8b-instant", + name: "Llama 3.1 8B Instant", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.08 }, + limit: { context: 131072, output: 131072 }, + }, + "llama3-70b-8192": { + id: "llama3-70b-8192", + name: "Llama 3 70B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-03", + release_date: "2024-04-18", + last_updated: "2024-04-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.59, output: 0.79 }, + limit: { context: 8192, output: 8192 }, + status: "deprecated", + }, + "qwen-qwq-32b": { + id: "qwen-qwq-32b", + name: "Qwen QwQ 32B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-09", + release_date: "2024-11-27", + last_updated: "2024-11-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.29, output: 0.39 }, + limit: { context: 131072, output: 16384 }, + status: "deprecated", + }, + "whisper-large-v3-turbo": { + id: "whisper-large-v3-turbo", + name: "Whisper Large v3 Turbo", + family: "whisper", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-10", + release_date: "2024-10-01", + last_updated: "2024-10-01", + modalities: { input: ["audio"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 448, output: 448 }, + }, + "llama3-8b-8192": { + id: "llama3-8b-8192", + name: "Llama 3 8B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-03", + release_date: "2024-04-18", + last_updated: "2024-04-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.08 }, + limit: { context: 8192, output: 8192 }, + status: "deprecated", + }, + "canopylabs/orpheus-arabic-saudi": { + id: "canopylabs/orpheus-arabic-saudi", + name: "Orpheus Arabic Saudi", + family: "canopylabs", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-12-16", + release_date: "2025-12-16", + last_updated: "2025-12-16", + modalities: { input: ["text"], output: ["audio"] }, + open_weights: false, + cost: { input: 40, output: 0 }, + limit: { context: 4000, output: 50000 }, + }, + "canopylabs/orpheus-v1-english": { + id: "canopylabs/orpheus-v1-english", + name: "Orpheus V1 English", + family: "canopylabs", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2025-12-19", + release_date: "2025-12-19", + last_updated: "2025-12-19", + modalities: { input: ["text"], output: ["audio"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 4000, output: 50000 }, + }, + "meta-llama/llama-4-scout-17b-16e-instruct": { + id: "meta-llama/llama-4-scout-17b-16e-instruct", + name: "Llama 4 Scout 17B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.11, output: 0.34 }, + limit: { context: 131072, output: 8192 }, + }, + "meta-llama/llama-prompt-guard-2-22m": { + id: "meta-llama/llama-prompt-guard-2-22m", + name: "Llama Prompt Guard 2 22M", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-10", + release_date: "2024-10-01", + last_updated: "2024-10-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.03 }, + limit: { context: 512, output: 512 }, + }, + "meta-llama/llama-guard-4-12b": { + id: "meta-llama/llama-guard-4-12b", + name: "Llama Guard 4 12B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.2 }, + limit: { context: 131072, output: 1024 }, + status: "deprecated", + }, + "meta-llama/llama-4-maverick-17b-128e-instruct": { + id: "meta-llama/llama-4-maverick-17b-128e-instruct", + name: "Llama 4 Maverick 17B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.6 }, + limit: { context: 131072, output: 8192 }, + status: "deprecated", + }, + "meta-llama/llama-prompt-guard-2-86m": { + id: "meta-llama/llama-prompt-guard-2-86m", + name: "Llama Prompt Guard 2 86M", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-10", + release_date: "2024-10-01", + last_updated: "2024-10-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.04, output: 0.04 }, + limit: { context: 512, output: 512 }, + }, + "openai/gpt-oss-20b": { + id: "openai/gpt-oss-20b", + name: "GPT OSS 20B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.075, output: 0.3 }, + limit: { context: 131072, output: 65536 }, + }, + "openai/gpt-oss-safeguard-20b": { + id: "openai/gpt-oss-safeguard-20b", + name: "Safety GPT OSS 20B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-03-05", + last_updated: "2025-03-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.075, output: 0.3, cache_read: 0.037 }, + limit: { context: 131072, output: 65536 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "GPT OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 131072, output: 65536 }, + }, + "qwen/qwen3-32b": { + id: "qwen/qwen3-32b", + name: "Qwen3 32B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-11-08", + release_date: "2024-12-23", + last_updated: "2024-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.29, output: 0.59 }, + limit: { context: 131072, output: 40960 }, + }, + "groq/compound": { + id: "groq/compound", + name: "Compound", + family: "groq", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-09-04", + release_date: "2025-09-04", + last_updated: "2025-09-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 8192 }, + }, + "groq/compound-mini": { + id: "groq/compound-mini", + name: "Compound Mini", + family: "groq", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-09-04", + release_date: "2025-09-04", + last_updated: "2025-09-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 8192 }, + }, + "moonshotai/kimi-k2-instruct": { + id: "moonshotai/kimi-k2-instruct", + name: "Kimi K2 Instruct", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-07-14", + last_updated: "2025-07-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3 }, + limit: { context: 131072, output: 16384 }, + status: "deprecated", + }, + "moonshotai/kimi-k2-instruct-0905": { + id: "moonshotai/kimi-k2-instruct-0905", + name: "Kimi K2 Instruct 0905", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3 }, + limit: { context: 262144, output: 16384 }, + }, + }, + }, + azure: { + id: "azure", + env: ["AZURE_RESOURCE_NAME", "AZURE_API_KEY"], + npm: "@ai-sdk/azure", + name: "Azure", + doc: "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", + models: { + "mistral-nemo": { + id: "mistral-nemo", + name: "Mistral Nemo", + family: "mistral-nemo", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.15 }, + limit: { context: 128000, output: 128000 }, + }, + "gpt-5.1-codex-max": { + id: "gpt-5.1-codex-max", + name: "GPT-5.1 Codex Max", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-13", + last_updated: "2025-11-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "gpt-5.2-chat": { + id: "gpt-5.2-chat", + name: "GPT-5.2 Chat", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 128000, output: 16384 }, + }, + "codex-mini": { + id: "codex-mini", + name: "Codex Mini", + family: "gpt-codex-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-04", + release_date: "2025-05-16", + last_updated: "2025-05-16", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.5, output: 6, cache_read: 0.375 }, + limit: { context: 200000, output: 100000 }, + }, + "phi-4-multimodal": { + id: "phi-4-multimodal", + name: "Phi-4-multimodal", + family: "phi", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text", "image", "audio"], output: ["text"] }, + open_weights: true, + cost: { input: 0.08, output: 0.32, input_audio: 4 }, + limit: { context: 128000, output: 4096 }, + }, + "phi-3.5-mini-instruct": { + id: "phi-3.5-mini-instruct", + name: "Phi-3.5-mini-instruct", + family: "phi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-08-20", + last_updated: "2024-08-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 0.52 }, + limit: { context: 128000, output: 4096 }, + }, + "llama-4-scout-17b-16e-instruct": { + id: "llama-4-scout-17b-16e-instruct", + name: "Llama 4 Scout 17B 16E Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.78 }, + limit: { context: 128000, output: 8192 }, + }, + "grok-4-1-fast-reasoning": { + id: "grok-4-1-fast-reasoning", + name: "Grok 4.1 Fast (Reasoning)", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-06-27", + last_updated: "2025-06-27", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 128000, input: 128000, output: 8192 }, + status: "beta", + }, + "phi-3-medium-4k-instruct": { + id: "phi-3-medium-4k-instruct", + name: "Phi-3-medium-instruct (4k)", + family: "phi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-04-23", + last_updated: "2024-04-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.17, output: 0.68 }, + limit: { context: 4096, output: 1024 }, + }, + "ministral-3b": { + id: "ministral-3b", + name: "Ministral 3B", + family: "ministral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-03", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.04, output: 0.04 }, + limit: { context: 128000, output: 8192 }, + }, + "claude-haiku-4-5": { + id: "claude-haiku-4-5", + name: "Claude Haiku 4.5", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-02-31", + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 200000, output: 64000 }, + provider: { + npm: "@ai-sdk/anthropic", + api: "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", + }, + }, + "meta-llama-3.1-8b-instruct": { + id: "meta-llama-3.1-8b-instruct", + name: "Meta-Llama-3.1-8B-Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.61 }, + limit: { context: 128000, output: 32768 }, + }, + "kimi-k2.5": { + id: "kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-02-06", + last_updated: "2026-02-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3 }, + limit: { context: 262144, output: 262144 }, + provider: { + npm: "@ai-sdk/openai-compatible", + api: "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/models", + shape: "completions", + }, + }, + "llama-3.3-70b-instruct": { + id: "llama-3.3-70b-instruct", + name: "Llama-3.3-70B-Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.71, output: 0.71 }, + limit: { context: 128000, output: 32768 }, + }, + "deepseek-v3-0324": { + id: "deepseek-v3-0324", + name: "DeepSeek-V3-0324", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-03-24", + last_updated: "2025-03-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.14, output: 4.56 }, + limit: { context: 131072, output: 131072 }, + }, + "gpt-5-chat": { + id: "gpt-5-chat", + name: "GPT-5 Chat", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: false, + temperature: false, + knowledge: "2024-10-24", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.13 }, + limit: { context: 128000, output: 16384 }, + }, + "phi-3.5-moe-instruct": { + id: "phi-3.5-moe-instruct", + name: "Phi-3.5-MoE-instruct", + family: "phi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-08-20", + last_updated: "2024-08-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.16, output: 0.64 }, + limit: { context: 128000, output: 4096 }, + }, + "gpt-5.3-chat": { + id: "gpt-5.3-chat", + name: "GPT-5.3 Chat", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-03", + last_updated: "2026-03-03", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 128000, output: 16384 }, + }, + "o1-mini": { + id: "o1-mini", + name: "o1-mini", + family: "o-mini", + attachment: false, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2023-09", + release_date: "2024-09-12", + last_updated: "2024-09-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, + limit: { context: 128000, output: 65536 }, + }, + "text-embedding-3-large": { + id: "text-embedding-3-large", + name: "text-embedding-3-large", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2024-01-25", + last_updated: "2024-01-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.13, output: 0 }, + limit: { context: 8191, output: 3072 }, + }, + "phi-3-mini-128k-instruct": { + id: "phi-3-mini-128k-instruct", + name: "Phi-3-mini-instruct (128k)", + family: "phi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-04-23", + last_updated: "2024-04-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 0.52 }, + limit: { context: 128000, output: 4096 }, + }, + "phi-4-reasoning": { + id: "phi-4-reasoning", + name: "Phi-4-reasoning", + family: "phi", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.125, output: 0.5 }, + limit: { context: 32000, output: 4096 }, + }, + "gpt-5-mini": { + id: "gpt-5-mini", + name: "GPT-5 Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.03 }, + limit: { context: 272000, output: 128000 }, + }, + "gpt-5-nano": { + id: "gpt-5-nano", + name: "GPT-5 Nano", + family: "gpt-nano", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.4, cache_read: 0.01 }, + limit: { context: 272000, output: 128000 }, + }, + "meta-llama-3-70b-instruct": { + id: "meta-llama-3-70b-instruct", + name: "Meta-Llama-3-70B-Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-12", + release_date: "2024-04-18", + last_updated: "2024-04-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.68, output: 3.54 }, + limit: { context: 8192, output: 2048 }, + }, + "phi-3-small-8k-instruct": { + id: "phi-3-small-8k-instruct", + name: "Phi-3-small-instruct (8k)", + family: "phi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-04-23", + last_updated: "2024-04-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 8192, output: 2048 }, + }, + "gpt-5.3-codex": { + id: "gpt-5.3-codex", + name: "GPT-5.3 Codex", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-02-24", + last_updated: "2026-02-24", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, output: 128000 }, + }, + "gpt-4-turbo": { + id: "gpt-4-turbo", + name: "GPT-4 Turbo", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-11", + release_date: "2023-11-06", + last_updated: "2024-04-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 10, output: 30 }, + limit: { context: 128000, output: 4096 }, + }, + "text-embedding-ada-002": { + id: "text-embedding-ada-002", + name: "text-embedding-ada-002", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2022-12-15", + last_updated: "2022-12-15", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0 }, + limit: { context: 8192, output: 1536 }, + }, + "llama-3.2-90b-vision-instruct": { + id: "llama-3.2-90b-vision-instruct", + name: "Llama-3.2-90B-Vision-Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-09-25", + last_updated: "2024-09-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 2.04, output: 2.04 }, + limit: { context: 128000, output: 8192 }, + }, + "deepseek-r1": { + id: "deepseek-r1", + name: "DeepSeek-R1", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2024-07", + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.35, output: 5.4 }, + limit: { context: 163840, output: 163840 }, + }, + "grok-4-1-fast-non-reasoning": { + id: "grok-4-1-fast-non-reasoning", + name: "Grok 4.1 Fast (Non-Reasoning)", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2025-06-27", + last_updated: "2025-06-27", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 128000, input: 128000, output: 8192 }, + status: "beta", + }, + "deepseek-v3.2-speciale": { + id: "deepseek-v3.2-speciale", + name: "DeepSeek-V3.2-Speciale", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2024-07", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.58, output: 1.68 }, + limit: { context: 128000, output: 128000 }, + }, + "gpt-5.2": { + id: "gpt-5.2", + name: "GPT-5.2", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "mistral-large-2411": { + id: "mistral-large-2411", + name: "Mistral Large 24.11", + family: "mistral-large", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-09", + release_date: "2024-11-01", + last_updated: "2024-11-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6 }, + limit: { context: 128000, output: 32768 }, + }, + "claude-opus-4-1": { + id: "claude-opus-4-1", + name: "Claude Opus 4.1", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + provider: { + npm: "@ai-sdk/anthropic", + api: "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", + }, + }, + "gpt-4o-mini": { + id: "gpt-4o-mini", + name: "GPT-4o mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-09", + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6, cache_read: 0.08 }, + limit: { context: 128000, output: 16384 }, + }, + "gpt-5.4-mini": { + id: "gpt-5.4-mini", + name: "GPT-5.4 Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-17", + last_updated: "2026-03-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.75, output: 4.5, cache_read: 0.075 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "cohere-command-r-08-2024": { + id: "cohere-command-r-08-2024", + name: "Command R", + family: "command-r", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-06-01", + release_date: "2024-08-30", + last_updated: "2024-08-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 128000, output: 4000 }, + }, + "cohere-command-a": { + id: "cohere-command-a", + name: "Command A", + family: "command-a", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-06-01", + release_date: "2025-03-13", + last_updated: "2025-03-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.5, output: 10 }, + limit: { context: 256000, output: 8000 }, + }, + "llama-3.2-11b-vision-instruct": { + id: "llama-3.2-11b-vision-instruct", + name: "Llama-3.2-11B-Vision-Instruct", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-09-25", + last_updated: "2024-09-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.37, output: 0.37 }, + limit: { context: 128000, output: 8192 }, + }, + "meta-llama-3.1-405b-instruct": { + id: "meta-llama-3.1-405b-instruct", + name: "Meta-Llama-3.1-405B-Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 5.33, output: 16 }, + limit: { context: 128000, output: 32768 }, + }, + "gpt-5.1-chat": { + id: "gpt-5.1-chat", + name: "GPT-5.1 Chat", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text", "image", "audio"], output: ["text", "image", "audio"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 128000, output: 16384 }, + }, + "gpt-4-turbo-vision": { + id: "gpt-4-turbo-vision", + name: "GPT-4 Turbo Vision", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-11", + release_date: "2023-11-06", + last_updated: "2024-04-09", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 10, output: 30 }, + limit: { context: 128000, output: 4096 }, + }, + "o4-mini": { + id: "o4-mini", + name: "o4-mini", + family: "o-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05", + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.28 }, + limit: { context: 200000, output: 100000 }, + }, + "gpt-5.4-nano": { + id: "gpt-5.4-nano", + name: "GPT-5.4 Nano", + family: "gpt-nano", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-17", + last_updated: "2026-03-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.25, cache_read: 0.02 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gpt-5.2-codex": { + id: "gpt-5.2-codex", + name: "GPT-5.2 Codex", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-01-14", + last_updated: "2026-01-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.75, output: 14, cache_read: 0.175 }, + limit: { context: 400000, output: 128000 }, + }, + "cohere-embed-v-4-0": { + id: "cohere-embed-v-4-0", + name: "Embed v4", + family: "cohere-embed", + attachment: true, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2025-04-15", + last_updated: "2025-04-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.12, output: 0 }, + limit: { context: 128000, output: 1536 }, + }, + "gpt-5.1-codex-mini": { + id: "gpt-5.1-codex-mini", + name: "GPT-5.1 Codex Mini", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.025 }, + limit: { context: 400000, output: 128000 }, + }, + "gpt-3.5-turbo-0125": { + id: "gpt-3.5-turbo-0125", + name: "GPT-3.5 Turbo 0125", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2021-08", + release_date: "2024-01-25", + last_updated: "2024-01-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.5, output: 1.5 }, + limit: { context: 16384, output: 16384 }, + }, + "o1-preview": { + id: "o1-preview", + name: "o1-preview", + family: "o", + attachment: false, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2023-09", + release_date: "2024-09-12", + last_updated: "2024-09-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 16.5, output: 66, cache_read: 8.25 }, + limit: { context: 128000, output: 32768 }, + }, + "cohere-embed-v3-multilingual": { + id: "cohere-embed-v3-multilingual", + name: "Embed v3 Multilingual", + family: "cohere-embed", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2023-11-07", + last_updated: "2023-11-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0 }, + limit: { context: 512, output: 1024 }, + }, + "grok-4-20-non-reasoning": { + id: "grok-4-20-non-reasoning", + name: "Grok 4.20 (Non-Reasoning)", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-09", + release_date: "2026-04-08", + last_updated: "2026-04-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6 }, + limit: { context: 262000, output: 8192 }, + status: "beta", + }, + "grok-code-fast-1": { + id: "grok-code-fast-1", + name: "Grok Code Fast 1", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2025-08-28", + last_updated: "2025-08-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 1.5, cache_read: 0.02 }, + limit: { context: 256000, output: 10000 }, + }, + "gpt-5.1": { + id: "gpt-5.1", + name: "GPT-5.1", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text", "image", "audio"], output: ["text", "image", "audio"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 272000, output: 128000 }, + }, + "grok-4-fast-reasoning": { + id: "grok-4-fast-reasoning", + name: "Grok 4 Fast (Reasoning)", + family: "grok", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-09-19", + last_updated: "2025-09-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + o1: { + id: "o1", + name: "o1", + family: "o", + attachment: false, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2023-09", + release_date: "2024-12-05", + last_updated: "2024-12-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 60, cache_read: 7.5 }, + limit: { context: 200000, output: 100000 }, + }, + "mistral-small-2503": { + id: "mistral-small-2503", + name: "Mistral Small 3.1", + family: "mistral-small", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-09", + release_date: "2025-03-01", + last_updated: "2025-03-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.3 }, + limit: { context: 128000, output: 32768 }, + }, + "gpt-5.4-pro": { + id: "gpt-5.4-pro", + name: "GPT-5.4 Pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 30, output: 180 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "model-router": { + id: "model-router", + name: "Model Router", + family: "model-router", + attachment: true, + reasoning: false, + tool_call: true, + release_date: "2025-05-19", + last_updated: "2025-11-18", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "gpt-3.5-turbo-1106": { + id: "gpt-3.5-turbo-1106", + name: "GPT-3.5 Turbo 1106", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2021-08", + release_date: "2023-11-06", + last_updated: "2023-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 2 }, + limit: { context: 16384, output: 16384 }, + }, + "o3-mini": { + id: "o3-mini", + name: "o3-mini", + family: "o-mini", + attachment: false, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05", + release_date: "2024-12-20", + last_updated: "2025-01-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.1, output: 4.4, cache_read: 0.55 }, + limit: { context: 200000, output: 100000 }, + }, + "text-embedding-3-small": { + id: "text-embedding-3-small", + name: "text-embedding-3-small", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2024-01-25", + last_updated: "2024-01-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.02, output: 0 }, + limit: { context: 8191, output: 1536 }, + }, + "deepseek-v3.1": { + id: "deepseek-v3.1", + name: "DeepSeek-V3.1", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-08-21", + last_updated: "2025-08-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.56, output: 1.68 }, + limit: { context: 131072, output: 131072 }, + }, + "claude-opus-4-5": { + id: "claude-opus-4-5", + name: "Claude Opus 4.5", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-24", + last_updated: "2025-08-01", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 64000 }, + provider: { + npm: "@ai-sdk/anthropic", + api: "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", + }, + }, + "phi-3-mini-4k-instruct": { + id: "phi-3-mini-4k-instruct", + name: "Phi-3-mini-instruct (4k)", + family: "phi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-04-23", + last_updated: "2024-04-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.13, output: 0.52 }, + limit: { context: 4096, output: 1024 }, + }, + "meta-llama-3.1-70b-instruct": { + id: "meta-llama-3.1-70b-instruct", + name: "Meta-Llama-3.1-70B-Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.68, output: 3.54 }, + limit: { context: 128000, output: 32768 }, + }, + "grok-4": { + id: "grok-4", + name: "Grok 4", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, reasoning: 15, cache_read: 0.75 }, + limit: { context: 256000, output: 64000 }, + }, + "phi-4-mini-reasoning": { + id: "phi-4-mini-reasoning", + name: "Phi-4-mini-reasoning", + family: "phi", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.075, output: 0.3 }, + limit: { context: 128000, output: 4096 }, + }, + "gpt-4": { + id: "gpt-4", + name: "GPT-4", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-11", + release_date: "2023-03-14", + last_updated: "2023-03-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 60, output: 120 }, + limit: { context: 8192, output: 8192 }, + }, + "meta-llama-3-8b-instruct": { + id: "meta-llama-3-8b-instruct", + name: "Meta-Llama-3-8B-Instruct", + family: "llama", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-12", + release_date: "2024-04-18", + last_updated: "2024-04-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.61 }, + limit: { context: 8192, output: 2048 }, + }, + "gpt-5-codex": { + id: "gpt-5-codex", + name: "GPT-5-Codex", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.13 }, + limit: { context: 400000, output: 128000 }, + }, + "gpt-5.4": { + id: "gpt-5.4", + name: "GPT-5.4", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 15, cache_read: 0.25 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "phi-4-mini": { + id: "phi-4-mini", + name: "Phi-4-mini", + family: "phi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.075, output: 0.3 }, + limit: { context: 128000, output: 4096 }, + }, + "grok-4-20-reasoning": { + id: "grok-4-20-reasoning", + name: "Grok 4.20 (Reasoning)", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-09", + release_date: "2026-04-08", + last_updated: "2026-04-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 6 }, + limit: { context: 262000, output: 8192 }, + status: "beta", + }, + "gpt-3.5-turbo-0301": { + id: "gpt-3.5-turbo-0301", + name: "GPT-3.5 Turbo 0301", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2021-08", + release_date: "2023-03-01", + last_updated: "2023-03-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.5, output: 2 }, + limit: { context: 4096, output: 4096 }, + }, + "claude-opus-4-6": { + id: "claude-opus-4-6", + name: "Claude Opus 4.6", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 5, + output: 25, + cache_read: 0.5, + cache_write: 6.25, + context_over_200k: { input: 10, output: 37.5, cache_read: 1, cache_write: 12.5 }, + }, + limit: { context: 200000, output: 128000 }, + provider: { + npm: "@ai-sdk/anthropic", + api: "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", + }, + }, + "phi-3-small-128k-instruct": { + id: "phi-3-small-128k-instruct", + name: "Phi-3-small-instruct (128k)", + family: "phi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-04-23", + last_updated: "2024-04-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 128000, output: 4096 }, + }, + "gpt-4.1-nano": { + id: "gpt-4.1-nano", + name: "GPT-4.1 nano", + family: "gpt-nano", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-05", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.03 }, + limit: { context: 1047576, output: 32768 }, + }, + "grok-3-mini": { + id: "grok-3-mini", + name: "Grok 3 Mini", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.5, reasoning: 0.5, cache_read: 0.075 }, + limit: { context: 131072, output: 8192 }, + }, + o3: { + id: "o3", + name: "o3", + family: "o", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-05", + release_date: "2025-04-16", + last_updated: "2025-04-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 200000, output: 100000 }, + }, + "deepseek-v3.2": { + id: "deepseek-v3.2", + name: "DeepSeek-V3.2", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.58, output: 1.68 }, + limit: { context: 128000, output: 128000 }, + }, + "gpt-5-pro": { + id: "gpt-5-pro", + name: "GPT-5 Pro", + family: "gpt-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-10-06", + last_updated: "2025-10-06", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 120 }, + limit: { context: 400000, output: 272000 }, + }, + "gpt-4o": { + id: "gpt-4o", + name: "GPT-4o", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-09", + release_date: "2024-05-13", + last_updated: "2024-05-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2.5, output: 10, cache_read: 1.25 }, + limit: { context: 128000, output: 16384 }, + }, + "phi-3-medium-128k-instruct": { + id: "phi-3-medium-128k-instruct", + name: "Phi-3-medium-instruct (128k)", + family: "phi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-04-23", + last_updated: "2024-04-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.17, output: 0.68 }, + limit: { context: 128000, output: 4096 }, + }, + "gpt-3.5-turbo-0613": { + id: "gpt-3.5-turbo-0613", + name: "GPT-3.5 Turbo 0613", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2021-08", + release_date: "2023-06-13", + last_updated: "2023-06-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 4 }, + limit: { context: 16384, output: 16384 }, + }, + "cohere-command-r-plus-08-2024": { + id: "cohere-command-r-plus-08-2024", + name: "Command R+", + family: "command-r", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-06-01", + release_date: "2024-08-30", + last_updated: "2024-08-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.5, output: 10 }, + limit: { context: 128000, output: 4000 }, + }, + "claude-sonnet-4-5": { + id: "claude-sonnet-4-5", + name: "Claude Sonnet 4.5", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + provider: { + npm: "@ai-sdk/anthropic", + api: "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1", + }, + }, + "phi-4": { + id: "phi-4", + name: "Phi-4", + family: "phi", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.125, output: 0.5 }, + limit: { context: 128000, output: 4096 }, + }, + "gpt-5": { + id: "gpt-5", + name: "GPT-5", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.13 }, + limit: { context: 272000, output: 128000 }, + }, + "gpt-4-32k": { + id: "gpt-4-32k", + name: "GPT-4 32K", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-11", + release_date: "2023-03-14", + last_updated: "2023-03-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 60, output: 120 }, + limit: { context: 32768, output: 32768 }, + }, + "cohere-embed-v3-english": { + id: "cohere-embed-v3-english", + name: "Embed v3 English", + family: "cohere-embed", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + release_date: "2023-11-07", + last_updated: "2023-11-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0 }, + limit: { context: 512, output: 1024 }, + }, + "phi-4-reasoning-plus": { + id: "phi-4-reasoning-plus", + name: "Phi-4-reasoning-plus", + family: "phi", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2023-10", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.125, output: 0.5 }, + limit: { context: 32000, output: 4096 }, + }, + "mistral-medium-2505": { + id: "mistral-medium-2505", + name: "Mistral Medium 3", + family: "mistral-medium", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2025-05-07", + last_updated: "2025-05-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 2 }, + limit: { context: 128000, output: 128000 }, + }, + "gpt-3.5-turbo-instruct": { + id: "gpt-3.5-turbo-instruct", + name: "GPT-3.5 Turbo Instruct", + family: "gpt", + attachment: false, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2021-08", + release_date: "2023-09-21", + last_updated: "2023-09-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.5, output: 2 }, + limit: { context: 4096, output: 4096 }, + }, + "deepseek-r1-0528": { + id: "deepseek-r1-0528", + name: "DeepSeek-R1-0528", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-05-28", + last_updated: "2025-05-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.35, output: 5.4 }, + limit: { context: 163840, output: 163840 }, + }, + "gpt-4.1": { + id: "gpt-4.1", + name: "GPT-4.1", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-05", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 1047576, output: 32768 }, + }, + "kimi-k2-thinking": { + id: "kimi-k2-thinking", + name: "Kimi K2 Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-11-06", + last_updated: "2025-12-02", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, + limit: { context: 262144, output: 262144 }, + }, + "gpt-4.1-mini": { + id: "gpt-4.1-mini", + name: "GPT-4.1 mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-05", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.4, output: 1.6, cache_read: 0.1 }, + limit: { context: 1047576, output: 32768 }, + }, + "gpt-5.1-codex": { + id: "gpt-5.1-codex", + name: "GPT-5.1 Codex", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2025-11-14", + last_updated: "2025-11-14", + modalities: { input: ["text", "image", "audio"], output: ["text", "image", "audio"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "codestral-2501": { + id: "codestral-2501", + name: "Codestral 25.01", + family: "codestral", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-03", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 0.9 }, + limit: { context: 256000, output: 256000 }, + }, + "llama-4-maverick-17b-128e-instruct-fp8": { + id: "llama-4-maverick-17b-128e-instruct-fp8", + name: "Llama 4 Maverick 17B 128E Instruct FP8", + family: "llama", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-04-05", + last_updated: "2025-04-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.25, output: 1 }, + limit: { context: 128000, output: 8192 }, + }, + "grok-3": { + id: "grok-3", + name: "Grok 3", + family: "grok", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-11", + release_date: "2025-02-17", + last_updated: "2025-02-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.75 }, + limit: { context: 131072, output: 8192 }, + }, + "grok-4-fast-non-reasoning": { + id: "grok-4-fast-non-reasoning", + name: "Grok 4 Fast (Non-Reasoning)", + family: "grok", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-09-19", + last_updated: "2025-09-19", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.2, output: 0.5, cache_read: 0.05 }, + limit: { context: 2000000, output: 30000 }, + }, + "mai-ds-r1": { + id: "mai-ds-r1", + name: "MAI-DS-R1", + family: "mai", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2024-06", + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 1.35, output: 5.4 }, + limit: { context: 128000, output: 8192 }, + }, + }, + }, + fastrouter: { + id: "fastrouter", + env: ["FASTROUTER_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://go.fastrouter.ai/api/v1", + name: "FastRouter", + doc: "https://fastrouter.ai/models", + models: { + "x-ai/grok-4": { + id: "x-ai/grok-4", + name: "Grok 4", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.75, cache_write: 15 }, + limit: { context: 256000, output: 64000 }, + }, + "deepseek-ai/deepseek-r1-distill-llama-70b": { + id: "deepseek-ai/deepseek-r1-distill-llama-70b", + name: "DeepSeek R1 Distill Llama 70B", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2024-10", + release_date: "2025-01-23", + last_updated: "2025-01-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.03, output: 0.14 }, + limit: { context: 131072, output: 131072 }, + }, + "openai/gpt-5-mini": { + id: "openai/gpt-5-mini", + name: "GPT-5 Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10-01", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2, cache_read: 0.025 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-5-nano": { + id: "openai/gpt-5-nano", + name: "GPT-5 Nano", + family: "gpt-nano", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10-01", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.05, output: 0.4, cache_read: 0.005 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-oss-20b": { + id: "openai/gpt-oss-20b", + name: "GPT OSS 20B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.05, output: 0.2 }, + limit: { context: 131072, output: 65536 }, + }, + "openai/gpt-5": { + id: "openai/gpt-5", + name: "GPT-5", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10-01", + release_date: "2025-08-07", + last_updated: "2025-08-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.125 }, + limit: { context: 400000, output: 128000 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "GPT OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 131072, output: 32768 }, + }, + "openai/gpt-4.1": { + id: "openai/gpt-4.1", + name: "GPT-4.1", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 8, cache_read: 0.5 }, + limit: { context: 1047576, output: 32768 }, + }, + "z-ai/glm-5": { + id: "z-ai/glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.95, output: 3.15 }, + limit: { context: 204800, output: 131072 }, + }, + "qwen/qwen3-coder": { + id: "qwen/qwen3-coder", + name: "Qwen3 Coder", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 262144, output: 66536 }, + }, + "google/gemini-2.5-pro": { + id: "google/gemini-2.5-pro", + name: "Gemini 2.5 Pro", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.31 }, + limit: { context: 1048576, output: 65536 }, + }, + "google/gemini-2.5-flash": { + id: "google/gemini-2.5-flash", + name: "Gemini 2.5 Flash", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5, cache_read: 0.0375 }, + limit: { context: 1048576, output: 65536 }, + }, + "moonshotai/kimi-k2": { + id: "moonshotai/kimi-k2", + name: "Kimi K2", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-07-11", + last_updated: "2025-07-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.2 }, + limit: { context: 131072, output: 32768 }, + }, + "anthropic/claude-opus-4.1": { + id: "anthropic/claude-opus-4.1", + name: "Claude Opus 4.1", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "anthropic/claude-sonnet-4": { + id: "anthropic/claude-sonnet-4", + name: "Claude Sonnet 4", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + }, + }, + stackit: { + id: "stackit", + env: ["STACKIT_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.openai-compat.model-serving.eu01.onstackit.cloud/v1", + name: "STACKIT", + doc: "https://docs.stackit.cloud/products/data-and-ai/ai-model-serving/basics/available-shared-models", + models: { + "Qwen/Qwen3-VL-Embedding-8B": { + id: "Qwen/Qwen3-VL-Embedding-8B", + name: "Qwen3-VL Embedding 8B", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: false, + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.09, output: 0.09 }, + limit: { context: 32000, output: 4096 }, + }, + "Qwen/Qwen3-VL-235B-A22B-Instruct-FP8": { + id: "Qwen/Qwen3-VL-235B-A22B-Instruct-FP8", + name: "Qwen3-VL 235B", + family: "qwen", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2024-11-01", + last_updated: "2024-11-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 1.64, output: 1.91 }, + limit: { context: 218000, output: 8192 }, + }, + "neuralmagic/Meta-Llama-3.1-8B-Instruct-FP8": { + id: "neuralmagic/Meta-Llama-3.1-8B-Instruct-FP8", + name: "Llama 3.1 8B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.16, output: 0.27 }, + limit: { context: 128000, output: 8192 }, + }, + "neuralmagic/Mistral-Nemo-Instruct-2407-FP8": { + id: "neuralmagic/Mistral-Nemo-Instruct-2407-FP8", + name: "Mistral Nemo", + family: "mistral", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2024-07-01", + last_updated: "2024-07-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.49, output: 0.71 }, + limit: { context: 128000, output: 8192 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "GPT-OSS 120B", + family: "gpt", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.49, output: 0.71 }, + limit: { context: 131000, output: 8192 }, + }, + "cortecs/Llama-3.3-70B-Instruct-FP8-Dynamic": { + id: "cortecs/Llama-3.3-70B-Instruct-FP8-Dynamic", + name: "Llama 3.3 70B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: false, + temperature: true, + release_date: "2024-12-05", + last_updated: "2024-12-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.49, output: 0.71 }, + limit: { context: 128000, output: 8192 }, + }, + "google/gemma-3-27b-it": { + id: "google/gemma-3-27b-it", + name: "Gemma 3 27B", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + release_date: "2025-05-17", + last_updated: "2025-05-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.49, output: 0.71 }, + limit: { context: 37000, output: 8192 }, + }, + "intfloat/e5-mistral-7b-instruct": { + id: "intfloat/e5-mistral-7b-instruct", + name: "E5 Mistral 7B", + family: "mistral", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: false, + release_date: "2023-12-11", + last_updated: "2023-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0.02 }, + limit: { context: 4096, output: 4096 }, + }, + }, + }, + "tencent-coding-plan": { + id: "tencent-coding-plan", + env: ["TENCENT_CODING_PLAN_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.lkeap.cloud.tencent.com/coding/v3", + name: "Tencent Coding Plan (China)", + doc: "https://cloud.tencent.com/document/product/1772/128947", + models: { + "kimi-k2.5": { + id: "kimi-k2.5", + name: "Kimi-K2.5", + family: "kimi", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-01", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 262144, output: 32768 }, + }, + "glm-5": { + id: "glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 202752, output: 16384 }, + }, + "hunyuan-turbos": { + id: "hunyuan-turbos", + name: "Hunyuan-TurboS", + family: "hunyuan", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2026-03-08", + last_updated: "2026-03-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 131072, output: 16384 }, + }, + "hunyuan-t1": { + id: "hunyuan-t1", + name: "Hunyuan-T1", + family: "hunyuan", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-03-08", + last_updated: "2026-03-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 131072, output: 16384 }, + }, + "hunyuan-2.0-instruct": { + id: "hunyuan-2.0-instruct", + name: "Tencent HY 2.0 Instruct", + family: "hunyuan", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2026-03-08", + last_updated: "2026-03-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 131072, output: 16384 }, + }, + "minimax-m2.5": { + id: "minimax-m2.5", + name: "MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 204800, output: 32768 }, + }, + "tc-code-latest": { + id: "tc-code-latest", + name: "Auto", + family: "auto", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + release_date: "2026-03-08", + last_updated: "2026-03-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 131072, output: 16384 }, + }, + "hunyuan-2.0-thinking": { + id: "hunyuan-2.0-thinking", + name: "Tencent HY 2.0 Think", + family: "hunyuan", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-03-08", + last_updated: "2026-03-08", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 131072, output: 16384 }, + }, + }, + }, + "privatemode-ai": { + id: "privatemode-ai", + env: ["PRIVATEMODE_API_KEY", "PRIVATEMODE_ENDPOINT"], + npm: "@ai-sdk/openai-compatible", + api: "http://localhost:8080/v1", + name: "Privatemode AI", + doc: "https://docs.privatemode.ai/api/overview", + models: { + "gemma-3-27b": { + id: "gemma-3-27b", + name: "Gemma 3 27B", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-08", + release_date: "2025-03-12", + last_updated: "2025-03-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 8192 }, + }, + "whisper-large-v3": { + id: "whisper-large-v3", + name: "Whisper large-v3", + family: "whisper", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + knowledge: "2023-09", + release_date: "2023-09-01", + last_updated: "2023-09-01", + modalities: { input: ["audio"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 0, output: 4096 }, + }, + "qwen3-embedding-4b": { + id: "qwen3-embedding-4b", + name: "Qwen3-Embedding 4B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: false, + structured_output: false, + temperature: true, + knowledge: "2025-06", + release_date: "2025-06-06", + last_updated: "2025-06-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 32000, output: 2560 }, + }, + "gpt-oss-120b": { + id: "gpt-oss-120b", + name: "gpt-oss-120b", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-08", + release_date: "2025-08-04", + last_updated: "2025-08-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 128000 }, + }, + "qwen3-coder-30b-a3b": { + id: "qwen3-coder-30b-a3b", + name: "Qwen3-Coder 30B-A3B", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04", + last_updated: "2025-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 32768 }, + }, + }, + }, + google: { + id: "google", + env: ["GOOGLE_GENERATIVE_AI_API_KEY", "GEMINI_API_KEY"], + npm: "@ai-sdk/google", + name: "Google", + doc: "https://ai.google.dev/gemini-api/docs/pricing", + models: { + "gemini-flash-lite-latest": { + id: "gemini-flash-lite-latest", + name: "Gemini Flash-Lite Latest", + family: "gemini-flash-lite", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-2.5-pro-preview-05-06": { + id: "gemini-2.5-pro-preview-05-06", + name: "Gemini 2.5 Pro Preview 05-06", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-05-06", + last_updated: "2025-05-06", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.31 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-live-2.5-flash-preview-native-audio": { + id: "gemini-live-2.5-flash-preview-native-audio", + name: "Gemini Live 2.5 Flash Preview Native Audio", + family: "gemini-flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: false, + knowledge: "2025-01", + release_date: "2025-06-17", + last_updated: "2025-09-18", + modalities: { input: ["text", "audio", "video"], output: ["text", "audio"] }, + open_weights: false, + cost: { input: 0.5, output: 2, input_audio: 3, output_audio: 12 }, + limit: { context: 131072, output: 65536 }, + }, + "gemini-3.1-pro-preview-customtools": { + id: "gemini-3.1-pro-preview-customtools", + name: "Gemini 3.1 Pro Preview Custom Tools", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-02-19", + last_updated: "2026-02-19", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-2.5-flash-lite-preview-09-2025": { + id: "gemini-2.5-flash-lite-preview-09-2025", + name: "Gemini 2.5 Flash Lite Preview 09-25", + family: "gemini-flash-lite", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-1.5-flash": { + id: "gemini-1.5-flash", + name: "Gemini 1.5 Flash", + family: "gemini-flash", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-05-14", + last_updated: "2024-05-14", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.075, output: 0.3, cache_read: 0.01875 }, + limit: { context: 1000000, output: 8192 }, + }, + "gemini-1.5-pro": { + id: "gemini-1.5-pro", + name: "Gemini 1.5 Pro", + family: "gemini-pro", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-02-15", + last_updated: "2024-02-15", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 5, cache_read: 0.3125 }, + limit: { context: 1000000, output: 8192 }, + }, + "gemma-3n-e4b-it": { + id: "gemma-3n-e4b-it", + name: "Gemma 3n 4B", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-10", + release_date: "2025-05-20", + last_updated: "2025-05-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 8192, output: 2000 }, + }, + "gemini-3.1-flash-lite-preview": { + id: "gemini-3.1-flash-lite-preview", + name: "Gemini 3.1 Flash Lite Preview", + family: "gemini-flash-lite", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-03-03", + last_updated: "2026-03-03", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1.5, cache_read: 0.025, cache_write: 1 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-3.1-pro-preview": { + id: "gemini-3.1-pro-preview", + name: "Gemini 3.1 Pro Preview", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-02-19", + last_updated: "2026-02-19", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-2.0-flash": { + id: "gemini-2.0-flash", + name: "Gemini 2.0 Flash", + family: "gemini-flash", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-06", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, + limit: { context: 1048576, output: 8192 }, + }, + "gemini-3-flash-preview": { + id: "gemini-3-flash-preview", + name: "Gemini 3 Flash Preview", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { + input: 0.5, + output: 3, + cache_read: 0.05, + context_over_200k: { input: 0.5, output: 3, cache_read: 0.05 }, + }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-2.5-flash-preview-tts": { + id: "gemini-2.5-flash-preview-tts", + name: "Gemini 2.5 Flash Preview TTS", + family: "gemini-flash", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2025-01", + release_date: "2025-05-01", + last_updated: "2025-05-01", + modalities: { input: ["text"], output: ["audio"] }, + open_weights: false, + cost: { input: 0.5, output: 10 }, + limit: { context: 8000, output: 16000 }, + }, + "gemini-3-pro-preview": { + id: "gemini-3-pro-preview", + name: "Gemini 3 Pro Preview", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-11-18", + last_updated: "2025-11-18", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 2, output: 12, cache_read: 0.2, context_over_200k: { input: 4, output: 18, cache_read: 0.4 } }, + limit: { context: 1000000, output: 64000 }, + }, + "gemini-2.5-flash-preview-05-20": { + id: "gemini-2.5-flash-preview-05-20", + name: "Gemini 2.5 Flash Preview 05-20", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-05-20", + last_updated: "2025-05-20", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6, cache_read: 0.0375 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-embedding-001": { + id: "gemini-embedding-001", + name: "Gemini Embedding 001", + family: "gemini", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2025-05", + release_date: "2025-05-20", + last_updated: "2025-05-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0 }, + limit: { context: 2048, output: 3072 }, + }, + "gemini-2.5-pro": { + id: "gemini-2.5-pro", + name: "Gemini 2.5 Pro", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-03-20", + last_updated: "2025-06-05", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.31 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-flash-latest": { + id: "gemini-flash-latest", + name: "Gemini Flash Latest", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5, cache_read: 0.075, input_audio: 1 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemma-4-31b-it": { + id: "gemma-4-31b-it", + name: "Gemma 4 31B", + family: "gemma", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-04-02", + last_updated: "2026-04-02", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + limit: { context: 256000, output: 8192 }, + }, + "gemini-2.5-pro-preview-06-05": { + id: "gemini-2.5-pro-preview-06-05", + name: "Gemini 2.5 Pro Preview 06-05", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-06-05", + last_updated: "2025-06-05", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1.25, output: 10, cache_read: 0.31 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-2.5-flash-image": { + id: "gemini-2.5-flash-image", + name: "Gemini 2.5 Flash Image", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2025-06", + release_date: "2025-08-26", + last_updated: "2025-08-26", + modalities: { input: ["text", "image"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 0.3, output: 30, cache_read: 0.075 }, + limit: { context: 32768, output: 32768 }, + }, + "gemini-2.5-flash-lite-preview-06-17": { + id: "gemini-2.5-flash-lite-preview-06-17", + name: "Gemini 2.5 Flash Lite Preview 06-17", + family: "gemini-flash-lite", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.025, input_audio: 0.3 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemma-3-12b-it": { + id: "gemma-3-12b-it", + name: "Gemma 3 12B", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: false, + structured_output: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-03-13", + last_updated: "2025-03-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 32768, output: 8192 }, + }, + "gemini-2.5-flash": { + id: "gemini-2.5-flash", + name: "Gemini 2.5 Flash", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-03-20", + last_updated: "2025-06-05", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5, cache_read: 0.075, input_audio: 1 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemma-3n-e2b-it": { + id: "gemma-3n-e2b-it", + name: "Gemma 3n 2B", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-10", + release_date: "2025-07-09", + last_updated: "2025-07-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 8192, output: 2000 }, + }, + "gemini-3.1-flash-image-preview": { + id: "gemini-3.1-flash-image-preview", + name: "Gemini 3.1 Flash Image (Preview)", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2025-01", + release_date: "2026-02-26", + last_updated: "2026-02-26", + modalities: { input: ["text", "image", "pdf"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 0.25, output: 60 }, + limit: { context: 131072, output: 32768 }, + }, + "gemma-3-4b-it": { + id: "gemma-3-4b-it", + name: "Gemma 3 4B", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + knowledge: "2024-10", + release_date: "2025-03-13", + last_updated: "2025-03-13", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 32768, output: 8192 }, + }, + "gemini-2.5-flash-preview-04-17": { + id: "gemini-2.5-flash-preview-04-17", + name: "Gemini 2.5 Flash Preview 04-17", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-04-17", + last_updated: "2025-04-17", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.15, output: 0.6, cache_read: 0.0375 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemini-2.5-pro-preview-tts": { + id: "gemini-2.5-pro-preview-tts", + name: "Gemini 2.5 Pro Preview TTS", + family: "gemini-flash", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2025-01", + release_date: "2025-05-01", + last_updated: "2025-05-01", + modalities: { input: ["text"], output: ["audio"] }, + open_weights: false, + cost: { input: 1, output: 20 }, + limit: { context: 8000, output: 16000 }, + }, + "gemini-2.5-flash-preview-09-2025": { + id: "gemini-2.5-flash-preview-09-2025", + name: "Gemini 2.5 Flash Preview 09-25", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-09-25", + last_updated: "2025-09-25", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.3, output: 2.5, cache_read: 0.075, input_audio: 1 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemma-3-27b-it": { + id: "gemma-3-27b-it", + name: "Gemma 3 27B", + family: "gemma", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-03-12", + last_updated: "2025-03-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 8192 }, + }, + "gemini-2.5-flash-lite": { + id: "gemini-2.5-flash-lite", + name: "Gemini 2.5 Flash Lite", + family: "gemini-flash-lite", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-06-17", + last_updated: "2025-06-17", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.1, output: 0.4, cache_read: 0.025 }, + limit: { context: 1048576, output: 65536 }, + }, + "gemma-4-26b-it": { + id: "gemma-4-26b-it", + name: "Gemma 4 26B", + family: "gemma", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2026-04-02", + last_updated: "2026-04-02", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + limit: { context: 256000, output: 8192 }, + }, + "gemini-2.5-flash-image-preview": { + id: "gemini-2.5-flash-image-preview", + name: "Gemini 2.5 Flash Image (Preview)", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2025-06", + release_date: "2025-08-26", + last_updated: "2025-08-26", + modalities: { input: ["text", "image"], output: ["text", "image"] }, + open_weights: false, + cost: { input: 0.3, output: 30, cache_read: 0.075 }, + limit: { context: 32768, output: 32768 }, + }, + "gemini-1.5-flash-8b": { + id: "gemini-1.5-flash-8b", + name: "Gemini 1.5 Flash-8B", + family: "gemini-flash", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2024-10-03", + last_updated: "2024-10-03", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.0375, output: 0.15, cache_read: 0.01 }, + limit: { context: 1000000, output: 8192 }, + }, + "gemini-live-2.5-flash": { + id: "gemini-live-2.5-flash", + name: "Gemini Live 2.5 Flash", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-09-01", + last_updated: "2025-09-01", + modalities: { input: ["text", "image", "audio", "video"], output: ["text", "audio"] }, + open_weights: false, + cost: { input: 0.5, output: 2, input_audio: 3, output_audio: 12 }, + limit: { context: 128000, output: 8000 }, + }, + "gemini-2.0-flash-lite": { + id: "gemini-2.0-flash-lite", + name: "Gemini 2.0 Flash Lite", + family: "gemini-flash-lite", + attachment: true, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2024-06", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.075, output: 0.3 }, + limit: { context: 1048576, output: 8192 }, + }, + }, + }, + drun: { + id: "drun", + env: ["DRUN_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://chat.d.run/v1", + name: "D.Run (China)", + doc: "https://www.d.run", + models: { + "public/deepseek-r1": { + id: "public/deepseek-r1", + name: "DeepSeek R1", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-12", + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.55, output: 2.2 }, + limit: { context: 131072, output: 32000 }, + }, + "public/minimax-m25": { + id: "public/minimax-m25", + name: "MiniMax M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_details" }, + temperature: true, + release_date: "2025-03-01", + last_updated: "2025-03-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0.29, output: 1.16 }, + limit: { context: 204800, output: 131072 }, + }, + "public/deepseek-v3": { + id: "public/deepseek-v3", + name: "DeepSeek V3", + family: "deepseek", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2024-12-26", + last_updated: "2024-12-26", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.28, output: 1.1 }, + limit: { context: 131072, output: 8192 }, + }, + }, + }, + moonshotai: { + id: "moonshotai", + env: ["MOONSHOT_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.moonshot.ai/v1", + name: "Moonshot AI", + doc: "https://platform.moonshot.ai/docs/api/chat", + models: { + "kimi-k2-0905-preview": { + id: "kimi-k2-0905-preview", + name: "Kimi K2 0905", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, + limit: { context: 262144, output: 262144 }, + }, + "kimi-k2.5": { + id: "kimi-k2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: false, + knowledge: "2025-01", + release_date: "2026-01", + last_updated: "2026-01", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3, cache_read: 0.1 }, + limit: { context: 262144, output: 262144 }, + }, + "kimi-k2-thinking-turbo": { + id: "kimi-k2-thinking-turbo", + name: "Kimi K2 Thinking Turbo", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-08", + release_date: "2025-11-06", + last_updated: "2025-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.15, output: 8, cache_read: 0.15 }, + limit: { context: 262144, output: 262144 }, + }, + "kimi-k2-turbo-preview": { + id: "kimi-k2-turbo-preview", + name: "Kimi K2 Turbo", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-09-05", + last_updated: "2025-09-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2.4, output: 10, cache_read: 0.6 }, + limit: { context: 262144, output: 262144 }, + }, + "kimi-k2-0711-preview": { + id: "kimi-k2-0711-preview", + name: "Kimi K2 0711", + family: "kimi", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-07-14", + last_updated: "2025-07-14", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, + limit: { context: 131072, output: 16384 }, + }, + "kimi-k2-thinking": { + id: "kimi-k2-thinking", + name: "Kimi K2 Thinking", + family: "kimi-thinking", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-08", + release_date: "2025-11-06", + last_updated: "2025-11-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.5, cache_read: 0.15 }, + limit: { context: 262144, output: 262144 }, + }, + }, + }, + berget: { + id: "berget", + env: ["BERGET_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.berget.ai/v1", + name: "Berget.AI", + doc: "https://api.berget.ai", + models: { + "zai-org/GLM-4.7": { + id: "zai-org/GLM-4.7", + name: "GLM 4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-12", + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.7, output: 2.3 }, + limit: { context: 128000, output: 8192 }, + }, + "BAAI/bge-reranker-v2-m3": { + id: "BAAI/bge-reranker-v2-m3", + name: "bge-reranker-v2-m3", + family: "bge", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2025-04", + release_date: "2025-04-23", + last_updated: "2025-04-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.1 }, + limit: { context: 512, output: 512 }, + }, + "mistralai/Mistral-Small-3.2-24B-Instruct-2506": { + id: "mistralai/Mistral-Small-3.2-24B-Instruct-2506", + name: "Mistral Small 3.2 24B Instruct 2506", + family: "mistral-small", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-09", + release_date: "2025-10-01", + last_updated: "2025-10-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.3 }, + limit: { context: 32000, output: 8192 }, + }, + "meta-llama/Llama-3.3-70B-Instruct": { + id: "meta-llama/Llama-3.3-70B-Instruct", + name: "Llama 3.3 70B Instruct", + family: "llama", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2023-12", + release_date: "2025-04-27", + last_updated: "2025-04-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.9, output: 0.9 }, + limit: { context: 128000, output: 8192 }, + }, + "KBLab/kb-whisper-large": { + id: "KBLab/kb-whisper-large", + name: "KB-Whisper-Large", + family: "whisper", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2025-04", + release_date: "2025-04-27", + last_updated: "2025-04-27", + modalities: { input: ["audio"], output: ["text"] }, + open_weights: true, + cost: { input: 3, output: 3 }, + limit: { context: 480000, output: 4800 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "GPT-OSS-120B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-08", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.9 }, + limit: { context: 128000, output: 8192 }, + }, + "intfloat/multilingual-e5-large-instruct": { + id: "intfloat/multilingual-e5-large-instruct", + name: "Multilingual-E5-large-instruct", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2025-04", + release_date: "2025-04-27", + last_updated: "2025-04-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0 }, + limit: { context: 512, output: 1024 }, + }, + "intfloat/multilingual-e5-large": { + id: "intfloat/multilingual-e5-large", + name: "Multilingual-E5-large", + family: "text-embedding", + attachment: false, + reasoning: false, + tool_call: false, + temperature: false, + knowledge: "2025-09", + release_date: "2025-09-11", + last_updated: "2025-09-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.02, output: 0 }, + limit: { context: 512, output: 1024 }, + }, + }, + }, + "github-models": { + id: "github-models", + env: ["GITHUB_TOKEN"], + npm: "@ai-sdk/openai-compatible", + api: "https://models.github.ai/inference", + name: "GitHub Models", + doc: "https://docs.github.com/en/github-models", + models: { + "deepseek/deepseek-v3-0324": { + id: "deepseek/deepseek-v3-0324", + name: "DeepSeek-V3-0324", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-06", + release_date: "2025-03-24", + last_updated: "2025-03-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 8192 }, + }, + "deepseek/deepseek-r1": { + id: "deepseek/deepseek-r1", + name: "DeepSeek-R1", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-06", + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 65536, output: 8192 }, + }, + "deepseek/deepseek-r1-0528": { + id: "deepseek/deepseek-r1-0528", + name: "DeepSeek-R1-0528", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-06", + release_date: "2025-05-28", + last_updated: "2025-05-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 65536, output: 8192 }, + }, + "ai21-labs/ai21-jamba-1.5-mini": { + id: "ai21-labs/ai21-jamba-1.5-mini", + name: "AI21 Jamba 1.5 Mini", + family: "jamba", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-03", + release_date: "2024-08-29", + last_updated: "2024-08-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 4096 }, + }, + "ai21-labs/ai21-jamba-1.5-large": { + id: "ai21-labs/ai21-jamba-1.5-large", + name: "AI21 Jamba 1.5 Large", + family: "jamba", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-03", + release_date: "2024-08-29", + last_updated: "2024-08-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 256000, output: 4096 }, + }, + "microsoft/phi-3.5-mini-instruct": { + id: "microsoft/phi-3.5-mini-instruct", + name: "Phi-3.5-mini instruct (128k)", + family: "phi", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-08-20", + last_updated: "2024-08-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "microsoft/phi-3-medium-4k-instruct": { + id: "microsoft/phi-3-medium-4k-instruct", + name: "Phi-3-medium instruct (4k)", + family: "phi", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-04-23", + last_updated: "2024-04-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 4096, output: 1024 }, + }, + "microsoft/phi-3.5-moe-instruct": { + id: "microsoft/phi-3.5-moe-instruct", + name: "Phi-3.5-MoE instruct (128k)", + family: "phi", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-08-20", + last_updated: "2024-08-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "microsoft/phi-3-mini-128k-instruct": { + id: "microsoft/phi-3-mini-128k-instruct", + name: "Phi-3-mini instruct (128k)", + family: "phi", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-04-23", + last_updated: "2024-04-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "microsoft/phi-4-mini-instruct": { + id: "microsoft/phi-4-mini-instruct", + name: "Phi-4-mini-instruct", + family: "phi", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "microsoft/phi-4-reasoning": { + id: "microsoft/phi-4-reasoning", + name: "Phi-4-Reasoning", + family: "phi", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "microsoft/phi-3-small-8k-instruct": { + id: "microsoft/phi-3-small-8k-instruct", + name: "Phi-3-small instruct (8k)", + family: "phi", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-04-23", + last_updated: "2024-04-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 8192, output: 2048 }, + }, + "microsoft/phi-3.5-vision-instruct": { + id: "microsoft/phi-3.5-vision-instruct", + name: "Phi-3.5-vision instruct (128k)", + family: "phi", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-08-20", + last_updated: "2024-08-20", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "microsoft/phi-3-mini-4k-instruct": { + id: "microsoft/phi-3-mini-4k-instruct", + name: "Phi-3-mini instruct (4k)", + family: "phi", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-04-23", + last_updated: "2024-04-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 4096, output: 1024 }, + }, + "microsoft/phi-4-mini-reasoning": { + id: "microsoft/phi-4-mini-reasoning", + name: "Phi-4-mini-reasoning", + family: "phi", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "microsoft/phi-3-small-128k-instruct": { + id: "microsoft/phi-3-small-128k-instruct", + name: "Phi-3-small instruct (128k)", + family: "phi", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-04-23", + last_updated: "2024-04-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "microsoft/phi-3-medium-128k-instruct": { + id: "microsoft/phi-3-medium-128k-instruct", + name: "Phi-3-medium instruct (128k)", + family: "phi", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-04-23", + last_updated: "2024-04-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "microsoft/phi-4": { + id: "microsoft/phi-4", + name: "Phi-4", + family: "phi", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 16000, output: 4096 }, + }, + "microsoft/phi-4-multimodal-instruct": { + id: "microsoft/phi-4-multimodal-instruct", + name: "Phi-4-multimodal-instruct", + family: "phi", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-12-11", + last_updated: "2024-12-11", + modalities: { input: ["text", "image", "audio"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "microsoft/mai-ds-r1": { + id: "microsoft/mai-ds-r1", + name: "MAI-DS-R1", + family: "mai", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-06", + release_date: "2025-01-20", + last_updated: "2025-01-20", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 65536, output: 8192 }, + }, + "cohere/cohere-command-r-08-2024": { + id: "cohere/cohere-command-r-08-2024", + name: "Cohere Command R 08-2024", + family: "command-r", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-03", + release_date: "2024-08-01", + last_updated: "2024-08-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "cohere/cohere-command-a": { + id: "cohere/cohere-command-a", + name: "Cohere Command A", + family: "command-a", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-03", + release_date: "2024-11-01", + last_updated: "2024-11-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "cohere/cohere-command-r-plus": { + id: "cohere/cohere-command-r-plus", + name: "Cohere Command R+", + family: "command-r", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-03", + release_date: "2024-04-04", + last_updated: "2024-08-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "cohere/cohere-command-r": { + id: "cohere/cohere-command-r", + name: "Cohere Command R", + family: "command-r", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-03", + release_date: "2024-03-11", + last_updated: "2024-08-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "cohere/cohere-command-r-plus-08-2024": { + id: "cohere/cohere-command-r-plus-08-2024", + name: "Cohere Command R+ 08-2024", + family: "command-r", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-03", + release_date: "2024-08-01", + last_updated: "2024-08-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 4096 }, + }, + "xai/grok-3-mini": { + id: "xai/grok-3-mini", + name: "Grok 3 Mini", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12-09", + last_updated: "2024-12-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 8192 }, + }, + "xai/grok-3": { + id: "xai/grok-3", + name: "Grok 3", + family: "grok", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2024-12-09", + last_updated: "2024-12-09", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 8192 }, + }, + "openai/o1-mini": { + id: "openai/o1-mini", + name: "OpenAI o1-mini", + family: "o-mini", + attachment: false, + reasoning: true, + tool_call: false, + temperature: false, + knowledge: "2023-10", + release_date: "2024-09-12", + last_updated: "2024-12-17", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 65536 }, + }, + "openai/gpt-4o-mini": { + id: "openai/gpt-4o-mini", + name: "GPT-4o mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text", "image", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/o4-mini": { + id: "openai/o4-mini", + name: "OpenAI o4-mini", + family: "o-mini", + attachment: false, + reasoning: true, + tool_call: false, + temperature: false, + knowledge: "2024-04", + release_date: "2025-01-31", + last_updated: "2025-01-31", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/o1-preview": { + id: "openai/o1-preview", + name: "OpenAI o1-preview", + family: "o", + attachment: false, + reasoning: true, + tool_call: false, + temperature: false, + knowledge: "2023-10", + release_date: "2024-09-12", + last_updated: "2024-09-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 32768 }, + }, + "openai/o1": { + id: "openai/o1", + name: "OpenAI o1", + family: "o", + attachment: false, + reasoning: true, + tool_call: false, + temperature: false, + knowledge: "2023-10", + release_date: "2024-09-12", + last_updated: "2024-12-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/o3-mini": { + id: "openai/o3-mini", + name: "OpenAI o3-mini", + family: "o-mini", + attachment: false, + reasoning: true, + tool_call: false, + temperature: false, + knowledge: "2024-04", + release_date: "2025-01-31", + last_updated: "2025-01-31", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-4.1-nano": { + id: "openai/gpt-4.1-nano", + name: "GPT-4.1-nano", + family: "gpt-nano", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/o3": { + id: "openai/o3", + name: "OpenAI o3", + family: "o", + attachment: false, + reasoning: true, + tool_call: false, + temperature: false, + knowledge: "2024-04", + release_date: "2025-01-31", + last_updated: "2025-01-31", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 200000, output: 100000 }, + }, + "openai/gpt-4o": { + id: "openai/gpt-4o", + name: "GPT-4o", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-10", + release_date: "2024-05-13", + last_updated: "2024-05-13", + modalities: { input: ["text", "image", "audio"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-4.1": { + id: "openai/gpt-4.1", + name: "GPT-4.1", + family: "gpt", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "openai/gpt-4.1-mini": { + id: "openai/gpt-4.1-mini", + name: "GPT-4.1-mini", + family: "gpt-mini", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04", + release_date: "2025-04-14", + last_updated: "2025-04-14", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 16384 }, + }, + "meta/llama-4-scout-17b-16e-instruct": { + id: "meta/llama-4-scout-17b-16e-instruct", + name: "Llama 4 Scout 17B 16E Instruct", + family: "llama", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-01-31", + last_updated: "2025-01-31", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 8192 }, + }, + "meta/meta-llama-3.1-8b-instruct": { + id: "meta/meta-llama-3.1-8b-instruct", + name: "Meta-Llama-3.1-8B-Instruct", + family: "llama", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 32768 }, + }, + "meta/llama-3.3-70b-instruct": { + id: "meta/llama-3.3-70b-instruct", + name: "Llama-3.3-70B-Instruct", + family: "llama", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 32768 }, + }, + "meta/meta-llama-3-70b-instruct": { + id: "meta/meta-llama-3-70b-instruct", + name: "Meta-Llama-3-70B-Instruct", + family: "llama", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-04-18", + last_updated: "2024-04-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 8192, output: 2048 }, + }, + "meta/llama-3.2-90b-vision-instruct": { + id: "meta/llama-3.2-90b-vision-instruct", + name: "Llama-3.2-90B-Vision-Instruct", + family: "llama", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-09-25", + last_updated: "2024-09-25", + modalities: { input: ["text", "image", "audio"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 8192 }, + }, + "meta/llama-3.2-11b-vision-instruct": { + id: "meta/llama-3.2-11b-vision-instruct", + name: "Llama-3.2-11B-Vision-Instruct", + family: "llama", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-09-25", + last_updated: "2024-09-25", + modalities: { input: ["text", "image", "audio"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 8192 }, + }, + "meta/meta-llama-3.1-405b-instruct": { + id: "meta/meta-llama-3.1-405b-instruct", + name: "Meta-Llama-3.1-405B-Instruct", + family: "llama", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 32768 }, + }, + "meta/meta-llama-3.1-70b-instruct": { + id: "meta/meta-llama-3.1-70b-instruct", + name: "Meta-Llama-3.1-70B-Instruct", + family: "llama", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-07-23", + last_updated: "2024-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 32768 }, + }, + "meta/meta-llama-3-8b-instruct": { + id: "meta/meta-llama-3-8b-instruct", + name: "Meta-Llama-3-8B-Instruct", + family: "llama", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-04-18", + last_updated: "2024-04-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 8192, output: 2048 }, + }, + "meta/llama-4-maverick-17b-128e-instruct-fp8": { + id: "meta/llama-4-maverick-17b-128e-instruct-fp8", + name: "Llama 4 Maverick 17B 128E Instruct FP8", + family: "llama", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-12", + release_date: "2025-01-31", + last_updated: "2025-01-31", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 8192 }, + }, + "core42/jais-30b-chat": { + id: "core42/jais-30b-chat", + name: "JAIS 30b Chat", + family: "jais", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2023-03", + release_date: "2023-08-30", + last_updated: "2023-08-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 8192, output: 2048 }, + }, + "mistral-ai/mistral-nemo": { + id: "mistral-ai/mistral-nemo", + name: "Mistral Nemo", + family: "mistral-nemo", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-03", + release_date: "2024-07-18", + last_updated: "2024-07-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 8192 }, + }, + "mistral-ai/ministral-3b": { + id: "mistral-ai/ministral-3b", + name: "Ministral 3B", + family: "ministral", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-03", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 8192 }, + }, + "mistral-ai/mistral-large-2411": { + id: "mistral-ai/mistral-large-2411", + name: "Mistral Large 24.11", + family: "mistral-large", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-09", + release_date: "2024-11-01", + last_updated: "2024-11-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 32768 }, + }, + "mistral-ai/mistral-small-2503": { + id: "mistral-ai/mistral-small-2503", + name: "Mistral Small 3.1", + family: "mistral-small", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-09", + release_date: "2025-03-01", + last_updated: "2025-03-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 32768 }, + }, + "mistral-ai/mistral-medium-2505": { + id: "mistral-ai/mistral-medium-2505", + name: "Mistral Medium 3 (25.05)", + family: "mistral-medium", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-09", + release_date: "2025-05-01", + last_updated: "2025-05-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 128000, output: 32768 }, + }, + "mistral-ai/codestral-2501": { + id: "mistral-ai/codestral-2501", + name: "Codestral 25.01", + family: "codestral", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-03", + release_date: "2025-01-01", + last_updated: "2025-01-01", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 32000, output: 8192 }, + }, + }, + }, + togetherai: { + id: "togetherai", + env: ["TOGETHER_API_KEY"], + npm: "@ai-sdk/togetherai", + name: "Together AI", + doc: "https://docs.together.ai/docs/serverless-models", + models: { + "essentialai/Rnj-1-Instruct": { + id: "essentialai/Rnj-1-Instruct", + name: "Rnj-1 Instruct", + family: "rnj", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-12-05", + last_updated: "2025-12-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.15 }, + limit: { context: 32768, output: 32768 }, + }, + "Qwen/Qwen3.5-397B-A17B": { + id: "Qwen/Qwen3.5-397B-A17B", + name: "Qwen3.5 397B A17B", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-16", + last_updated: "2026-02-16", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 3.6 }, + limit: { context: 262144, output: 130000 }, + }, + "Qwen/Qwen3-Coder-Next-FP8": { + id: "Qwen/Qwen3-Coder-Next-FP8", + name: "Qwen3 Coder Next FP8", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2026-02-03", + release_date: "2026-02-03", + last_updated: "2026-02-03", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 1.2 }, + limit: { context: 262144, output: 262144 }, + }, + "Qwen/Qwen3-235B-A22B-Instruct-2507-tput": { + id: "Qwen/Qwen3-235B-A22B-Instruct-2507-tput", + name: "Qwen3 235B A22B Instruct 2507 FP8", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-07-25", + last_updated: "2025-07-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.6 }, + limit: { context: 262144, output: 262144 }, + }, + "Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8": { + id: "Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8", + name: "Qwen3 Coder 480B A35B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-23", + last_updated: "2025-07-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 2, output: 2 }, + limit: { context: 262144, output: 262144 }, + }, + "zai-org/GLM-5.1": { + id: "zai-org/GLM-5.1", + name: "GLM-5.1", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-11", + release_date: "2026-04-07", + last_updated: "2026-04-07", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.4, output: 4.4 }, + limit: { context: 202752, output: 131072 }, + }, + "meta-llama/Llama-3.3-70B-Instruct-Turbo": { + id: "meta-llama/Llama-3.3-70B-Instruct-Turbo", + name: "Llama 3.3 70B", + family: "llama", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-12", + release_date: "2024-12-06", + last_updated: "2024-12-06", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.88, output: 0.88 }, + limit: { context: 131072, output: 131072 }, + }, + "deepseek-ai/DeepSeek-V3": { + id: "deepseek-ai/DeepSeek-V3", + name: "DeepSeek V3", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-07", + release_date: "2025-01-20", + last_updated: "2025-05-29", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1.25, output: 1.25 }, + limit: { context: 131072, output: 131072 }, + }, + "deepseek-ai/DeepSeek-R1": { + id: "deepseek-ai/DeepSeek-R1", + name: "DeepSeek R1", + family: "deepseek-thinking", + attachment: false, + reasoning: true, + tool_call: false, + temperature: true, + knowledge: "2024-07", + release_date: "2024-12-26", + last_updated: "2025-03-24", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 3, output: 7 }, + limit: { context: 163839, output: 163839 }, + }, + "deepseek-ai/DeepSeek-V3-1": { + id: "deepseek-ai/DeepSeek-V3-1", + name: "DeepSeek V3.1", + family: "deepseek", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2025-08-21", + last_updated: "2025-08-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 1.7 }, + limit: { context: 131072, output: 131072 }, + }, + "openai/gpt-oss-120b": { + id: "openai/gpt-oss-120b", + name: "GPT OSS 120B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.15, output: 0.6 }, + limit: { context: 131072, output: 131072 }, + }, + "google/gemma-4-31B-it": { + id: "google/gemma-4-31B-it", + name: "Gemma 4 31B Instruct", + family: "gemma", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-01", + release_date: "2026-04-07", + last_updated: "2026-04-07", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.5 }, + limit: { context: 262144, output: 131072 }, + }, + "moonshotai/Kimi-K2.5": { + id: "moonshotai/Kimi-K2.5", + name: "Kimi K2.5", + family: "kimi", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: true, + temperature: true, + knowledge: "2026-01", + release_date: "2026-01-27", + last_updated: "2026-01-27", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.5, output: 2.8 }, + limit: { context: 262144, output: 262144 }, + }, + "MiniMaxAI/MiniMax-M2.5": { + id: "MiniMaxAI/MiniMax-M2.5", + name: "MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.06 }, + limit: { context: 204800, output: 131072 }, + }, + }, + }, + "qihang-ai": { + id: "qihang-ai", + env: ["QIHANG_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.qhaigc.net/v1", + name: "QiHang", + doc: "https://www.qhaigc.net/docs", + models: { + "claude-opus-4-5-20251101": { + id: "claude-opus-4-5-20251101", + name: "Claude Opus 4.5", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03", + release_date: "2025-11-01", + last_updated: "2025-11-01", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.71, output: 3.57 }, + limit: { context: 200000, output: 32000 }, + }, + "gemini-3-flash-preview": { + id: "gemini-3-flash-preview", + name: "Gemini 3 Flash Preview", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.07, output: 0.43, context_over_200k: { input: 0.07, output: 0.43 } }, + limit: { context: 1048576, output: 65536 }, + }, + "gpt-5-mini": { + id: "gpt-5-mini", + name: "GPT-5-Mini", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-09-30", + release_date: "2025-09-15", + last_updated: "2025-09-15", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.04, output: 0.29 }, + limit: { context: 200000, output: 64000 }, + }, + "gemini-3-pro-preview": { + id: "gemini-3-pro-preview", + name: "Gemini 3 Pro Preview", + family: "gemini-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-11", + release_date: "2025-11-19", + last_updated: "2025-11-19", + modalities: { input: ["text", "image", "audio", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.57, output: 3.43 }, + limit: { context: 1000000, output: 65000 }, + }, + "claude-sonnet-4-5-20250929": { + id: "claude-sonnet-4-5-20250929", + name: "Claude Sonnet 4.5", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.43, output: 2.14 }, + limit: { context: 200000, output: 64000 }, + }, + "gpt-5.2": { + id: "gpt-5.2", + name: "GPT-5.2", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 2 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gpt-5.2-codex": { + id: "gpt-5.2-codex", + name: "GPT-5.2 Codex", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2025-12-11", + last_updated: "2025-12-11", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 1.14 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "gemini-2.5-flash": { + id: "gemini-2.5-flash", + name: "Gemini 2.5 Flash", + family: "gemini-flash", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + knowledge: "2025-01", + release_date: "2025-12-17", + last_updated: "2025-12-17", + modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.09, output: 0.71, context_over_200k: { input: 0.09, output: 0.71 } }, + limit: { context: 1048576, output: 65536 }, + }, + "claude-haiku-4-5-20251001": { + id: "claude-haiku-4-5-20251001", + name: "Claude Haiku 4.5", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-10-01", + last_updated: "2025-10-01", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.14, output: 0.71 }, + limit: { context: 200000, output: 64000 }, + }, + }, + }, + anthropic: { + id: "anthropic", + env: ["ANTHROPIC_API_KEY"], + npm: "@ai-sdk/anthropic", + name: "Anthropic", + doc: "https://docs.anthropic.com/en/docs/about-claude/models", + models: { + "claude-3-sonnet-20240229": { + id: "claude-3-sonnet-20240229", + name: "Claude Sonnet 3", + family: "claude-sonnet", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-08-31", + release_date: "2024-03-04", + last_updated: "2024-03-04", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 0.3 }, + limit: { context: 200000, output: 4096 }, + }, + "claude-haiku-4-5": { + id: "claude-haiku-4-5", + name: "Claude Haiku 4.5 (latest)", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-02-28", + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 200000, output: 64000 }, + }, + "claude-opus-4-5-20251101": { + id: "claude-opus-4-5-20251101", + name: "Claude Opus 4.5", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-01", + last_updated: "2025-11-01", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 64000 }, + }, + "claude-3-opus-20240229": { + id: "claude-3-opus-20240229", + name: "Claude Opus 3", + family: "claude-opus", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-08-31", + release_date: "2024-02-29", + last_updated: "2024-02-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 4096 }, + }, + "claude-3-5-haiku-20241022": { + id: "claude-3-5-haiku-20241022", + name: "Claude Haiku 3.5", + family: "claude-haiku", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07-31", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, + limit: { context: 200000, output: 8192 }, + }, + "claude-3-5-sonnet-20241022": { + id: "claude-3-5-sonnet-20241022", + name: "Claude Sonnet 3.5 v2", + family: "claude-sonnet", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04-30", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 8192 }, + }, + "claude-sonnet-4-6": { + id: "claude-sonnet-4-6", + name: "Claude Sonnet 4.6", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08", + release_date: "2026-02-17", + last_updated: "2026-03-13", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 1000000, output: 64000 }, + }, + "claude-opus-4-0": { + id: "claude-opus-4-0", + name: "Claude Opus 4 (latest)", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "claude-3-haiku-20240307": { + id: "claude-3-haiku-20240307", + name: "Claude Haiku 3", + family: "claude-haiku", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2023-08-31", + release_date: "2024-03-13", + last_updated: "2024-03-13", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.25, output: 1.25, cache_read: 0.03, cache_write: 0.3 }, + limit: { context: 200000, output: 4096 }, + }, + "claude-sonnet-4-5-20250929": { + id: "claude-sonnet-4-5-20250929", + name: "Claude Sonnet 4.5", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "claude-3-5-haiku-latest": { + id: "claude-3-5-haiku-latest", + name: "Claude Haiku 3.5 (latest)", + family: "claude-haiku", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-07-31", + release_date: "2024-10-22", + last_updated: "2024-10-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 }, + limit: { context: 200000, output: 8192 }, + }, + "claude-opus-4-1": { + id: "claude-opus-4-1", + name: "Claude Opus 4.1 (latest)", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "claude-sonnet-4-0": { + id: "claude-sonnet-4-0", + name: "Claude Sonnet 4 (latest)", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "claude-3-5-sonnet-20240620": { + id: "claude-3-5-sonnet-20240620", + name: "Claude Sonnet 3.5", + family: "claude-sonnet", + attachment: true, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2024-04-30", + release_date: "2024-06-20", + last_updated: "2024-06-20", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 8192 }, + }, + "claude-opus-4-5": { + id: "claude-opus-4-5", + name: "Claude Opus 4.5 (latest)", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-11-24", + last_updated: "2025-11-24", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 200000, output: 64000 }, + }, + "claude-opus-4-1-20250805": { + id: "claude-opus-4-1-20250805", + name: "Claude Opus 4.1", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-08-05", + last_updated: "2025-08-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + "claude-haiku-4-5-20251001": { + id: "claude-haiku-4-5-20251001", + name: "Claude Haiku 4.5", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-02-28", + release_date: "2025-10-15", + last_updated: "2025-10-15", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 1, output: 5, cache_read: 0.1, cache_write: 1.25 }, + limit: { context: 200000, output: 64000 }, + }, + "claude-sonnet-4-20250514": { + id: "claude-sonnet-4-20250514", + name: "Claude Sonnet 4", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "claude-opus-4-6": { + id: "claude-opus-4-6", + name: "Claude Opus 4.6", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-05", + release_date: "2026-02-05", + last_updated: "2026-03-13", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 25, cache_read: 0.5, cache_write: 6.25 }, + limit: { context: 1000000, output: 128000 }, + experimental: { + modes: { + fast: { + cost: { input: 30, output: 150, cache_read: 3, cache_write: 37.5 }, + provider: { body: { speed: "fast" }, headers: { "anthropic-beta": "fast-mode-2026-02-01" } }, + }, + }, + }, + }, + "claude-3-7-sonnet-20250219": { + id: "claude-3-7-sonnet-20250219", + name: "Claude Sonnet 3.7", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10-31", + release_date: "2025-02-19", + last_updated: "2025-02-19", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "claude-sonnet-4-5": { + id: "claude-sonnet-4-5", + name: "Claude Sonnet 4.5 (latest)", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2025-09-29", + last_updated: "2025-09-29", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 }, + limit: { context: 200000, output: 64000 }, + }, + "claude-opus-4-20250514": { + id: "claude-opus-4-20250514", + name: "Claude Opus 4", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2025-05-22", + last_updated: "2025-05-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 15, output: 75, cache_read: 1.5, cache_write: 18.75 }, + limit: { context: 200000, output: 32000 }, + }, + }, + }, + modelscope: { + id: "modelscope", + env: ["MODELSCOPE_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api-inference.modelscope.cn/v1", + name: "ModelScope", + doc: "https://modelscope.cn/docs/model-service/API-Inference/intro", + models: { + "Qwen/Qwen3-30B-A3B-Thinking-2507": { + id: "Qwen/Qwen3-30B-A3B-Thinking-2507", + name: "Qwen3 30B A3B Thinking 2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-30", + last_updated: "2025-07-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 32768 }, + }, + "Qwen/Qwen3-30B-A3B-Instruct-2507": { + id: "Qwen/Qwen3-30B-A3B-Instruct-2507", + name: "Qwen3 30B A3B Instruct 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-30", + last_updated: "2025-07-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 16384 }, + }, + "Qwen/Qwen3-235B-A22B-Instruct-2507": { + id: "Qwen/Qwen3-235B-A22B-Instruct-2507", + name: "Qwen3 235B A22B Instruct 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-04-28", + last_updated: "2025-07-21", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 131072 }, + }, + "Qwen/Qwen3-Coder-30B-A3B-Instruct": { + id: "Qwen/Qwen3-Coder-30B-A3B-Instruct", + name: "Qwen3 Coder 30B A3B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-31", + last_updated: "2025-07-31", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 65536 }, + }, + "Qwen/Qwen3-235B-A22B-Thinking-2507": { + id: "Qwen/Qwen3-235B-A22B-Thinking-2507", + name: "Qwen3-235B-A22B-Thinking-2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-25", + last_updated: "2025-07-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 262144, output: 131072 }, + }, + "ZhipuAI/GLM-4.5": { + id: "ZhipuAI/GLM-4.5", + name: "GLM-4.5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 131072, output: 98304 }, + }, + "ZhipuAI/GLM-4.6": { + id: "ZhipuAI/GLM-4.6", + name: "GLM-4.6", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07", + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 202752, output: 98304 }, + }, + }, + }, + gitlab: { + id: "gitlab", + env: ["GITLAB_TOKEN"], + npm: "gitlab-ai-provider", + name: "GitLab Duo", + doc: "https://docs.gitlab.com/user/duo_agent_platform/", + models: { + "duo-chat-gpt-5-4-nano": { + id: "duo-chat-gpt-5-4-nano", + name: "Agentic Chat (GPT-5.4 Nano)", + family: "gpt-nano", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-17", + last_updated: "2026-03-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "duo-chat-gpt-5-mini": { + id: "duo-chat-gpt-5-mini", + name: "Agentic Chat (GPT-5 Mini)", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-05-30", + release_date: "2026-01-22", + last_updated: "2026-01-22", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "duo-chat-sonnet-4-6": { + id: "duo-chat-sonnet-4-6", + name: "Agentic Chat (Claude Sonnet 4.6)", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-08-31", + release_date: "2026-02-17", + last_updated: "2026-02-17", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 1000000, output: 64000 }, + }, + "duo-chat-gpt-5-2": { + id: "duo-chat-gpt-5-2", + name: "Agentic Chat (GPT-5.2)", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-01-23", + last_updated: "2026-01-23", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "duo-chat-gpt-5-codex": { + id: "duo-chat-gpt-5-codex", + name: "Agentic Chat (GPT-5 Codex)", + family: "gpt-codex", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2026-01-22", + last_updated: "2026-01-22", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "duo-chat-gpt-5-1": { + id: "duo-chat-gpt-5-1", + name: "Agentic Chat (GPT-5.1)", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2024-09-30", + release_date: "2026-01-22", + last_updated: "2026-01-22", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "duo-chat-gpt-5-2-codex": { + id: "duo-chat-gpt-5-2-codex", + name: "Agentic Chat (GPT-5.2 Codex)", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-01-22", + last_updated: "2026-01-22", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "duo-chat-sonnet-4-5": { + id: "duo-chat-sonnet-4-5", + name: "Agentic Chat (Claude Sonnet 4.5)", + family: "claude-sonnet", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-07-31", + release_date: "2026-01-08", + last_updated: "2026-01-08", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 200000, output: 64000 }, + }, + "duo-chat-gpt-5-4": { + id: "duo-chat-gpt-5-4", + name: "Agentic Chat (GPT-5.4)", + family: "gpt", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-05", + last_updated: "2026-03-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 1050000, input: 922000, output: 128000 }, + }, + "duo-chat-haiku-4-5": { + id: "duo-chat-haiku-4-5", + name: "Agentic Chat (Claude Haiku 4.5)", + family: "claude-haiku", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-02-28", + release_date: "2026-01-08", + last_updated: "2026-01-08", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 200000, output: 64000 }, + }, + "duo-chat-gpt-5-3-codex": { + id: "duo-chat-gpt-5-3-codex", + name: "Agentic Chat (GPT-5.3 Codex)", + family: "gpt-codex", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "duo-chat-gpt-5-4-mini": { + id: "duo-chat-gpt-5-4-mini", + name: "Agentic Chat (GPT-5.4 Mini)", + family: "gpt-mini", + attachment: true, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: false, + knowledge: "2025-08-31", + release_date: "2026-03-17", + last_updated: "2026-03-17", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0 }, + limit: { context: 400000, input: 272000, output: 128000 }, + }, + "duo-chat-opus-4-5": { + id: "duo-chat-opus-4-5", + name: "Agentic Chat (Claude Opus 4.5)", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2026-01-08", + last_updated: "2026-01-08", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 200000, output: 64000 }, + }, + "duo-chat-opus-4-6": { + id: "duo-chat-opus-4-6", + name: "Agentic Chat (Claude Opus 4.6)", + family: "claude-opus", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-03-31", + release_date: "2026-02-05", + last_updated: "2026-02-05", + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 1000000, output: 64000 }, + }, + }, + }, + xiaomi: { + id: "xiaomi", + env: ["XIAOMI_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.xiaomimimo.com/v1", + name: "Xiaomi", + doc: "https://platform.xiaomimimo.com/#/docs", + models: { + "mimo-v2-omni": { + id: "mimo-v2-omni", + name: "MiMo-V2-Omni", + family: "mimo", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-12", + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: true, + cost: { input: 0.4, output: 2, cache_read: 0.08 }, + limit: { context: 256000, output: 128000 }, + }, + "mimo-v2-pro": { + id: "mimo-v2-pro", + name: "MiMo-V2-Pro", + family: "mimo", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-12", + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3, cache_read: 0.2 }, + limit: { context: 1000000, output: 128000 }, + }, + "mimo-v2-flash": { + id: "mimo-v2-flash", + name: "MiMo-V2-Flash", + family: "mimo", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-12-01", + release_date: "2025-12-16", + last_updated: "2026-02-04", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.1, output: 0.3, cache_read: 0.01 }, + limit: { context: 256000, output: 64000 }, + }, + }, + }, + clarifai: { + id: "clarifai", + env: ["CLARIFAI_PAT"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.clarifai.com/v2/ext/openai/v1", + name: "Clarifai", + doc: "https://docs.clarifai.com/compute/inference/", + models: { + "arcee_ai/AFM/models/trinity-mini": { + id: "arcee_ai/AFM/models/trinity-mini", + name: "Trinity Mini", + family: "trinity-mini", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2024-10", + release_date: "2025-12", + last_updated: "2026-02-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.045, output: 0.15 }, + limit: { context: 131072, output: 131072 }, + }, + "mistralai/completion/models/Ministral-3-14B-Reasoning-2512": { + id: "mistralai/completion/models/Ministral-3-14B-Reasoning-2512", + name: "Ministral 3 14B Reasoning 2512", + family: "ministral", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-12", + release_date: "2025-12-01", + last_updated: "2025-12-12", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 2.5, output: 1.7 }, + limit: { context: 262144, output: 262144 }, + }, + "mistralai/completion/models/Ministral-3-3B-Reasoning-2512": { + id: "mistralai/completion/models/Ministral-3-3B-Reasoning-2512", + name: "Ministral 3 3B Reasoning 2512", + family: "ministral", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12", + last_updated: "2026-02-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 1.039, output: 0.54825 }, + limit: { context: 262144, output: 262144 }, + }, + "deepseek-ai/deepseek-ocr/models/DeepSeek-OCR": { + id: "deepseek-ai/deepseek-ocr/models/DeepSeek-OCR", + name: "DeepSeek OCR", + family: "deepseek", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-10-20", + last_updated: "2026-02-25", + modalities: { input: ["text", "image"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 0.7 }, + limit: { context: 8192, output: 8192 }, + }, + "openai/chat-completion/models/gpt-oss-20b": { + id: "openai/chat-completion/models/gpt-oss-20b", + name: "GPT OSS 20B", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2025-12-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.045, output: 0.18 }, + limit: { context: 131072, output: 16384 }, + }, + "openai/chat-completion/models/gpt-oss-120b-high-throughput": { + id: "openai/chat-completion/models/gpt-oss-120b-high-throughput", + name: "GPT OSS 120B High Throughput", + family: "gpt-oss", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-08-05", + last_updated: "2026-02-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.09, output: 0.36 }, + limit: { context: 131072, output: 16384 }, + }, + "minimaxai/chat-completion/models/MiniMax-M2_5-high-throughput": { + id: "minimaxai/chat-completion/models/MiniMax-M2_5-high-throughput", + name: "MiniMax-M2.5 High Throughput", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 204800, output: 131072 }, + }, + "qwen/qwenCoder/models/Qwen3-Coder-30B-A3B-Instruct": { + id: "qwen/qwenCoder/models/Qwen3-Coder-30B-A3B-Instruct", + name: "Qwen3 Coder 30B A3B Instruct", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-31", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.11458, output: 0.74812 }, + limit: { context: 262144, output: 65536 }, + }, + "qwen/qwenLM/models/Qwen3-30B-A3B-Thinking-2507": { + id: "qwen/qwenLM/models/Qwen3-30B-A3B-Thinking-2507", + name: "Qwen3 30B A3B Thinking 2507", + family: "qwen", + attachment: false, + reasoning: true, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-31", + last_updated: "2026-02-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.36, output: 1.3 }, + limit: { context: 262144, output: 131072 }, + }, + "qwen/qwenLM/models/Qwen3-30B-A3B-Instruct-2507": { + id: "qwen/qwenLM/models/Qwen3-30B-A3B-Instruct-2507", + name: "Qwen3 30B A3B Instruct 2507", + family: "qwen", + attachment: false, + reasoning: false, + tool_call: true, + structured_output: true, + temperature: true, + release_date: "2025-07-30", + last_updated: "2026-02-25", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.5 }, + limit: { context: 262144, output: 262144 }, + }, + "clarifai/main/models/mm-poly-8b": { + id: "clarifai/main/models/mm-poly-8b", + name: "MM Poly 8B", + family: "mm-poly", + attachment: true, + reasoning: false, + tool_call: false, + temperature: true, + release_date: "2025-06", + last_updated: "2026-02-25", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: false, + cost: { input: 0.658, output: 1.11 }, + limit: { context: 32768, output: 4096 }, + }, + }, + }, + "minimax-cn": { + id: "minimax-cn", + env: ["MINIMAX_API_KEY"], + npm: "@ai-sdk/anthropic", + api: "https://api.minimaxi.com/anthropic/v1", + name: "MiniMax (minimaxi.com)", + doc: "https://platform.minimaxi.com/docs/guides/quickstart", + models: { + "MiniMax-M2": { + id: "MiniMax-M2", + name: "MiniMax-M2", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-10-27", + last_updated: "2025-10-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 196608, output: 128000 }, + }, + "MiniMax-M2.5": { + id: "MiniMax-M2.5", + name: "MiniMax-M2.5", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-12", + last_updated: "2026-02-12", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.03, cache_write: 0.375 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMax-M2.7": { + id: "MiniMax-M2.7", + name: "MiniMax-M2.7", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2, cache_read: 0.06, cache_write: 0.375 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMax-M2.7-highspeed": { + id: "MiniMax-M2.7-highspeed", + name: "MiniMax-M2.7-highspeed", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.4, cache_read: 0.06, cache_write: 0.375 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMax-M2.1": { + id: "MiniMax-M2.1", + name: "MiniMax-M2.1", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12-23", + last_updated: "2025-12-23", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 1.2 }, + limit: { context: 204800, output: 131072 }, + }, + "MiniMax-M2.5-highspeed": { + id: "MiniMax-M2.5-highspeed", + name: "MiniMax-M2.5-highspeed", + family: "minimax", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2026-02-13", + last_updated: "2026-02-13", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.4, cache_read: 0.06, cache_write: 0.375 }, + limit: { context: 204800, output: 131072 }, + }, + }, + }, + "xiaomi-token-plan-ams": { + id: "xiaomi-token-plan-ams", + env: ["XIAOMI_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://token-plan-ams.xiaomimimo.com/v1", + name: "Xiaomi Token Plan (Europe)", + doc: "https://platform.xiaomimimo.com/#/docs", + models: { + "mimo-v2-pro": { + id: "mimo-v2-pro", + name: "MiMo-V2-Pro", + family: "mimo", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-12", + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0 }, + limit: { context: 1000000, output: 128000 }, + }, + "mimo-v2-tts": { + id: "mimo-v2-tts", + name: "MiMo-V2-TTS", + family: "mimo", + attachment: false, + reasoning: false, + tool_call: false, + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text"], output: ["audio"] }, + open_weights: true, + cost: { input: 0, output: 0 }, + limit: { context: 8000, output: 16000 }, + }, + "mimo-v2-omni": { + id: "mimo-v2-omni", + name: "MiMo-V2-Omni", + family: "mimo", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2024-12", + release_date: "2026-03-18", + last_updated: "2026-03-18", + modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0 }, + limit: { context: 256000, output: 128000 }, + }, + }, + }, + zhipuai: { + id: "zhipuai", + env: ["ZHIPU_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://open.bigmodel.cn/api/paas/v4", + name: "Zhipu AI", + doc: "https://docs.z.ai/guides/overview/pricing", + models: { + "glm-5v-turbo": { + id: "glm-5v-turbo", + name: "glm-5v-turbo", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-04-01", + last_updated: "2026-04-01", + modalities: { input: ["text", "image", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 5, output: 22, cache_read: 1.2, cache_write: 0 }, + limit: { context: 200000, output: 131072 }, + }, + "glm-5": { + id: "glm-5", + name: "GLM-5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + release_date: "2026-02-11", + last_updated: "2026-02-11", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 1, output: 3.2, cache_read: 0.2, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "glm-5.1": { + id: "glm-5.1", + name: "GLM-5.1", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + structured_output: true, + temperature: true, + release_date: "2026-03-27", + last_updated: "2026-03-27", + modalities: { input: ["text"], output: ["text"] }, + open_weights: false, + cost: { input: 6, output: 24, cache_read: 1.3, cache_write: 0 }, + limit: { context: 200000, output: 131072 }, + }, + "glm-4.7-flash": { + id: "glm-4.7-flash", + name: "GLM-4.7-Flash", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 200000, output: 131072 }, + }, + "glm-4.5-flash": { + id: "glm-4.5-flash", + name: "GLM-4.5-Flash", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 }, + limit: { context: 131072, output: 98304 }, + }, + "glm-4.6v": { + id: "glm-4.6v", + name: "GLM-4.6V", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-08", + last_updated: "2025-12-08", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.3, output: 0.9 }, + limit: { context: 128000, output: 32768 }, + }, + "glm-4.6": { + id: "glm-4.6", + name: "GLM-4.6", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-09-30", + last_updated: "2025-09-30", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2, cache_read: 0.11, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + "glm-4.5v": { + id: "glm-4.5v", + name: "GLM-4.5V", + family: "glm", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-08-11", + last_updated: "2025-08-11", + modalities: { input: ["text", "image", "video"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 1.8 }, + limit: { context: 64000, output: 16384 }, + }, + "glm-4.5-air": { + id: "glm-4.5-air", + name: "GLM-4.5-Air", + family: "glm-air", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.2, output: 1.1, cache_read: 0.03, cache_write: 0 }, + limit: { context: 131072, output: 98304 }, + }, + "glm-4.5": { + id: "glm-4.5", + name: "GLM-4.5", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2025-07-28", + last_updated: "2025-07-28", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2, cache_read: 0.11, cache_write: 0 }, + limit: { context: 131072, output: 98304 }, + }, + "glm-4.7-flashx": { + id: "glm-4.7-flashx", + name: "GLM-4.7-FlashX", + family: "glm-flash", + attachment: false, + reasoning: true, + tool_call: true, + temperature: true, + knowledge: "2025-04", + release_date: "2026-01-19", + last_updated: "2026-01-19", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.07, output: 0.4, cache_read: 0.01, cache_write: 0 }, + limit: { context: 200000, output: 131072 }, + }, + "glm-4.7": { + id: "glm-4.7", + name: "GLM-4.7", + family: "glm", + attachment: false, + reasoning: true, + tool_call: true, + interleaved: { field: "reasoning_content" }, + temperature: true, + knowledge: "2025-04", + release_date: "2025-12-22", + last_updated: "2025-12-22", + modalities: { input: ["text"], output: ["text"] }, + open_weights: true, + cost: { input: 0.6, output: 2.2, cache_read: 0.11, cache_write: 0 }, + limit: { context: 204800, output: 131072 }, + }, + }, + }, + nova: { + id: "nova", + env: ["NOVA_API_KEY"], + npm: "@ai-sdk/openai-compatible", + api: "https://api.nova.amazon.com/v1", + name: "Nova", + doc: "https://nova.amazon.com/dev/documentation", + models: { + "nova-2-lite-v1": { + id: "nova-2-lite-v1", + name: "Nova 2 Lite", + family: "nova-lite", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12-01", + last_updated: "2025-12-01", + modalities: { input: ["text", "image", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, reasoning: 0 }, + limit: { context: 1000000, output: 64000 }, + }, + "nova-2-pro-v1": { + id: "nova-2-pro-v1", + name: "Nova 2 Pro", + family: "nova-pro", + attachment: true, + reasoning: true, + tool_call: true, + temperature: true, + release_date: "2025-12-03", + last_updated: "2026-01-03", + modalities: { input: ["text", "image", "video", "pdf"], output: ["text"] }, + open_weights: false, + cost: { input: 0, output: 0, reasoning: 0 }, + limit: { context: 1000000, output: 64000 }, + }, }, }, } diff --git a/packages/opencode/src/provider/provider.ts b/packages/opencode/src/provider/provider.ts index 004fb77f91..e401a067c7 100644 --- a/packages/opencode/src/provider/provider.ts +++ b/packages/opencode/src/provider/provider.ts @@ -19,7 +19,8 @@ import { iife } from "@/util/iife" import { Global } from "../global" import path from "path" import { Filesystem } from "../util/filesystem" -import { Effect, Layer, ServiceMap } from "effect" +import { Effect, Layer, Context } from "effect" +import { EffectLogger } from "@/effect/logger" import { InstanceState } from "@/effect/instance-state" import { makeRuntime } from "@/effect/run-service" @@ -924,7 +925,7 @@ export namespace Provider { varsLoaders: Record } - export class Service extends ServiceMap.Service()("@opencode/Provider") {} + export class Service extends Context.Service()("@opencode/Provider") {} function cost(c: ModelsDev.Model["cost"]): Model["cost"] { const result: Model["cost"] = { @@ -1215,7 +1216,8 @@ export namespace Provider { const options = yield* Effect.promise(() => plugin.auth!.loader!( - () => Effect.runPromise(auth.get(providerID).pipe(Effect.orDie)) as any, + () => + Effect.runPromise(auth.get(providerID).pipe(Effect.orDie, Effect.provide(EffectLogger.layer))) as any, database[plugin.auth!.provider], ), ) diff --git a/packages/opencode/src/provider/schema.ts b/packages/opencode/src/provider/schema.ts index 71c8a1029c..4490ca2898 100644 --- a/packages/opencode/src/provider/schema.ts +++ b/packages/opencode/src/provider/schema.ts @@ -9,20 +9,19 @@ export type ProviderID = typeof providerIdSchema.Type export const ProviderID = providerIdSchema.pipe( withStatics((schema: typeof providerIdSchema) => ({ - make: (id: string) => schema.makeUnsafe(id), zod: z.string().pipe(z.custom()), // Well-known providers - opencode: schema.makeUnsafe("opencode"), - anthropic: schema.makeUnsafe("anthropic"), - openai: schema.makeUnsafe("openai"), - google: schema.makeUnsafe("google"), - googleVertex: schema.makeUnsafe("google-vertex"), - githubCopilot: schema.makeUnsafe("github-copilot"), - amazonBedrock: schema.makeUnsafe("amazon-bedrock"), - azure: schema.makeUnsafe("azure"), - openrouter: schema.makeUnsafe("openrouter"), - mistral: schema.makeUnsafe("mistral"), - gitlab: schema.makeUnsafe("gitlab"), + opencode: schema.make("opencode"), + anthropic: schema.make("anthropic"), + openai: schema.make("openai"), + google: schema.make("google"), + googleVertex: schema.make("google-vertex"), + githubCopilot: schema.make("github-copilot"), + amazonBedrock: schema.make("amazon-bedrock"), + azure: schema.make("azure"), + openrouter: schema.make("openrouter"), + mistral: schema.make("mistral"), + gitlab: schema.make("gitlab"), })), ) @@ -32,7 +31,6 @@ export type ModelID = typeof modelIdSchema.Type export const ModelID = modelIdSchema.pipe( withStatics((schema: typeof modelIdSchema) => ({ - make: (id: string) => schema.makeUnsafe(id), zod: z.string().pipe(z.custom()), })), ) diff --git a/packages/opencode/src/provider/transform.ts b/packages/opencode/src/provider/transform.ts index 1118320992..dea8cf936a 100644 --- a/packages/opencode/src/provider/transform.ts +++ b/packages/opencode/src/provider/transform.ts @@ -774,7 +774,10 @@ export namespace ProviderTransform { result["chat_template_args"] = { enable_thinking: true } } - if (["zai", "zhipuai"].includes(input.model.providerID) && input.model.api.npm === "@ai-sdk/openai-compatible") { + if ( + ["zai", "zhipuai"].some((id) => input.model.providerID.includes(id)) && + input.model.api.npm === "@ai-sdk/openai-compatible" + ) { result["thinking"] = { type: "enabled", clear_thinking: false, diff --git a/packages/opencode/src/pty/index.ts b/packages/opencode/src/pty/index.ts index ff44de73b5..a563bb954b 100644 --- a/packages/opencode/src/pty/index.ts +++ b/packages/opencode/src/pty/index.ts @@ -10,7 +10,8 @@ import { lazy } from "@opencode-ai/util/lazy" import { Shell } from "@/shell/shell" import { Plugin } from "@/plugin" import { PtyID } from "./schema" -import { Effect, Layer, ServiceMap } from "effect" +import { Effect, Layer, Context } from "effect" +import { EffectLogger } from "@/effect/logger" export namespace Pty { const log = Log.create({ service: "pty" }) @@ -112,7 +113,7 @@ export namespace Pty { ) => Effect.Effect<{ onMessage: (message: string | ArrayBuffer) => void; onClose: () => void } | undefined> } - export class Service extends ServiceMap.Service()("@opencode/Pty") {} + export class Service extends Context.Service()("@opencode/Pty") {} export const layer = Layer.effect( Service, @@ -256,8 +257,8 @@ export namespace Pty { if (session.info.status === "exited") return log.info("session exited", { id, exitCode }) session.info.status = "exited" - Effect.runFork(bus.publish(Event.Exited, { id, exitCode })) - Effect.runFork(remove(id)) + Effect.runFork(bus.publish(Event.Exited, { id, exitCode }).pipe(Effect.provide(EffectLogger.layer))) + Effect.runFork(remove(id).pipe(Effect.provide(EffectLogger.layer))) }), ) yield* bus.publish(Event.Created, { info }) diff --git a/packages/opencode/src/pty/schema.ts b/packages/opencode/src/pty/schema.ts index 47b3196f0b..deb498891a 100644 --- a/packages/opencode/src/pty/schema.ts +++ b/packages/opencode/src/pty/schema.ts @@ -10,8 +10,7 @@ export type PtyID = typeof ptyIdSchema.Type export const PtyID = ptyIdSchema.pipe( withStatics((schema: typeof ptyIdSchema) => ({ - make: (id: string) => schema.makeUnsafe(id), - ascending: (id?: string) => schema.makeUnsafe(Identifier.ascending("pty", id)), + ascending: (id?: string) => schema.make(Identifier.ascending("pty", id)), zod: Identifier.schema("pty").pipe(z.custom()), })), ) diff --git a/packages/opencode/src/question/index.ts b/packages/opencode/src/question/index.ts index 615c699ce9..ca83bb7b2e 100644 --- a/packages/opencode/src/question/index.ts +++ b/packages/opencode/src/question/index.ts @@ -1,4 +1,4 @@ -import { Deferred, Effect, Layer, Schema, ServiceMap } from "effect" +import { Deferred, Effect, Layer, Schema, Context } from "effect" import { Bus } from "@/bus" import { BusEvent } from "@/bus/bus-event" import { InstanceState } from "@/effect/instance-state" @@ -104,7 +104,7 @@ export namespace Question { readonly list: () => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/Question") {} + export class Service extends Context.Service()("@opencode/Question") {} export const layer = Layer.effect( Service, diff --git a/packages/opencode/src/question/schema.ts b/packages/opencode/src/question/schema.ts index 38b930af11..e5a0496c96 100644 --- a/packages/opencode/src/question/schema.ts +++ b/packages/opencode/src/question/schema.ts @@ -5,12 +5,8 @@ import { Identifier } from "@/id/id" import { Newtype } from "@/util/schema" export class QuestionID extends Newtype()("QuestionID", Schema.String) { - static make(id: string): QuestionID { - return this.makeUnsafe(id) - } - static ascending(id?: string): QuestionID { - return this.makeUnsafe(Identifier.ascending("question", id)) + return this.make(Identifier.ascending("question", id)) } static readonly zod = Identifier.schema("question") as unknown as z.ZodType diff --git a/packages/opencode/src/server/adapter.bun.ts b/packages/opencode/src/server/adapter.bun.ts new file mode 100644 index 0000000000..3e70b97e8a --- /dev/null +++ b/packages/opencode/src/server/adapter.bun.ts @@ -0,0 +1,40 @@ +import type { Hono } from "hono" +import { createBunWebSocket } from "hono/bun" +import type { Adapter } from "./adapter" + +export const adapter: Adapter = { + create(app: Hono) { + const ws = createBunWebSocket() + return { + upgradeWebSocket: ws.upgradeWebSocket, + async listen(opts) { + const args = { + fetch: app.fetch, + hostname: opts.hostname, + idleTimeout: 0, + websocket: ws.websocket, + } as const + const start = (port: number) => { + try { + return Bun.serve({ ...args, port }) + } catch { + return + } + } + const server = opts.port === 0 ? (start(4096) ?? start(0)) : start(opts.port) + if (!server) { + throw new Error(`Failed to start server on port ${opts.port}`) + } + if (!server.port) { + throw new Error(`Failed to resolve server address for port ${opts.port}`) + } + return { + port: server.port, + stop(close?: boolean) { + return Promise.resolve(server.stop(close)) + }, + } + }, + } + }, +} diff --git a/packages/opencode/src/server/adapter.node.ts b/packages/opencode/src/server/adapter.node.ts new file mode 100644 index 0000000000..9c2a41cce2 --- /dev/null +++ b/packages/opencode/src/server/adapter.node.ts @@ -0,0 +1,66 @@ +import { createAdaptorServer, type ServerType } from "@hono/node-server" +import { createNodeWebSocket } from "@hono/node-ws" +import type { Hono } from "hono" +import type { Adapter } from "./adapter" + +export const adapter: Adapter = { + create(app: Hono) { + const ws = createNodeWebSocket({ app }) + return { + upgradeWebSocket: ws.upgradeWebSocket, + async listen(opts) { + const start = (port: number) => + new Promise((resolve, reject) => { + const server = createAdaptorServer({ fetch: app.fetch }) + ws.injectWebSocket(server) + const fail = (err: Error) => { + cleanup() + reject(err) + } + const ready = () => { + cleanup() + resolve(server) + } + const cleanup = () => { + server.off("error", fail) + server.off("listening", ready) + } + server.once("error", fail) + server.once("listening", ready) + server.listen(port, opts.hostname) + }) + + const server = opts.port === 0 ? await start(4096).catch(() => start(0)) : await start(opts.port) + const addr = server.address() + if (!addr || typeof addr === "string") { + throw new Error(`Failed to resolve server address for port ${opts.port}`) + } + + let closing: Promise | undefined + return { + port: addr.port, + stop(close?: boolean) { + closing ??= new Promise((resolve, reject) => { + server.close((err) => { + if (err) { + reject(err) + return + } + resolve() + }) + if (close) { + if ("closeAllConnections" in server && typeof server.closeAllConnections === "function") { + server.closeAllConnections() + } + if ("closeIdleConnections" in server && typeof server.closeIdleConnections === "function") { + server.closeIdleConnections() + } + } + }) + return closing + }, + } + }, + } + }, +} diff --git a/packages/opencode/src/server/adapter.ts b/packages/opencode/src/server/adapter.ts new file mode 100644 index 0000000000..272521d7d3 --- /dev/null +++ b/packages/opencode/src/server/adapter.ts @@ -0,0 +1,21 @@ +import type { Hono } from "hono" +import type { UpgradeWebSocket } from "hono/ws" + +export type Opts = { + port: number + hostname: string +} + +export type Listener = { + port: number + stop: (close?: boolean) => Promise +} + +export interface Runtime { + upgradeWebSocket: UpgradeWebSocket + listen(opts: Opts): Promise +} + +export interface Adapter { + create(app: Hono): Runtime +} diff --git a/packages/opencode/src/server/control/index.ts b/packages/opencode/src/server/control/index.ts new file mode 100644 index 0000000000..aae77f2f05 --- /dev/null +++ b/packages/opencode/src/server/control/index.ts @@ -0,0 +1,150 @@ +import { Auth } from "@/auth" +import { Log } from "@/util/log" +import { ProviderID } from "@/provider/schema" +import { Hono } from "hono" +import { describeRoute, resolver, validator, openAPIRouteHandler } from "hono-openapi" +import z from "zod" +import { errors } from "../error" +import { GlobalRoutes } from "../instance/global" + +export function ControlPlaneRoutes(): Hono { + const app = new Hono() + return app + .route("/global", GlobalRoutes()) + .put( + "/auth/:providerID", + describeRoute({ + summary: "Set auth credentials", + description: "Set authentication credentials", + operationId: "auth.set", + responses: { + 200: { + description: "Successfully set authentication credentials", + content: { + "application/json": { + schema: resolver(z.boolean()), + }, + }, + }, + ...errors(400), + }, + }), + validator( + "param", + z.object({ + providerID: ProviderID.zod, + }), + ), + validator("json", Auth.Info.zod), + async (c) => { + const providerID = c.req.valid("param").providerID + const info = c.req.valid("json") + await Auth.set(providerID, info) + return c.json(true) + }, + ) + .delete( + "/auth/:providerID", + describeRoute({ + summary: "Remove auth credentials", + description: "Remove authentication credentials", + operationId: "auth.remove", + responses: { + 200: { + description: "Successfully removed authentication credentials", + content: { + "application/json": { + schema: resolver(z.boolean()), + }, + }, + }, + ...errors(400), + }, + }), + validator( + "param", + z.object({ + providerID: ProviderID.zod, + }), + ), + async (c) => { + const providerID = c.req.valid("param").providerID + await Auth.remove(providerID) + return c.json(true) + }, + ) + .get( + "/doc", + openAPIRouteHandler(app, { + documentation: { + info: { + title: "opencode", + version: "0.0.3", + description: "opencode api", + }, + openapi: "3.1.1", + }, + }), + ) + .use( + validator( + "query", + z.object({ + directory: z.string().optional(), + workspace: z.string().optional(), + }), + ), + ) + .post( + "/log", + describeRoute({ + summary: "Write log", + description: "Write a log entry to the server logs with specified level and metadata.", + operationId: "app.log", + responses: { + 200: { + description: "Log entry written successfully", + content: { + "application/json": { + schema: resolver(z.boolean()), + }, + }, + }, + ...errors(400), + }, + }), + validator( + "json", + z.object({ + service: z.string().meta({ description: "Service name for the log entry" }), + level: z.enum(["debug", "info", "error", "warn"]).meta({ description: "Log level" }), + message: z.string().meta({ description: "Log message" }), + extra: z + .record(z.string(), z.any()) + .optional() + .meta({ description: "Additional metadata for the log entry" }), + }), + ), + async (c) => { + const { service, level, message, extra } = c.req.valid("json") + const logger = Log.create({ service }) + + switch (level) { + case "debug": + logger.debug(message, extra) + break + case "info": + logger.info(message, extra) + break + case "error": + logger.error(message, extra) + break + case "warn": + logger.warn(message, extra) + break + } + + return c.json(true) + }, + ) +} diff --git a/packages/opencode/src/server/routes/config.ts b/packages/opencode/src/server/instance/config.ts similarity index 100% rename from packages/opencode/src/server/routes/config.ts rename to packages/opencode/src/server/instance/config.ts diff --git a/packages/opencode/src/server/routes/event.ts b/packages/opencode/src/server/instance/event.ts similarity index 100% rename from packages/opencode/src/server/routes/event.ts rename to packages/opencode/src/server/instance/event.ts diff --git a/packages/opencode/src/server/routes/experimental.ts b/packages/opencode/src/server/instance/experimental.ts similarity index 86% rename from packages/opencode/src/server/routes/experimental.ts rename to packages/opencode/src/server/instance/experimental.ts index 763cdcf774..464617c69b 100644 --- a/packages/opencode/src/server/routes/experimental.ts +++ b/packages/opencode/src/server/instance/experimental.ts @@ -11,9 +11,11 @@ import { Session } from "../../session" import { Config } from "../../config/config" import { ConsoleState } from "../../config/console-state" import { Account, AccountID, OrgID } from "../../account" +import { AppRuntime } from "../../effect/app-runtime" import { zodToJsonSchema } from "zod-to-json-schema" import { errors } from "../error" import { lazy } from "../../util/lazy" +import { Effect, Option } from "effect" import { WorkspaceRoutes } from "./workspace" import { Agent } from "@/agent/agent" @@ -55,11 +57,20 @@ export const ExperimentalRoutes = lazy(() => }, }), async (c) => { - const [consoleState, groups] = await Promise.all([Config.getConsoleState(), Account.orgsByAccount()]) - return c.json({ - ...consoleState, - switchableOrgCount: groups.reduce((count, group) => count + group.orgs.length, 0), - }) + const result = await AppRuntime.runPromise( + Effect.gen(function* () { + const config = yield* Config.Service + const account = yield* Account.Service + const [state, groups] = yield* Effect.all([config.getConsoleState(), account.orgsByAccount()], { + concurrency: "unbounded", + }) + return { + ...state, + switchableOrgCount: groups.reduce((count, group) => count + group.orgs.length, 0), + } + }), + ) + return c.json(result) }, ) .get( @@ -80,17 +91,24 @@ export const ExperimentalRoutes = lazy(() => }, }), async (c) => { - const [groups, active] = await Promise.all([Account.orgsByAccount(), Account.active()]) - - const orgs = groups.flatMap((group) => - group.orgs.map((org) => ({ - accountID: group.account.id, - accountEmail: group.account.email, - accountUrl: group.account.url, - orgID: org.id, - orgName: org.name, - active: !!active && active.id === group.account.id && active.active_org_id === org.id, - })), + const orgs = await AppRuntime.runPromise( + Effect.gen(function* () { + const account = yield* Account.Service + const [groups, active] = yield* Effect.all([account.orgsByAccount(), account.active()], { + concurrency: "unbounded", + }) + const info = Option.getOrUndefined(active) + return groups.flatMap((group) => + group.orgs.map((org) => ({ + accountID: group.account.id, + accountEmail: group.account.email, + accountUrl: group.account.url, + orgID: org.id, + orgName: org.name, + active: !!info && info.id === group.account.id && info.active_org_id === org.id, + })), + ) + }), ) return c.json({ orgs }) }, @@ -115,7 +133,12 @@ export const ExperimentalRoutes = lazy(() => validator("json", ConsoleSwitchBody), async (c) => { const body = c.req.valid("json") - await Account.switchOrg(AccountID.make(body.accountID), OrgID.make(body.orgID)) + await AppRuntime.runPromise( + Effect.gen(function* () { + const account = yield* Account.Service + yield* account.use(AccountID.make(body.accountID), Option.some(OrgID.make(body.orgID))) + }), + ) return c.json(true) }, ) diff --git a/packages/opencode/src/server/routes/file.ts b/packages/opencode/src/server/instance/file.ts similarity index 100% rename from packages/opencode/src/server/routes/file.ts rename to packages/opencode/src/server/instance/file.ts diff --git a/packages/opencode/src/server/routes/global.ts b/packages/opencode/src/server/instance/global.ts similarity index 84% rename from packages/opencode/src/server/routes/global.ts rename to packages/opencode/src/server/instance/global.ts index ec7afcf23d..6b0a9a164b 100644 --- a/packages/opencode/src/server/routes/global.ts +++ b/packages/opencode/src/server/instance/global.ts @@ -1,10 +1,12 @@ import { Hono, type Context } from "hono" import { describeRoute, resolver, validator } from "hono-openapi" import { streamSSE } from "hono/streaming" +import { Effect } from "effect" import z from "zod" import { BusEvent } from "@/bus/bus-event" import { SyncEvent } from "@/sync" import { GlobalBus } from "@/bus/global" +import { AppRuntime } from "@/effect/app-runtime" import { AsyncQueue } from "@/util/queue" import { Instance } from "../../project/instance" import { Installation } from "@/installation" @@ -290,25 +292,41 @@ export const GlobalRoutes = lazy(() => }), ), async (c) => { - const method = await Installation.method() - if (method === "unknown") { - return c.json({ success: false, error: "Unknown installation method" }, 400) + const result = await AppRuntime.runPromise( + Installation.Service.use((svc) => + Effect.gen(function* () { + const method = yield* svc.method() + if (method === "unknown") { + return { success: false as const, status: 400 as const, error: "Unknown installation method" } + } + + const target = c.req.valid("json").target || (yield* svc.latest(method)) + const result = yield* Effect.catch( + svc.upgrade(method, target).pipe(Effect.as({ success: true as const, version: target })), + (err) => + Effect.succeed({ + success: false as const, + status: 500 as const, + error: err instanceof Error ? err.message : String(err), + }), + ) + if (!result.success) return result + return { ...result, status: 200 as const } + }), + ), + ) + if (!result.success) { + return c.json({ success: false, error: result.error }, result.status) } - const target = c.req.valid("json").target || (await Installation.latest(method)) - const result = await Installation.upgrade(method, target) - .then(() => ({ success: true as const, version: target })) - .catch((e) => ({ success: false as const, error: e instanceof Error ? e.message : String(e) })) - if (result.success) { - GlobalBus.emit("event", { - directory: "global", - payload: { - type: Installation.Event.Updated.type, - properties: { version: target }, - }, - }) - return c.json(result) - } - return c.json(result, 500) + const target = result.version + GlobalBus.emit("event", { + directory: "global", + payload: { + type: Installation.Event.Updated.type, + properties: { version: target }, + }, + }) + return c.json({ success: true, version: target }) }, ), ) diff --git a/packages/opencode/src/server/instance.ts b/packages/opencode/src/server/instance/index.ts similarity index 63% rename from packages/opencode/src/server/instance.ts rename to packages/opencode/src/server/instance/index.ts index 4bd7802e2a..2acc424e4e 100644 --- a/packages/opencode/src/server/instance.ts +++ b/packages/opencode/src/server/instance/index.ts @@ -1,52 +1,33 @@ import { describeRoute, resolver, validator } from "hono-openapi" import { Hono } from "hono" -import { proxy } from "hono/proxy" import type { UpgradeWebSocket } from "hono/ws" import z from "zod" -import { createHash } from "node:crypto" -import * as fs from "node:fs/promises" -import { Log } from "../util/log" -import { Format } from "../format" -import { TuiRoutes } from "./routes/tui" -import { Instance } from "../project/instance" -import { Vcs } from "../project/vcs" -import { Agent } from "../agent/agent" -import { Skill } from "../skill" -import { Global } from "../global" -import { LSP } from "../lsp" -import { Command } from "../command" -import { Flag } from "../flag/flag" -import { QuestionRoutes } from "./routes/question" -import { PermissionRoutes } from "./routes/permission" -import { Snapshot } from "@/snapshot" -import { ProjectRoutes } from "./routes/project" -import { SessionRoutes } from "./routes/session" -import { PtyRoutes } from "./routes/pty" -import { McpRoutes } from "./routes/mcp" -import { FileRoutes } from "./routes/file" -import { ConfigRoutes } from "./routes/config" -import { ExperimentalRoutes } from "./routes/experimental" -import { ProviderRoutes } from "./routes/provider" -import { EventRoutes } from "./routes/event" -import { errorHandler } from "./middleware" -import { getMimeType } from "hono/utils/mime" +import { Format } from "../../format" +import { TuiRoutes } from "./tui" +import { Instance } from "../../project/instance" +import { Vcs } from "../../project/vcs" +import { Agent } from "../../agent/agent" +import { Skill } from "../../skill" +import { Global } from "../../global" +import { LSP } from "../../lsp" +import { Command } from "../../command" +import { QuestionRoutes } from "./question" +import { PermissionRoutes } from "./permission" +import { ProjectRoutes } from "./project" +import { SessionRoutes } from "./session" +import { PtyRoutes } from "./pty" +import { McpRoutes } from "./mcp" +import { FileRoutes } from "./file" +import { ConfigRoutes } from "./config" +import { ExperimentalRoutes } from "./experimental" +import { ProviderRoutes } from "./provider" +import { EventRoutes } from "./event" +import { WorkspaceRouterMiddleware } from "./middleware" +import { AppRuntime } from "@/effect/app-runtime" -const log = Log.create({ service: "server" }) - -const embeddedUIPromise = Flag.OPENCODE_DISABLE_EMBEDDED_WEB_UI - ? Promise.resolve(null) - : // @ts-expect-error - generated file at build time - import("opencode-web-ui.gen.ts").then((module) => module.default as Record).catch(() => null) - -const DEFAULT_CSP = - "default-src 'self'; script-src 'self' 'wasm-unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; font-src 'self' data:; media-src 'self' data:; connect-src 'self' data:" - -const csp = (hash = "") => - `default-src 'self'; script-src 'self' 'wasm-unsafe-eval'${hash ? ` 'sha256-${hash}'` : ""}; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; font-src 'self' data:; media-src 'self' data:; connect-src 'self' data:` - -export const InstanceRoutes = (upgrade: UpgradeWebSocket, app: Hono = new Hono()) => - app - .onError(errorHandler(log)) +export const InstanceRoutes = (upgrade: UpgradeWebSocket): Hono => + new Hono() + .use(WorkspaceRouterMiddleware(upgrade)) .route("/project", ProjectRoutes()) .route("/pty", PtyRoutes(upgrade)) .route("/config", ConfigRoutes()) @@ -190,7 +171,7 @@ export const InstanceRoutes = (upgrade: UpgradeWebSocket, app: Hono = new Hono() }, }), async (c) => { - const commands = await Command.list() + const commands = await AppRuntime.runPromise(Command.Service.use((svc) => svc.list())) return c.json(commands) }, ) @@ -277,42 +258,6 @@ export const InstanceRoutes = (upgrade: UpgradeWebSocket, app: Hono = new Hono() }, }), async (c) => { - return c.json(await Format.status()) + return c.json(await AppRuntime.runPromise(Format.Service.use((svc) => svc.status()))) }, ) - .all("/*", async (c) => { - const embeddedWebUI = await embeddedUIPromise - const path = c.req.path - - if (embeddedWebUI) { - const match = embeddedWebUI[path.replace(/^\//, "")] ?? embeddedWebUI["index.html"] ?? null - if (!match) return c.json({ error: "Not Found" }, 404) - - if (await fs.exists(match)) { - const mime = getMimeType(match) ?? "text/plain" - c.header("Content-Type", mime) - if (mime.startsWith("text/html")) { - c.header("Content-Security-Policy", DEFAULT_CSP) - } - return c.body(new Uint8Array(await fs.readFile(match))) - } else { - return c.json({ error: "Not Found" }, 404) - } - } else { - const response = await proxy(`https://app.opencode.ai${path}`, { - ...c.req, - headers: { - ...c.req.raw.headers, - host: "app.opencode.ai", - }, - }) - const match = response.headers.get("content-type")?.includes("text/html") - ? (await response.clone().text()).match( - /]*\bsrc\s*=)[^>]*\bid=(['"])oc-theme-preload-script\1[^>]*>([\s\S]*?)<\/script>/i, - ) - : undefined - const hash = match ? createHash("sha256").update(match[2]).digest("base64") : "" - response.headers.set("Content-Security-Policy", csp(hash)) - return response - } - }) diff --git a/packages/opencode/src/server/routes/mcp.ts b/packages/opencode/src/server/instance/mcp.ts similarity index 100% rename from packages/opencode/src/server/routes/mcp.ts rename to packages/opencode/src/server/instance/mcp.ts diff --git a/packages/opencode/src/server/router.ts b/packages/opencode/src/server/instance/middleware.ts similarity index 90% rename from packages/opencode/src/server/router.ts rename to packages/opencode/src/server/instance/middleware.ts index f97724c2ec..1a5011477e 100644 --- a/packages/opencode/src/server/router.ts +++ b/packages/opencode/src/server/instance/middleware.ts @@ -3,12 +3,10 @@ import type { UpgradeWebSocket } from "hono/ws" import { getAdaptor } from "@/control-plane/adaptors" import { WorkspaceID } from "@/control-plane/schema" import { Workspace } from "@/control-plane/workspace" -import { ServerProxy } from "./proxy" -import { lazy } from "@/util/lazy" +import { ServerProxy } from "../proxy" import { Filesystem } from "@/util/filesystem" import { Instance } from "@/project/instance" import { InstanceBootstrap } from "@/project/bootstrap" -import { InstanceRoutes } from "./instance" import { Session } from "@/session" import { SessionID } from "@/session/schema" import { WorkspaceContext } from "@/control-plane/workspace-context" @@ -47,9 +45,7 @@ async function getSessionWorkspace(url: URL) { } export function WorkspaceRouterMiddleware(upgrade: UpgradeWebSocket): MiddlewareHandler { - const routes = lazy(() => InstanceRoutes(upgrade)) - - return async (c) => { + return async (c, next) => { const raw = c.req.query("directory") || c.req.header("x-opencode-directory") || process.cwd() const directory = Filesystem.resolve( (() => { @@ -72,7 +68,7 @@ export function WorkspaceRouterMiddleware(upgrade: UpgradeWebSocket): Middleware directory, init: InstanceBootstrap, async fn() { - return routes().fetch(c.req.raw, c.env) + return next() }, }) } @@ -87,7 +83,7 @@ export function WorkspaceRouterMiddleware(upgrade: UpgradeWebSocket): Middleware // The lets the `DELETE /session/:id` endpoint through and we've // made sure that it will run without an instance if (url.pathname.match(/\/session\/[^/]+$/) && c.req.method === "DELETE") { - return routes().fetch(c.req.raw, c.env) + return next() } return new Response(`Workspace not found: ${workspaceID}`, { @@ -109,7 +105,7 @@ export function WorkspaceRouterMiddleware(upgrade: UpgradeWebSocket): Middleware directory: target.directory, init: InstanceBootstrap, async fn() { - return routes().fetch(c.req.raw, c.env) + return next() }, }), }) @@ -118,7 +114,7 @@ export function WorkspaceRouterMiddleware(upgrade: UpgradeWebSocket): Middleware if (local(c.req.method, url.pathname)) { // No instance provided because we are serving cached data; there // is no instance to work with - return routes().fetch(c.req.raw, c.env) + return next() } if (c.req.header("upgrade")?.toLowerCase() === "websocket") { diff --git a/packages/opencode/src/server/routes/permission.ts b/packages/opencode/src/server/instance/permission.ts similarity index 100% rename from packages/opencode/src/server/routes/permission.ts rename to packages/opencode/src/server/instance/permission.ts diff --git a/packages/opencode/src/server/routes/project.ts b/packages/opencode/src/server/instance/project.ts similarity index 100% rename from packages/opencode/src/server/routes/project.ts rename to packages/opencode/src/server/instance/project.ts diff --git a/packages/opencode/src/server/routes/provider.ts b/packages/opencode/src/server/instance/provider.ts similarity index 89% rename from packages/opencode/src/server/routes/provider.ts rename to packages/opencode/src/server/instance/provider.ts index 59a4a686b2..efd126ea0f 100644 --- a/packages/opencode/src/server/routes/provider.ts +++ b/packages/opencode/src/server/instance/provider.ts @@ -6,6 +6,7 @@ import { Provider } from "../../provider/provider" import { ModelsDev } from "../../provider/models" import { ProviderAuth } from "../../provider/auth" import { ProviderID } from "../../provider/schema" +import { AppRuntime } from "../../effect/app-runtime" import { mapValues } from "remeda" import { errors } from "../error" import { lazy } from "../../util/lazy" @@ -81,7 +82,7 @@ export const ProviderRoutes = lazy(() => }, }), async (c) => { - return c.json(await ProviderAuth.methods()) + return c.json(await AppRuntime.runPromise(ProviderAuth.Service.use((svc) => svc.methods()))) }, ) .post( @@ -118,11 +119,15 @@ export const ProviderRoutes = lazy(() => async (c) => { const providerID = c.req.valid("param").providerID const { method, inputs } = c.req.valid("json") - const result = await ProviderAuth.authorize({ - providerID, - method, - inputs, - }) + const result = await AppRuntime.runPromise( + ProviderAuth.Service.use((svc) => + svc.authorize({ + providerID, + method, + inputs, + }), + ), + ) return c.json(result) }, ) @@ -160,11 +165,15 @@ export const ProviderRoutes = lazy(() => async (c) => { const providerID = c.req.valid("param").providerID const { method, code } = c.req.valid("json") - await ProviderAuth.callback({ - providerID, - method, - code, - }) + await AppRuntime.runPromise( + ProviderAuth.Service.use((svc) => + svc.callback({ + providerID, + method, + code, + }), + ), + ) return c.json(true) }, ), diff --git a/packages/opencode/src/server/routes/pty.ts b/packages/opencode/src/server/instance/pty.ts similarity index 100% rename from packages/opencode/src/server/routes/pty.ts rename to packages/opencode/src/server/instance/pty.ts diff --git a/packages/opencode/src/server/routes/question.ts b/packages/opencode/src/server/instance/question.ts similarity index 100% rename from packages/opencode/src/server/routes/question.ts rename to packages/opencode/src/server/instance/question.ts diff --git a/packages/opencode/src/server/routes/session.ts b/packages/opencode/src/server/instance/session.ts similarity index 98% rename from packages/opencode/src/server/routes/session.ts rename to packages/opencode/src/server/instance/session.ts index 83658987e3..016fb3ee1a 100644 --- a/packages/opencode/src/server/routes/session.ts +++ b/packages/opencode/src/server/instance/session.ts @@ -13,6 +13,7 @@ import { SessionShare } from "@/share/session" import { SessionStatus } from "@/session/status" import { SessionSummary } from "@/session/summary" import { Todo } from "../../session/todo" +import { AppRuntime } from "../../effect/app-runtime" import { Agent } from "../../agent/agent" import { Snapshot } from "@/snapshot" import { Command } from "../../command" @@ -93,7 +94,7 @@ export const SessionRoutes = lazy(() => }, }), async (c) => { - const result = await SessionStatus.list() + const result = await AppRuntime.runPromise(SessionStatus.Service.use((svc) => svc.list())) return c.json(Object.fromEntries(result)) }, ) @@ -185,7 +186,7 @@ export const SessionRoutes = lazy(() => ), async (c) => { const sessionID = c.req.valid("param").sessionID - const todos = await Todo.get(sessionID) + const todos = await AppRuntime.runPromise(Todo.Service.use((svc) => svc.get(sessionID))) return c.json(todos) }, ) @@ -272,6 +273,7 @@ export const SessionRoutes = lazy(() => "json", z.object({ title: z.string().optional(), + permission: Permission.Ruleset.optional(), time: z .object({ archived: z.number().optional(), @@ -282,10 +284,17 @@ export const SessionRoutes = lazy(() => async (c) => { const sessionID = c.req.valid("param").sessionID const updates = c.req.valid("json") + const current = await Session.get(sessionID) if (updates.title !== undefined) { await Session.setTitle({ sessionID, title: updates.title }) } + if (updates.permission !== undefined) { + await Session.setPermission({ + sessionID, + permission: Permission.merge(current.permission ?? [], updates.permission), + }) + } if (updates.time?.archived !== undefined) { await Session.setArchived({ sessionID, time: updates.time.archived }) } diff --git a/packages/opencode/src/server/routes/tui.ts b/packages/opencode/src/server/instance/tui.ts similarity index 100% rename from packages/opencode/src/server/routes/tui.ts rename to packages/opencode/src/server/instance/tui.ts diff --git a/packages/opencode/src/server/routes/workspace.ts b/packages/opencode/src/server/instance/workspace.ts similarity index 100% rename from packages/opencode/src/server/routes/workspace.ts rename to packages/opencode/src/server/instance/workspace.ts diff --git a/packages/opencode/src/server/middleware.ts b/packages/opencode/src/server/middleware.ts index 278740c57d..a51ba602b5 100644 --- a/packages/opencode/src/server/middleware.ts +++ b/packages/opencode/src/server/middleware.ts @@ -3,31 +3,90 @@ import { NamedError } from "@opencode-ai/util/error" import { NotFoundError } from "../storage/db" import { Session } from "../session" import type { ContentfulStatusCode } from "hono/utils/http-status" -import type { ErrorHandler } from "hono" +import type { ErrorHandler, MiddlewareHandler } from "hono" import { HTTPException } from "hono/http-exception" -import type { Log } from "../util/log" +import { Log } from "../util/log" +import { Flag } from "@/flag/flag" +import { basicAuth } from "hono/basic-auth" +import { cors } from "hono/cors" +import { compress } from "hono/compress" -export function errorHandler(log: Log.Logger): ErrorHandler { - return (err, c) => { - log.error("failed", { - error: err, - }) - if (err instanceof NamedError) { - let status: ContentfulStatusCode - if (err instanceof NotFoundError) status = 404 - else if (err instanceof Provider.ModelNotFoundError) status = 400 - else if (err.name === "ProviderAuthValidationFailed") status = 400 - else if (err.name.startsWith("Worktree")) status = 400 - else status = 500 - return c.json(err.toObject(), { status }) - } - if (err instanceof Session.BusyError) { - return c.json(new NamedError.Unknown({ message: err.message }).toObject(), { status: 400 }) - } - if (err instanceof HTTPException) return err.getResponse() - const message = err instanceof Error && err.stack ? err.stack : err.toString() - return c.json(new NamedError.Unknown({ message }).toObject(), { - status: 500, +const log = Log.create({ service: "server" }) + +export const ErrorMiddleware: ErrorHandler = (err, c) => { + log.error("failed", { + error: err, + }) + if (err instanceof NamedError) { + let status: ContentfulStatusCode + if (err instanceof NotFoundError) status = 404 + else if (err instanceof Provider.ModelNotFoundError) status = 400 + else if (err.name === "ProviderAuthValidationFailed") status = 400 + else if (err.name.startsWith("Worktree")) status = 400 + else status = 500 + return c.json(err.toObject(), { status }) + } + if (err instanceof Session.BusyError) { + return c.json(new NamedError.Unknown({ message: err.message }).toObject(), { status: 400 }) + } + if (err instanceof HTTPException) return err.getResponse() + const message = err instanceof Error && err.stack ? err.stack : err.toString() + return c.json(new NamedError.Unknown({ message }).toObject(), { + status: 500, + }) +} + +export const AuthMiddleware: MiddlewareHandler = (c, next) => { + // Allow CORS preflight requests to succeed without auth. + // Browser clients sending Authorization headers will preflight with OPTIONS. + if (c.req.method === "OPTIONS") return next() + const password = Flag.OPENCODE_SERVER_PASSWORD + if (!password) return next() + const username = Flag.OPENCODE_SERVER_USERNAME ?? "opencode" + + if (c.req.query("auth_token")) c.req.raw.headers.set("authorization", `Basic ${c.req.query("auth_token")}`) + + return basicAuth({ username, password })(c, next) +} + +export const LoggerMiddleware: MiddlewareHandler = async (c, next) => { + const skip = c.req.path === "/log" + if (!skip) { + log.info("request", { + method: c.req.method, + path: c.req.path, }) } + const timer = log.time("request", { + method: c.req.method, + path: c.req.path, + }) + await next() + if (!skip) timer.stop() +} + +export function CorsMiddleware(opts?: { cors?: string[] }): MiddlewareHandler { + return cors({ + maxAge: 86_400, + origin(input) { + if (!input) return + + if (input.startsWith("http://localhost:")) return input + if (input.startsWith("http://127.0.0.1:")) return input + if (input === "tauri://localhost" || input === "http://tauri.localhost" || input === "https://tauri.localhost") + return input + + if (/^https:\/\/([a-z0-9-]+\.)*opencode\.ai$/.test(input)) return input + if (opts?.cors?.includes(input)) return input + }, + }) +} + +const zipped = compress() +export const CompressionMiddleware: MiddlewareHandler = (c, next) => { + const path = c.req.path + const method = c.req.method + if (path === "/event" || path === "/global/event" || path === "/global/sync-event") return next() + if (method === "POST" && /\/session\/[^/]+\/(message|prompt_async)$/.test(path)) return next() + return zipped(c, next) } diff --git a/packages/opencode/src/server/server.ts b/packages/opencode/src/server/server.ts index c4f2a931b0..02ec7356ec 100644 --- a/packages/opencode/src/server/server.ts +++ b/packages/opencode/src/server/server.ts @@ -1,24 +1,14 @@ -import { Log } from "../util/log" -import { describeRoute, generateSpecs, validator, resolver, openAPIRouteHandler } from "hono-openapi" +import { generateSpecs } from "hono-openapi" import { Hono } from "hono" -import { compress } from "hono/compress" -import { createNodeWebSocket } from "@hono/node-ws" -import { cors } from "hono/cors" -import { basicAuth } from "hono/basic-auth" -import type { UpgradeWebSocket } from "hono/ws" -import z from "zod" -import { Auth } from "../auth" -import { Flag } from "../flag/flag" -import { ProviderID } from "../provider/schema" -import { WorkspaceRouterMiddleware } from "./router" -import { errors } from "./error" -import { GlobalRoutes } from "./routes/global" +import { adapter } from "#hono" import { MDNS } from "./mdns" import { lazy } from "@/util/lazy" -import { errorHandler } from "./middleware" +import { AuthMiddleware, CompressionMiddleware, CorsMiddleware, ErrorMiddleware, LoggerMiddleware } from "./middleware" import { InstanceRoutes } from "./instance" import { initProjectors } from "./projectors" -import { createAdaptorServer, type ServerType } from "@hono/node-server" +import { Log } from "@/util/log" +import { ControlPlaneRoutes } from "./control" +import { UIRoutes } from "./ui" // @ts-ignore This global is needed to prevent ai-sdk from logging warnings to stdout https://github.com/vercel/ai/blob/2dc67e0ef538307f21368db32d5a12345d98831b/packages/ai/src/logger/log-warnings.ts#L85 globalThis.AI_SDK_LOG_WARNINGS = false @@ -26,6 +16,8 @@ globalThis.AI_SDK_LOG_WARNINGS = false initProjectors() export namespace Server { + const log = Log.create({ service: "server" }) + export type Listener = { hostname: string port: number @@ -33,231 +25,31 @@ export namespace Server { stop: (close?: boolean) => Promise } - const log = Log.create({ service: "server" }) - const zipped = compress() - - const skipCompress = (path: string, method: string) => { - if (path === "/event" || path === "/global/event" || path === "/global/sync-event") return true - if (method === "POST" && /\/session\/[^/]+\/(message|prompt_async)$/.test(path)) return true - return false - } - export const Default = lazy(() => create({})) - export function ControlPlaneRoutes(upgrade: UpgradeWebSocket, app = new Hono(), opts?: { cors?: string[] }): Hono { - return app - .onError(errorHandler(log)) - .use((c, next) => { - // Allow CORS preflight requests to succeed without auth. - // Browser clients sending Authorization headers will preflight with OPTIONS. - if (c.req.method === "OPTIONS") return next() - const password = Flag.OPENCODE_SERVER_PASSWORD - if (!password) return next() - const username = Flag.OPENCODE_SERVER_USERNAME ?? "opencode" - - if (c.req.query("auth_token")) c.req.raw.headers.set("authorization", `Basic ${c.req.query("auth_token")}`) - - return basicAuth({ username, password })(c, next) - }) - .use(async (c, next) => { - const skip = c.req.path === "/log" - if (!skip) { - log.info("request", { - method: c.req.method, - path: c.req.path, - }) - } - const timer = log.time("request", { - method: c.req.method, - path: c.req.path, - }) - await next() - if (!skip) timer.stop() - }) - .use( - cors({ - maxAge: 86_400, - origin(input) { - if (!input) return - - if (input.startsWith("http://localhost:")) return input - if (input.startsWith("http://127.0.0.1:")) return input - if ( - input === "tauri://localhost" || - input === "http://tauri.localhost" || - input === "https://tauri.localhost" - ) - return input - - if (/^https:\/\/([a-z0-9-]+\.)*opencode\.ai$/.test(input)) return input - if (opts?.cors?.includes(input)) return input - }, - }), - ) - .use((c, next) => { - if (skipCompress(c.req.path, c.req.method)) return next() - return zipped(c, next) - }) - .route("/global", GlobalRoutes()) - .put( - "/auth/:providerID", - describeRoute({ - summary: "Set auth credentials", - description: "Set authentication credentials", - operationId: "auth.set", - responses: { - 200: { - description: "Successfully set authentication credentials", - content: { - "application/json": { - schema: resolver(z.boolean()), - }, - }, - }, - ...errors(400), - }, - }), - validator( - "param", - z.object({ - providerID: ProviderID.zod, - }), - ), - validator("json", Auth.Info.zod), - async (c) => { - const providerID = c.req.valid("param").providerID - const info = c.req.valid("json") - await Auth.set(providerID, info) - return c.json(true) - }, - ) - .delete( - "/auth/:providerID", - describeRoute({ - summary: "Remove auth credentials", - description: "Remove authentication credentials", - operationId: "auth.remove", - responses: { - 200: { - description: "Successfully removed authentication credentials", - content: { - "application/json": { - schema: resolver(z.boolean()), - }, - }, - }, - ...errors(400), - }, - }), - validator( - "param", - z.object({ - providerID: ProviderID.zod, - }), - ), - async (c) => { - const providerID = c.req.valid("param").providerID - await Auth.remove(providerID) - return c.json(true) - }, - ) - .get( - "/doc", - openAPIRouteHandler(app, { - documentation: { - info: { - title: "opencode", - version: "0.0.3", - description: "opencode api", - }, - openapi: "3.1.1", - }, - }), - ) - .use( - validator( - "query", - z.object({ - directory: z.string().optional(), - workspace: z.string().optional(), - }), - ), - ) - .post( - "/log", - describeRoute({ - summary: "Write log", - description: "Write a log entry to the server logs with specified level and metadata.", - operationId: "app.log", - responses: { - 200: { - description: "Log entry written successfully", - content: { - "application/json": { - schema: resolver(z.boolean()), - }, - }, - }, - ...errors(400), - }, - }), - validator( - "json", - z.object({ - service: z.string().meta({ description: "Service name for the log entry" }), - level: z.enum(["debug", "info", "error", "warn"]).meta({ description: "Log level" }), - message: z.string().meta({ description: "Log message" }), - extra: z - .record(z.string(), z.any()) - .optional() - .meta({ description: "Additional metadata for the log entry" }), - }), - ), - async (c) => { - const { service, level, message, extra } = c.req.valid("json") - const logger = Log.create({ service }) - - switch (level) { - case "debug": - logger.debug(message, extra) - break - case "info": - logger.info(message, extra) - break - case "error": - logger.error(message, extra) - break - case "warn": - logger.warn(message, extra) - break - } - - return c.json(true) - }, - ) - .use(WorkspaceRouterMiddleware(upgrade)) - } - function create(opts: { cors?: string[] }) { const app = new Hono() - const ws = createNodeWebSocket({ app }) + const runtime = adapter.create(app) return { - app: ControlPlaneRoutes(ws.upgradeWebSocket, app, opts), - ws, + app: app + .onError(ErrorMiddleware) + .use(AuthMiddleware) + .use(LoggerMiddleware) + .use(CompressionMiddleware) + .use(CorsMiddleware(opts)) + .route("/", ControlPlaneRoutes()) + .route("/", InstanceRoutes(runtime.upgradeWebSocket)) + .route("/", UIRoutes()), + runtime, } } - export function createApp(opts: { cors?: string[] }) { - return create(opts).app - } - export async function openapi() { // Build a fresh app with all routes registered directly so // hono-openapi can see describeRoute metadata (`.route()` wraps // handlers when the sub-app has a custom errorHandler, which // strips the metadata symbol). - const { app, ws } = create({}) - InstanceRoutes(ws.upgradeWebSocket, app) + const { app } = create({}) const result = await generateSpecs(app, { documentation: { info: { @@ -281,46 +73,21 @@ export namespace Server { cors?: string[] }): Promise { const built = create(opts) - const start = (port: number) => - new Promise((resolve, reject) => { - const server = createAdaptorServer({ fetch: built.app.fetch }) - built.ws.injectWebSocket(server) - const fail = (err: Error) => { - cleanup() - reject(err) - } - const ready = () => { - cleanup() - resolve(server) - } - const cleanup = () => { - server.off("error", fail) - server.off("listening", ready) - } - server.once("error", fail) - server.once("listening", ready) - server.listen(port, opts.hostname) - }) - - const server = opts.port === 0 ? await start(4096).catch(() => start(0)) : await start(opts.port) - const addr = server.address() - if (!addr || typeof addr === "string") { - throw new Error(`Failed to resolve server address for port ${opts.port}`) - } + const server = await built.runtime.listen(opts) const next = new URL("http://localhost") next.hostname = opts.hostname - next.port = String(addr.port) + next.port = String(server.port) url = next const mdns = opts.mdns && - addr.port && + server.port && opts.hostname !== "127.0.0.1" && opts.hostname !== "localhost" && opts.hostname !== "::1" if (mdns) { - MDNS.publish(addr.port, opts.mdnsDomain) + MDNS.publish(server.port, opts.mdnsDomain) } else if (opts.mdns) { log.warn("mDNS enabled but hostname is loopback; skipping mDNS publish") } @@ -328,27 +95,13 @@ export namespace Server { let closing: Promise | undefined return { hostname: opts.hostname, - port: addr.port, + port: server.port, url: next, stop(close?: boolean) { - closing ??= new Promise((resolve, reject) => { + closing ??= (async () => { if (mdns) MDNS.unpublish() - server.close((err) => { - if (err) { - reject(err) - return - } - resolve() - }) - if (close) { - if ("closeAllConnections" in server && typeof server.closeAllConnections === "function") { - server.closeAllConnections() - } - if ("closeIdleConnections" in server && typeof server.closeIdleConnections === "function") { - server.closeIdleConnections() - } - } - }) + await server.stop(close) + })() return closing }, } diff --git a/packages/opencode/src/server/ui/index.ts b/packages/opencode/src/server/ui/index.ts new file mode 100644 index 0000000000..afe6e510f1 --- /dev/null +++ b/packages/opencode/src/server/ui/index.ts @@ -0,0 +1,55 @@ +import { Flag } from "@/flag/flag" +import { Hono } from "hono" +import { proxy } from "hono/proxy" +import { getMimeType } from "hono/utils/mime" +import { createHash } from "node:crypto" +import fs from "node:fs/promises" + +const embeddedUIPromise = Flag.OPENCODE_DISABLE_EMBEDDED_WEB_UI + ? Promise.resolve(null) + : // @ts-expect-error - generated file at build time + import("opencode-web-ui.gen.ts").then((module) => module.default as Record).catch(() => null) + +const DEFAULT_CSP = + "default-src 'self'; script-src 'self' 'wasm-unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; font-src 'self' data:; media-src 'self' data:; connect-src 'self' data:" + +const csp = (hash = "") => + `default-src 'self'; script-src 'self' 'wasm-unsafe-eval'${hash ? ` 'sha256-${hash}'` : ""}; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; font-src 'self' data:; media-src 'self' data:; connect-src 'self' data:` + +export const UIRoutes = (): Hono => + new Hono().all("/*", async (c) => { + const embeddedWebUI = await embeddedUIPromise + const path = c.req.path + + if (embeddedWebUI) { + const match = embeddedWebUI[path.replace(/^\//, "")] ?? embeddedWebUI["index.html"] ?? null + if (!match) return c.json({ error: "Not Found" }, 404) + + if (await fs.exists(match)) { + const mime = getMimeType(match) ?? "text/plain" + c.header("Content-Type", mime) + if (mime.startsWith("text/html")) { + c.header("Content-Security-Policy", DEFAULT_CSP) + } + return c.body(new Uint8Array(await fs.readFile(match))) + } else { + return c.json({ error: "Not Found" }, 404) + } + } else { + const response = await proxy(`https://app.opencode.ai${path}`, { + ...c.req, + headers: { + ...c.req.raw.headers, + host: "app.opencode.ai", + }, + }) + const match = response.headers.get("content-type")?.includes("text/html") + ? (await response.clone().text()).match( + /]*\bsrc\s*=)[^>]*\bid=(['"])oc-theme-preload-script\1[^>]*>([\s\S]*?)<\/script>/i, + ) + : undefined + const hash = match ? createHash("sha256").update(match[2]).digest("base64") : "" + response.headers.set("Content-Security-Policy", csp(hash)) + return response + } + }) diff --git a/packages/opencode/src/session/compaction.ts b/packages/opencode/src/session/compaction.ts index 937aa71325..b280971c76 100644 --- a/packages/opencode/src/session/compaction.ts +++ b/packages/opencode/src/session/compaction.ts @@ -15,7 +15,7 @@ import { Plugin } from "@/plugin" import { Config } from "@/config/config" import { NotFoundError } from "@/storage/db" import { ModelID, ProviderID } from "@/provider/schema" -import { Effect, Layer, ServiceMap } from "effect" +import { Effect, Layer, Context } from "effect" import { makeRuntime } from "@/effect/run-service" import { InstanceState } from "@/effect/instance-state" import { isOverflow as overflow } from "./overflow" @@ -58,7 +58,7 @@ export namespace SessionCompaction { }) => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/SessionCompaction") {} + export class Service extends Context.Service()("@opencode/SessionCompaction") {} export const layer: Layer.Layer< Service, diff --git a/packages/opencode/src/session/index.ts b/packages/opencode/src/session/index.ts index e57807e31a..70deb95a4b 100644 --- a/packages/opencode/src/session/index.ts +++ b/packages/opencode/src/session/index.ts @@ -29,7 +29,7 @@ import type { Provider } from "@/provider/provider" import { Permission } from "@/permission" import { Global } from "@/global" import type { LanguageModelV2Usage } from "@ai-sdk/provider" -import { Effect, Layer, ServiceMap } from "effect" +import { Effect, Layer, Option, Context } from "effect" import { makeRuntime } from "@/effect/run-service" export namespace Session { @@ -352,19 +352,25 @@ export namespace Session { field: string delta: string }) => Effect.Effect + /** Finds the first message matching the predicate, searching newest-first. */ + readonly findMessage: ( + sessionID: SessionID, + predicate: (msg: MessageV2.WithParts) => boolean, + ) => Effect.Effect> } - export class Service extends ServiceMap.Service()("@opencode/Session") {} + export class Service extends Context.Service()("@opencode/Session") {} type Patch = z.infer["info"] const db = (fn: (d: Parameters[0] extends (trx: infer D) => any ? D : never) => T) => Effect.sync(() => Database.use(fn)) - export const layer: Layer.Layer = Layer.effect( + export const layer: Layer.Layer = Layer.effect( Service, Effect.gen(function* () { const bus = yield* Bus.Service + const storage = yield* Storage.Service const createNext = Effect.fn("Session.createNext")(function* (input: { id?: SessionID @@ -585,9 +591,9 @@ export namespace Session { }) const diff = Effect.fn("Session.diff")(function* (sessionID: SessionID) { - return yield* Effect.tryPromise(() => Storage.read(["session_diff", sessionID])).pipe( - Effect.orElseSucceed((): Snapshot.FileDiff[] => []), - ) + return yield* storage + .read(["session_diff", sessionID]) + .pipe(Effect.orElseSucceed((): Snapshot.FileDiff[] => [])) }) const messages = Effect.fn("Session.messages")(function* (input: { sessionID: SessionID; limit?: number }) { @@ -635,6 +641,17 @@ export namespace Session { yield* bus.publish(MessageV2.Event.PartDelta, input) }) + /** Finds the first message matching the predicate, searching newest-first. */ + const findMessage = Effect.fn("Session.findMessage")(function* ( + sessionID: SessionID, + predicate: (msg: MessageV2.WithParts) => boolean, + ) { + for (const item of MessageV2.stream(sessionID)) { + if (predicate(item)) return Option.some(item) + } + return Option.none() + }) + return Service.of({ create, fork, @@ -656,11 +673,12 @@ export namespace Session { updatePart, getPart, updatePartDelta, + findMessage, }) }), ) - export const defaultLayer = layer.pipe(Layer.provide(Bus.layer)) + export const defaultLayer = layer.pipe(Layer.provide(Bus.layer), Layer.provide(Storage.defaultLayer)) const { runPromise } = makeRuntime(Service, defaultLayer) @@ -690,6 +708,11 @@ export namespace Session { runPromise((svc) => svc.setArchived(input)), ) + export const setPermission = fn( + z.object({ sessionID: SessionID.zod, permission: Permission.Ruleset }), + (input) => runPromise((svc) => svc.setPermission(input)), + ) + export const setRevert = fn( z.object({ sessionID: SessionID.zod, revert: Info.shape.revert, summary: Info.shape.summary }), (input) => @@ -832,15 +855,4 @@ export namespace Session { MessageV2.Part.parse(part) return runPromise((svc) => svc.updatePart(part)) } - - export const updatePartDelta = fn( - z.object({ - sessionID: SessionID.zod, - messageID: MessageID.zod, - partID: PartID.zod, - field: z.string(), - delta: z.string(), - }), - (input) => runPromise((svc) => svc.updatePartDelta(input)), - ) } diff --git a/packages/opencode/src/session/instruction.ts b/packages/opencode/src/session/instruction.ts index fc90093e99..9b01c9524f 100644 --- a/packages/opencode/src/session/instruction.ts +++ b/packages/opencode/src/session/instruction.ts @@ -1,6 +1,6 @@ import os from "os" import path from "path" -import { Effect, Layer, ServiceMap } from "effect" +import { Effect, Layer, Context } from "effect" import { FetchHttpClient, HttpClient, HttpClientRequest } from "effect/unstable/http" import { Config } from "@/config/config" import { InstanceState } from "@/effect/instance-state" @@ -64,7 +64,7 @@ export namespace Instruction { ) => Effect.Effect<{ filepath: string; content: string }[], AppFileSystem.Error> } - export class Service extends ServiceMap.Service()("@opencode/Instruction") {} + export class Service extends Context.Service()("@opencode/Instruction") {} export const layer: Layer.Layer = Layer.effect( diff --git a/packages/opencode/src/session/llm.ts b/packages/opencode/src/session/llm.ts index 22fc9b1d55..f6e5c9a3f2 100644 --- a/packages/opencode/src/session/llm.ts +++ b/packages/opencode/src/session/llm.ts @@ -1,6 +1,6 @@ import { Provider } from "@/provider/provider" import { Log } from "@/util/log" -import { Cause, Effect, Layer, Record, ServiceMap } from "effect" +import { Cause, Effect, Layer, Record, Context } from "effect" import * as Queue from "effect/Queue" import * as Stream from "effect/Stream" import { streamText, wrapLanguageModel, type ModelMessage, type Tool, tool, jsonSchema } from "ai" @@ -51,7 +51,7 @@ export namespace LLM { readonly stream: (input: StreamInput) => Stream.Stream } - export class Service extends ServiceMap.Service()("@opencode/LLM") {} + export class Service extends Context.Service()("@opencode/LLM") {} export const layer = Layer.effect( Service, diff --git a/packages/opencode/src/session/message-v2.ts b/packages/opencode/src/session/message-v2.ts index 61c159646d..aa42e1c1dc 100644 --- a/packages/opencode/src/session/message-v2.ts +++ b/packages/opencode/src/session/message-v2.ts @@ -15,6 +15,7 @@ import type { SystemError } from "bun" import type { Provider } from "@/provider/provider" import { ModelID, ProviderID } from "@/provider/schema" import { Effect } from "effect" +import { EffectLogger } from "@/effect/logger" /** Error shape thrown by Bun's fetch() when gzip/br decompression fails mid-stream */ interface FetchDecompressionError extends Error { @@ -839,7 +840,7 @@ export namespace MessageV2 { model: Provider.Model, options?: { stripMedia?: boolean }, ): Promise { - return Effect.runPromise(toModelMessagesEffect(input, model, options)) + return Effect.runPromise(toModelMessagesEffect(input, model, options).pipe(Effect.provide(EffectLogger.layer))) } export function page(input: { sessionID: SessionID; limit: number; before?: string }) { diff --git a/packages/opencode/src/session/processor.ts b/packages/opencode/src/session/processor.ts index aba155be70..be0977c1dd 100644 --- a/packages/opencode/src/session/processor.ts +++ b/packages/opencode/src/session/processor.ts @@ -1,4 +1,4 @@ -import { Cause, Deferred, Effect, Layer, ServiceMap } from "effect" +import { Cause, Deferred, Effect, Layer, Context } from "effect" import * as Stream from "effect/Stream" import { Agent } from "@/agent/agent" import { Bus } from "@/bus" @@ -6,7 +6,7 @@ import { Config } from "@/config/config" import { Permission } from "@/permission" import { Plugin } from "@/plugin" import { Snapshot } from "@/snapshot" -import { Log } from "@/util/log" +import { EffectLogger } from "@/effect/logger" import { Session } from "." import { LLM } from "./llm" import { MessageV2 } from "./message-v2" @@ -23,7 +23,7 @@ import { isRecord } from "@/util/record" export namespace SessionProcessor { const DOOM_LOOP_THRESHOLD = 3 - const log = Log.create({ service: "session.processor" }) + const log = EffectLogger.create({ service: "session.processor" }) export type Result = "compact" | "stop" | "continue" @@ -76,7 +76,7 @@ export namespace SessionProcessor { type StreamEvent = Event - export class Service extends ServiceMap.Service()("@opencode/SessionProcessor") {} + export class Service extends Context.Service()("@opencode/SessionProcessor") {} export const layer: Layer.Layer< Service, @@ -121,6 +121,7 @@ export namespace SessionProcessor { reasoningMap: {}, } let aborted = false + const slog = log.with({ sessionID: input.sessionID, messageID: input.assistantMessage.id }) const parse = (e: unknown) => MessageV2.fromError(e, { @@ -448,7 +449,7 @@ export namespace SessionProcessor { return default: - log.info("unhandled", { ...value }) + yield* slog.info("unhandled", { event: value.type, value }) return } }) @@ -514,7 +515,7 @@ export namespace SessionProcessor { }) const halt = Effect.fn("SessionProcessor.halt")(function* (e: unknown) { - log.error("process", { error: e, stack: e instanceof Error ? e.stack : undefined }) + yield* slog.error("process", { error: errorMessage(e), stack: e instanceof Error ? e.stack : undefined }) const error = parse(e) if (MessageV2.ContextOverflowError.isInstance(error)) { ctx.needsCompaction = true @@ -530,7 +531,7 @@ export namespace SessionProcessor { }) const process = Effect.fn("SessionProcessor.process")(function* (streamInput: LLM.StreamInput) { - log.info("process") + yield* slog.info("process") ctx.needsCompaction = false ctx.shouldBreak = (yield* config.get()).experimental?.continue_loop_on_deny !== true diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts index fe54a25abb..97a37865df 100644 --- a/packages/opencode/src/session/prompt.ts +++ b/packages/opencode/src/session/prompt.ts @@ -43,7 +43,8 @@ import { AppFileSystem } from "@/filesystem" import { Truncate } from "@/tool/truncate" import { decodeDataUrl } from "@/util/data-url" import { Process } from "@/util/process" -import { Cause, Effect, Exit, Layer, Option, Scope, ServiceMap } from "effect" +import { Cause, Effect, Exit, Layer, Option, Scope, Context } from "effect" +import { EffectLogger } from "@/effect/logger" import { InstanceState } from "@/effect/instance-state" import { makeRuntime } from "@/effect/run-service" import { TaskTool, type TaskPromptOps } from "@/tool/task" @@ -64,6 +65,7 @@ const STRUCTURED_OUTPUT_SYSTEM_PROMPT = `IMPORTANT: The user has requested struc export namespace SessionPrompt { const log = Log.create({ service: "session.prompt" }) + const elog = EffectLogger.create({ service: "session.prompt" }) export interface Interface { readonly cancel: (sessionID: SessionID) => Effect.Effect @@ -74,7 +76,7 @@ export namespace SessionPrompt { readonly resolvePromptParts: (template: string) => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/SessionPrompt") {} + export class Service extends Context.Service()("@opencode/SessionPrompt") {} export const layer = Layer.effect( Service, @@ -100,9 +102,17 @@ export namespace SessionPrompt { const instruction = yield* Instruction.Service const state = yield* SessionRunState.Service const revert = yield* SessionRevert.Service + const sys = yield* SystemPrompt.Service + const llm = yield* LLM.Service + + const run = { + promise: (effect: Effect.Effect) => + Effect.runPromise(effect.pipe(Effect.provide(EffectLogger.layer))), + fork: (effect: Effect.Effect) => Effect.runFork(effect.pipe(Effect.provide(EffectLogger.layer))), + } const cancel = Effect.fn("SessionPrompt.cancel")(function* (sessionID: SessionID) { - log.info("cancel", { sessionID }) + yield* elog.info("cancel", { sessionID }) yield* state.cancel(sessionID) }) @@ -172,21 +182,24 @@ export namespace SessionPrompt { const msgs = onlySubtasks ? [{ role: "user" as const, content: subtasks.map((p) => p.prompt).join("\n") }] : yield* MessageV2.toModelMessagesEffect(context, mdl) - const text = yield* Effect.promise(async (signal) => { - const result = await LLM.stream({ + const text = yield* llm + .stream({ agent: ag, user: firstInfo, system: [], small: true, tools: {}, model: mdl, - abort: signal, sessionID: input.session.id, retries: 2, messages: [{ role: "user", content: "Generate a title for this conversation:\n" }, ...msgs], }) - return result.text - }) + .pipe( + Stream.filter((e): e is Extract => e.type === "text-delta"), + Stream.map((e) => e.text), + Stream.mkString, + Effect.orDie, + ) const cleaned = text .replace(/[\s\S]*?<\/think>\s*/g, "") .split("\n") @@ -196,11 +209,7 @@ export namespace SessionPrompt { const t = cleaned.length > 100 ? cleaned.substring(0, 97) + "..." : cleaned yield* sessions .setTitle({ sessionID: input.session.id, title: t }) - .pipe( - Effect.catchCause((cause) => - Effect.sync(() => log.error("failed to generate title", { error: Cause.squash(cause) })), - ), - ) + .pipe(Effect.catchCause((cause) => elog.error("failed to generate title", { error: Cause.squash(cause) }))) }) const insertReminders = Effect.fn("SessionPrompt.insertReminders")(function* (input: { @@ -360,30 +369,28 @@ NOTE: At any point in time through this workflow you should feel free to ask the agent: input.agent.name, messages: input.messages, metadata: (val) => - Effect.runPromise( - input.processor.updateToolCall(options.toolCallId, (match) => { - if (!["running", "pending"].includes(match.state.status)) return match - return { - ...match, - state: { - title: val.title, - metadata: val.metadata, - status: "running", - input: args, - time: { start: Date.now() }, - }, - } - }), - ), + input.processor.updateToolCall(options.toolCallId, (match) => { + if (!["running", "pending"].includes(match.state.status)) return match + return { + ...match, + state: { + title: val.title, + metadata: val.metadata, + status: "running", + input: args, + time: { start: Date.now() }, + }, + } + }), ask: (req) => - Effect.runPromise( - permission.ask({ + permission + .ask({ ...req, sessionID: input.session.id, tool: { messageID: input.processor.message.id, callID: options.toolCallId }, ruleset: Permission.merge(input.agent.permission, input.session.permission ?? []), - }), - ), + }) + .pipe(Effect.orDie), }) for (const item of yield* registry.tools({ @@ -397,7 +404,7 @@ NOTE: At any point in time through this workflow you should feel free to ask the description: item.description, inputSchema: jsonSchema(schema as any), execute(args, options) { - return Effect.runPromise( + return run.promise( Effect.gen(function* () { const ctx = context(args, options) yield* plugin.trigger( @@ -405,7 +412,7 @@ NOTE: At any point in time through this workflow you should feel free to ask the { tool: item.id, sessionID: ctx.sessionID, callID: ctx.callID }, { args }, ) - const result = yield* Effect.promise(() => item.execute(args, ctx)) + const result = yield* item.execute(args, ctx) const output = { ...result, attachments: result.attachments?.map((attachment) => ({ @@ -438,7 +445,7 @@ NOTE: At any point in time through this workflow you should feel free to ask the const transformed = ProviderTransform.schema(input.model, schema) item.inputSchema = jsonSchema(transformed) item.execute = (args, opts) => - Effect.runPromise( + run.promise( Effect.gen(function* () { const ctx = context(args, opts) yield* plugin.trigger( @@ -446,7 +453,7 @@ NOTE: At any point in time through this workflow you should feel free to ask the { tool: key, sessionID: ctx.sessionID, callID: opts.toolCallId }, { args }, ) - yield* Effect.promise(() => ctx.ask({ permission: key, metadata: {}, patterns: ["*"], always: ["*"] })) + yield* ctx.ask({ permission: key, metadata: {}, patterns: ["*"], always: ["*"] }) const result: Awaited>> = yield* Effect.promise(() => execute(args, opts), ) @@ -578,63 +585,61 @@ NOTE: At any point in time through this workflow you should feel free to ask the } let error: Error | undefined - const result = yield* Effect.promise((signal) => - taskTool - .execute(taskArgs, { - agent: task.agent, - messageID: assistantMessage.id, - sessionID, - abort: signal, - callID: part.callID, - extra: { bypassAgentCheck: true, promptOps }, - messages: msgs, - metadata(val: { title?: string; metadata?: Record }) { - return Effect.runPromise( - Effect.gen(function* () { - part = yield* sessions.updatePart({ - ...part, - type: "tool", - state: { ...part.state, ...val }, - } satisfies MessageV2.ToolPart) - }), - ) - }, - ask(req: any) { - return Effect.runPromise( - permission.ask({ - ...req, - sessionID, - ruleset: Permission.merge(taskAgent.permission, session.permission ?? []), - }), - ) - }, - }) - .catch((e) => { - error = e instanceof Error ? e : new Error(String(e)) - log.error("subtask execution failed", { error, agent: task.agent, description: task.description }) - return undefined - }), - ).pipe( - Effect.onInterrupt(() => - Effect.gen(function* () { - assistantMessage.finish = "tool-calls" - assistantMessage.time.completed = Date.now() - yield* sessions.updateMessage(assistantMessage) - if (part.state.status === "running") { - yield* sessions.updatePart({ + const taskAbort = new AbortController() + const result = yield* taskTool + .execute(taskArgs, { + agent: task.agent, + messageID: assistantMessage.id, + sessionID, + abort: taskAbort.signal, + callID: part.callID, + extra: { bypassAgentCheck: true, promptOps }, + messages: msgs, + metadata: (val: { title?: string; metadata?: Record }) => + Effect.gen(function* () { + part = yield* sessions.updatePart({ ...part, - state: { - status: "error", - error: "Cancelled", - time: { start: part.state.time.start, end: Date.now() }, - metadata: part.state.metadata, - input: part.state.input, - }, + type: "tool", + state: { ...part.state, ...val }, } satisfies MessageV2.ToolPart) - } + }), + ask: (req: any) => + permission + .ask({ + ...req, + sessionID, + ruleset: Permission.merge(taskAgent.permission, session.permission ?? []), + }) + .pipe(Effect.orDie), + }) + .pipe( + Effect.catchCause((cause) => { + const defect = Cause.squash(cause) + error = defect instanceof Error ? defect : new Error(String(defect)) + log.error("subtask execution failed", { error, agent: task.agent, description: task.description }) + return Effect.void }), - ), - ) + Effect.onInterrupt(() => + Effect.gen(function* () { + taskAbort.abort() + assistantMessage.finish = "tool-calls" + assistantMessage.time.completed = Date.now() + yield* sessions.updateMessage(assistantMessage) + if (part.state.status === "running") { + yield* sessions.updatePart({ + ...part, + state: { + status: "error", + error: "Cancelled", + time: { start: part.state.time.start, end: Date.now() }, + metadata: part.state.metadata, + input: part.state.input, + }, + } satisfies MessageV2.ToolPart) + } + }), + ), + ) const attachments = result?.attachments?.map((attachment) => ({ ...attachment, @@ -857,7 +862,7 @@ NOTE: At any point in time through this workflow you should feel free to ask the output += chunk if (part.state.status === "running") { part.state.metadata = { output, description: "" } - void Effect.runFork(sessions.updatePart(part)) + void run.fork(sessions.updatePart(part)) } }), ) @@ -902,12 +907,8 @@ NOTE: At any point in time through this workflow you should feel free to ask the }) const lastModel = Effect.fnUntraced(function* (sessionID: SessionID) { - const model = yield* Effect.promise(async () => { - for await (const item of MessageV2.stream(sessionID)) { - if (item.info.role === "user" && item.info.model) return item.info.model - } - }) - if (model) return model + const match = yield* sessions.findMessage(sessionID, (m) => m.info.role === "user" && !!m.info.model) + if (Option.isSome(match) && match.value.info.role === "user") return match.value.info.model return yield* provider.defaultModel() }) @@ -1039,19 +1040,21 @@ NOTE: At any point in time through this workflow you should feel free to ask the if (yield* fsys.isDir(filepath)) part.mime = "application/x-directory" const { read } = yield* registry.named() - const execRead = (args: Parameters[0], extra?: Tool.Context["extra"]) => - Effect.promise((signal: AbortSignal) => - read.execute(args, { + const execRead = (args: Parameters[0], extra?: Tool.Context["extra"]) => { + const controller = new AbortController() + return read + .execute(args, { sessionID: input.sessionID, - abort: signal, + abort: controller.signal, agent: input.agent!, messageID: info.id, extra: { bypassCwdCheck: true, ...extra }, messages: [], - metadata: async () => {}, - ask: async () => {}, - }), - ) + metadata: () => Effect.void, + ask: () => Effect.void, + }) + .pipe(Effect.onInterrupt(() => Effect.sync(() => controller.abort()))) + } if (part.mime === "text/plain") { let offset: number | undefined @@ -1288,27 +1291,25 @@ NOTE: At any point in time through this workflow you should feel free to ask the }, ) - const lastAssistant = (sessionID: SessionID) => - Effect.promise(async () => { - let latest: MessageV2.WithParts | undefined - for await (const item of MessageV2.stream(sessionID)) { - latest ??= item - if (item.info.role !== "user") return item - } - if (latest) return latest - throw new Error("Impossible") - }) + const lastAssistant = Effect.fnUntraced(function* (sessionID: SessionID) { + const match = yield* sessions.findMessage(sessionID, (m) => m.info.role !== "user") + if (Option.isSome(match)) return match.value + const msgs = yield* sessions.messages({ sessionID, limit: 1 }) + if (msgs.length > 0) return msgs[0] + throw new Error("Impossible") + }) const runLoop: (sessionID: SessionID) => Effect.Effect = Effect.fn("SessionPrompt.run")( function* (sessionID: SessionID) { const ctx = yield* InstanceState.context + const slog = elog.with({ sessionID }) let structured: unknown | undefined let step = 0 const session = yield* sessions.get(sessionID) while (true) { yield* status.set(sessionID, { type: "busy" }) - log.info("loop", { step, sessionID }) + yield* slog.info("loop", { step }) let msgs = yield* MessageV2.filterCompactedEffect(sessionID) @@ -1344,7 +1345,7 @@ NOTE: At any point in time through this workflow you should feel free to ask the !hasToolCalls && lastUser.id < lastAssistant.id ) { - log.info("exiting loop", { sessionID }) + yield* slog.info("exiting loop") break } @@ -1466,8 +1467,8 @@ NOTE: At any point in time through this workflow you should feel free to ask the yield* plugin.trigger("experimental.chat.messages.transform", {}, { messages: msgs }) const [skills, env, instructions, modelMsgs] = yield* Effect.all([ - Effect.promise(() => SystemPrompt.skills(agent)), - Effect.promise(() => SystemPrompt.environment(model)), + sys.skills(agent), + Effect.sync(() => sys.environment(model)), instruction.system().pipe(Effect.orDie), MessageV2.toModelMessagesEffect(msgs, model), ]) @@ -1540,7 +1541,7 @@ NOTE: At any point in time through this workflow you should feel free to ask the ) const command = Effect.fn("SessionPrompt.command")(function* (input: CommandInput) { - log.info("command", input) + yield* elog.info("command", { sessionID: input.sessionID, command: input.command, agent: input.agent }) const cmd = yield* commands.get(input.command) if (!cmd) { const available = (yield* commands.list()).map((c) => c.name) @@ -1656,9 +1657,9 @@ NOTE: At any point in time through this workflow you should feel free to ask the }) const promptOps: TaskPromptOps = { - cancel: (sessionID) => Effect.runFork(cancel(sessionID)), - resolvePromptParts: (template) => Effect.runPromise(resolvePromptParts(template)), - prompt: (input) => Effect.runPromise(prompt(input)), + cancel: (sessionID) => run.fork(cancel(sessionID)), + resolvePromptParts: (template) => resolvePromptParts(template), + prompt: (input) => prompt(input), } return Service.of({ @@ -1691,9 +1692,15 @@ NOTE: At any point in time through this workflow you should feel free to ask the Layer.provide(Plugin.defaultLayer), Layer.provide(Session.defaultLayer), Layer.provide(SessionRevert.defaultLayer), - Layer.provide(Agent.defaultLayer), - Layer.provide(Bus.layer), - Layer.provide(CrossSpawnSpawner.defaultLayer), + Layer.provide( + Layer.mergeAll( + Agent.defaultLayer, + SystemPrompt.defaultLayer, + LLM.defaultLayer, + Bus.layer, + CrossSpawnSpawner.defaultLayer, + ), + ), ), ) const { runPromise } = makeRuntime(Service, defaultLayer) diff --git a/packages/opencode/src/session/revert.ts b/packages/opencode/src/session/revert.ts index 1216362ca1..416b8555de 100644 --- a/packages/opencode/src/session/revert.ts +++ b/packages/opencode/src/session/revert.ts @@ -1,5 +1,5 @@ import z from "zod" -import { Effect, Layer, ServiceMap } from "effect" +import { Effect, Layer, Context } from "effect" import { makeRuntime } from "@/effect/run-service" import { Bus } from "../bus" import { Snapshot } from "../snapshot" @@ -29,7 +29,7 @@ export namespace SessionRevert { readonly cleanup: (session: Session.Info) => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/SessionRevert") {} + export class Service extends Context.Service()("@opencode/SessionRevert") {} export const layer = Layer.effect( Service, diff --git a/packages/opencode/src/session/run-state.ts b/packages/opencode/src/session/run-state.ts index 3c2022bd00..2c570f5208 100644 --- a/packages/opencode/src/session/run-state.ts +++ b/packages/opencode/src/session/run-state.ts @@ -1,7 +1,7 @@ import { InstanceState } from "@/effect/instance-state" import { Runner } from "@/effect/runner" import { makeRuntime } from "@/effect/run-service" -import { Effect, Layer, Scope, ServiceMap } from "effect" +import { Effect, Layer, Scope, Context } from "effect" import { Session } from "." import { MessageV2 } from "./message-v2" import { SessionID } from "./schema" @@ -23,7 +23,7 @@ export namespace SessionRunState { ) => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/SessionRunState") {} + export class Service extends Context.Service()("@opencode/SessionRunState") {} export const layer = Layer.effect( Service, diff --git a/packages/opencode/src/session/schema.ts b/packages/opencode/src/session/schema.ts index 540643c491..856ab31142 100644 --- a/packages/opencode/src/session/schema.ts +++ b/packages/opencode/src/session/schema.ts @@ -7,8 +7,7 @@ import { withStatics } from "@/util/schema" export const SessionID = Schema.String.pipe( Schema.brand("SessionID"), withStatics((s) => ({ - make: (id: string) => s.makeUnsafe(id), - descending: (id?: string) => s.makeUnsafe(Identifier.descending("session", id)), + descending: (id?: string) => s.make(Identifier.descending("session", id)), zod: Identifier.schema("session").pipe(z.custom>()), })), ) @@ -18,8 +17,7 @@ export type SessionID = Schema.Schema.Type export const MessageID = Schema.String.pipe( Schema.brand("MessageID"), withStatics((s) => ({ - make: (id: string) => s.makeUnsafe(id), - ascending: (id?: string) => s.makeUnsafe(Identifier.ascending("message", id)), + ascending: (id?: string) => s.make(Identifier.ascending("message", id)), zod: Identifier.schema("message").pipe(z.custom>()), })), ) @@ -29,8 +27,7 @@ export type MessageID = Schema.Schema.Type export const PartID = Schema.String.pipe( Schema.brand("PartID"), withStatics((s) => ({ - make: (id: string) => s.makeUnsafe(id), - ascending: (id?: string) => s.makeUnsafe(Identifier.ascending("part", id)), + ascending: (id?: string) => s.make(Identifier.ascending("part", id)), zod: Identifier.schema("part").pipe(z.custom>()), })), ) diff --git a/packages/opencode/src/session/status.ts b/packages/opencode/src/session/status.ts index 16fccaf3e8..5800cb7322 100644 --- a/packages/opencode/src/session/status.ts +++ b/packages/opencode/src/session/status.ts @@ -1,9 +1,8 @@ import { BusEvent } from "@/bus/bus-event" import { Bus } from "@/bus" import { InstanceState } from "@/effect/instance-state" -import { makeRuntime } from "@/effect/run-service" import { SessionID } from "./schema" -import { Effect, Layer, ServiceMap } from "effect" +import { Effect, Layer, Context } from "effect" import z from "zod" export namespace SessionStatus { @@ -50,7 +49,7 @@ export namespace SessionStatus { readonly set: (sessionID: SessionID, status: Info) => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/SessionStatus") {} + export class Service extends Context.Service()("@opencode/SessionStatus") {} export const layer = Layer.effect( Service, @@ -86,17 +85,4 @@ export namespace SessionStatus { ) export const defaultLayer = layer.pipe(Layer.provide(Bus.layer)) - const { runPromise } = makeRuntime(Service, defaultLayer) - - export async function get(sessionID: SessionID) { - return runPromise((svc) => svc.get(sessionID)) - } - - export async function list() { - return runPromise((svc) => svc.list()) - } - - export async function set(sessionID: SessionID, status: Info) { - return runPromise((svc) => svc.set(sessionID, status)) - } } diff --git a/packages/opencode/src/session/summary.ts b/packages/opencode/src/session/summary.ts index 2f07a0f5d0..498288d615 100644 --- a/packages/opencode/src/session/summary.ts +++ b/packages/opencode/src/session/summary.ts @@ -1,5 +1,5 @@ import z from "zod" -import { Effect, Layer, ServiceMap } from "effect" +import { Effect, Layer, Context } from "effect" import { makeRuntime } from "@/effect/run-service" import { Bus } from "@/bus" import { Snapshot } from "@/snapshot" @@ -71,7 +71,7 @@ export namespace SessionSummary { readonly computeDiff: (input: { messages: MessageV2.WithParts[] }) => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/SessionSummary") {} + export class Service extends Context.Service()("@opencode/SessionSummary") {} export const layer = Layer.effect( Service, diff --git a/packages/opencode/src/session/system.ts b/packages/opencode/src/session/system.ts index 09788f3cdb..2a001ba9b1 100644 --- a/packages/opencode/src/session/system.ts +++ b/packages/opencode/src/session/system.ts @@ -1,4 +1,4 @@ -import { Ripgrep } from "../file/ripgrep" +import { Context, Effect, Layer } from "effect" import { Instance } from "../project/instance" @@ -33,44 +33,52 @@ export namespace SystemPrompt { return [PROMPT_DEFAULT] } - export async function environment(model: Provider.Model) { - const project = Instance.project - return [ - [ - `You are powered by the model named ${model.api.id}. The exact model ID is ${model.providerID}/${model.api.id}`, - `Here is some useful information about the environment you are running in:`, - ``, - ` Working directory: ${Instance.directory}`, - ` Workspace root folder: ${Instance.worktree}`, - ` Is directory a git repo: ${project.vcs === "git" ? "yes" : "no"}`, - ` Platform: ${process.platform}`, - ` Today's date: ${new Date().toDateString()}`, - ``, - ``, - ` ${ - project.vcs === "git" && false - ? await Ripgrep.tree({ - cwd: Instance.directory, - limit: 50, - }) - : "" - }`, - ``, - ].join("\n"), - ] + export interface Interface { + readonly environment: (model: Provider.Model) => string[] + readonly skills: (agent: Agent.Info) => Effect.Effect } - export async function skills(agent: Agent.Info) { - if (Permission.disabled(["skill"], agent.permission).has("skill")) return + export class Service extends Context.Service()("@opencode/SystemPrompt") {} - const list = await Skill.available(agent) + export const layer = Layer.effect( + Service, + Effect.gen(function* () { + const skill = yield* Skill.Service - return [ - "Skills provide specialized instructions and workflows for specific tasks.", - "Use the skill tool to load a skill when a task matches its description.", - // the agents seem to ingest the information about skills a bit better if we present a more verbose - // version of them here and a less verbose version in tool description, rather than vice versa. - Skill.fmt(list, { verbose: true }), - ].join("\n") - } + return Service.of({ + environment(model) { + const project = Instance.project + return [ + [ + `You are powered by the model named ${model.api.id}. The exact model ID is ${model.providerID}/${model.api.id}`, + `Here is some useful information about the environment you are running in:`, + ``, + ` Working directory: ${Instance.directory}`, + ` Workspace root folder: ${Instance.worktree}`, + ` Is directory a git repo: ${project.vcs === "git" ? "yes" : "no"}`, + ` Platform: ${process.platform}`, + ` Today's date: ${new Date().toDateString()}`, + ``, + ].join("\n"), + ] + }, + + skills: Effect.fn("SystemPrompt.skills")(function* (agent: Agent.Info) { + if (Permission.disabled(["skill"], agent.permission).has("skill")) return + + const list = yield* skill.available(agent) + + return [ + "Skills provide specialized instructions and workflows for specific tasks.", + "Use the skill tool to load a skill when a task matches its description.", + // the agents seem to ingest the information about skills a bit better if we present a more verbose + // version of them here and a less verbose version in tool description, rather than vice versa. + Skill.fmt(list, { verbose: true }), + ].join("\n") + }), + }) + }), + ) + + export const defaultLayer = layer.pipe(Layer.provide(Skill.defaultLayer)) } diff --git a/packages/opencode/src/session/todo.ts b/packages/opencode/src/session/todo.ts index 4adfc7bc5f..1fd9cbaa5a 100644 --- a/packages/opencode/src/session/todo.ts +++ b/packages/opencode/src/session/todo.ts @@ -1,8 +1,7 @@ import { BusEvent } from "@/bus/bus-event" import { Bus } from "@/bus" -import { makeRuntime } from "@/effect/run-service" import { SessionID } from "./schema" -import { Effect, Layer, ServiceMap } from "effect" +import { Effect, Layer, Context } from "effect" import z from "zod" import { Database, eq, asc } from "../storage/db" import { TodoTable } from "./session.sql" @@ -32,7 +31,7 @@ export namespace Todo { readonly get: (sessionID: SessionID) => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/SessionTodo") {} + export class Service extends Context.Service()("@opencode/SessionTodo") {} export const layer = Layer.effect( Service, @@ -83,9 +82,4 @@ export namespace Todo { ) export const defaultLayer = layer.pipe(Layer.provide(Bus.layer)) - const { runPromise } = makeRuntime(Service, defaultLayer) - - export async function get(sessionID: SessionID) { - return runPromise((svc) => svc.get(sessionID)) - } } diff --git a/packages/opencode/src/share/session.ts b/packages/opencode/src/share/session.ts index 1446b5bb4d..f98bf14cb4 100644 --- a/packages/opencode/src/share/session.ts +++ b/packages/opencode/src/share/session.ts @@ -3,7 +3,7 @@ import { Session } from "@/session" import { SessionID } from "@/session/schema" import { SyncEvent } from "@/sync" import { fn } from "@/util/fn" -import { Effect, Layer, Scope, ServiceMap } from "effect" +import { Effect, Layer, Scope, Context } from "effect" import { Config } from "../config/config" import { Flag } from "../flag/flag" import { ShareNext } from "./share-next" @@ -15,7 +15,7 @@ export namespace SessionShare { readonly unshare: (sessionID: SessionID) => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/SessionShare") {} + export class Service extends Context.Service()("@opencode/SessionShare") {} export const layer = Layer.effect( Service, diff --git a/packages/opencode/src/share/share-next.ts b/packages/opencode/src/share/share-next.ts index 26b2d2570a..ad247f5466 100644 --- a/packages/opencode/src/share/share-next.ts +++ b/packages/opencode/src/share/share-next.ts @@ -1,10 +1,9 @@ import type * as SDK from "@opencode-ai/sdk/v2" -import { Effect, Exit, Layer, Option, Schema, Scope, ServiceMap, Stream } from "effect" +import { Effect, Exit, Layer, Option, Schema, Scope, Context, Stream } from "effect" import { FetchHttpClient, HttpClient, HttpClientRequest, HttpClientResponse } from "effect/unstable/http" import { Account } from "@/account" import { Bus } from "@/bus" import { InstanceState } from "@/effect/instance-state" -import { makeRuntime } from "@/effect/run-service" import { Provider } from "@/provider/provider" import { ModelID, ProviderID } from "@/provider/schema" import { Session } from "@/session" @@ -74,7 +73,7 @@ export namespace ShareNext { readonly remove: (sessionID: SessionID) => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/ShareNext") {} + export class Service extends Context.Service()("@opencode/ShareNext") {} const db = (fn: (d: Parameters[0] extends (trx: infer D) => any ? D : never) => T) => Effect.sync(() => Database.use(fn)) @@ -348,26 +347,4 @@ export namespace ShareNext { Layer.provide(Provider.defaultLayer), Layer.provide(Session.defaultLayer), ) - - const { runPromise } = makeRuntime(Service, defaultLayer) - - export async function init() { - return runPromise((svc) => svc.init()) - } - - export async function url() { - return runPromise((svc) => svc.url()) - } - - export async function request(): Promise { - return runPromise((svc) => svc.request()) - } - - export async function create(sessionID: SessionID) { - return runPromise((svc) => svc.create(sessionID)) - } - - export async function remove(sessionID: SessionID) { - return runPromise((svc) => svc.remove(sessionID)) - } } diff --git a/packages/opencode/src/skill/discovery.ts b/packages/opencode/src/skill/discovery.ts index e103975032..0bc3ee6290 100644 --- a/packages/opencode/src/skill/discovery.ts +++ b/packages/opencode/src/skill/discovery.ts @@ -1,5 +1,5 @@ import { NodePath } from "@effect/platform-node" -import { Effect, Layer, Path, Schema, ServiceMap } from "effect" +import { Effect, Layer, Path, Schema, Context } from "effect" import { FetchHttpClient, HttpClient, HttpClientRequest, HttpClientResponse } from "effect/unstable/http" import { withTransientReadRetry } from "@/util/effect-http-client" import { AppFileSystem } from "@/filesystem" @@ -23,7 +23,7 @@ export namespace Discovery { readonly pull: (url: string) => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/SkillDiscovery") {} + export class Service extends Context.Service()("@opencode/SkillDiscovery") {} export const layer: Layer.Layer = Layer.effect( diff --git a/packages/opencode/src/skill/index.ts b/packages/opencode/src/skill/index.ts index cde36dd52d..be74c0b342 100644 --- a/packages/opencode/src/skill/index.ts +++ b/packages/opencode/src/skill/index.ts @@ -2,7 +2,7 @@ import os from "os" import path from "path" import { pathToFileURL } from "url" import z from "zod" -import { Effect, Layer, ServiceMap } from "effect" +import { Effect, Layer, Context } from "effect" import { NamedError } from "@opencode-ai/util/error" import type { Agent } from "@/agent/agent" import { Bus } from "@/bus" @@ -187,7 +187,7 @@ export namespace Skill { log.info("init", { count: Object.keys(state.skills).length }) }) - export class Service extends ServiceMap.Service()("@opencode/Skill") {} + export class Service extends Context.Service()("@opencode/Skill") {} export const layer = Layer.effect( Service, diff --git a/packages/opencode/src/snapshot/index.ts b/packages/opencode/src/snapshot/index.ts index 569c834bf4..834cdde252 100644 --- a/packages/opencode/src/snapshot/index.ts +++ b/packages/opencode/src/snapshot/index.ts @@ -1,4 +1,4 @@ -import { Cause, Duration, Effect, Layer, Schedule, Semaphore, ServiceMap, Stream } from "effect" +import { Cause, Duration, Effect, Layer, Schedule, Semaphore, Context, Stream } from "effect" import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process" import { formatPatch, structuredPatch } from "diff" import path from "path" @@ -57,7 +57,7 @@ export namespace Snapshot { readonly diffFull: (from: string, to: string) => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/Snapshot") {} + export class Service extends Context.Service()("@opencode/Snapshot") {} export const layer: Layer.Layer< Service, diff --git a/packages/opencode/src/storage/db.ts b/packages/opencode/src/storage/db.ts index 78320ac0af..a7dbf93800 100644 --- a/packages/opencode/src/storage/db.ts +++ b/packages/opencode/src/storage/db.ts @@ -2,7 +2,7 @@ import { type SQLiteBunDatabase } from "drizzle-orm/bun-sqlite" import { migrate } from "drizzle-orm/bun-sqlite/migrator" import { type SQLiteTransaction } from "drizzle-orm/sqlite-core" export * from "drizzle-orm" -import { Context } from "../util/context" +import { LocalContext } from "../util/local-context" import { lazy } from "../util/lazy" import { Global } from "../global" import { Log } from "../util/log" @@ -122,7 +122,7 @@ export namespace Database { export type TxOrDb = Transaction | Client - const ctx = Context.create<{ + const ctx = LocalContext.create<{ tx: TxOrDb effects: (() => void | Promise)[] }>("database") @@ -131,7 +131,7 @@ export namespace Database { try { return callback(ctx.use().tx) } catch (err) { - if (err instanceof Context.NotFound) { + if (err instanceof LocalContext.NotFound) { const effects: (() => void | Promise)[] = [] const result = ctx.provide({ effects, tx: Client() }, () => callback(Client())) for (const effect of effects) effect() @@ -161,7 +161,7 @@ export namespace Database { try { return callback(ctx.use().tx) } catch (err) { - if (err instanceof Context.NotFound) { + if (err instanceof LocalContext.NotFound) { const effects: (() => void | Promise)[] = [] const txCallback = InstanceState.bind((tx: TxOrDb) => ctx.provide({ tx, effects }, () => callback(tx))) const result = Client().transaction(txCallback, { behavior: options?.behavior }) diff --git a/packages/opencode/src/storage/storage.ts b/packages/opencode/src/storage/storage.ts index c30089a18c..a123cd664f 100644 --- a/packages/opencode/src/storage/storage.ts +++ b/packages/opencode/src/storage/storage.ts @@ -4,8 +4,7 @@ import { Global } from "../global" import { NamedError } from "@opencode-ai/util/error" import z from "zod" import { AppFileSystem } from "@/filesystem" -import { makeRuntime } from "@/effect/run-service" -import { Effect, Exit, Layer, Option, RcMap, Schema, ServiceMap, TxReentrantLock } from "effect" +import { Effect, Exit, Layer, Option, RcMap, Schema, Context, TxReentrantLock } from "effect" import { Git } from "@/git" export namespace Storage { @@ -66,7 +65,7 @@ export namespace Storage { readonly list: (prefix: string[]) => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/Storage") {} + export class Service extends Context.Service()("@opencode/Storage") {} function file(dir: string, key: string[]) { return path.join(dir, ...key) + ".json" @@ -331,26 +330,4 @@ export namespace Storage { ) export const defaultLayer = layer.pipe(Layer.provide(AppFileSystem.defaultLayer), Layer.provide(Git.defaultLayer)) - - const { runPromise } = makeRuntime(Service, defaultLayer) - - export async function remove(key: string[]) { - return runPromise((svc) => svc.remove(key)) - } - - export async function read(key: string[]) { - return runPromise((svc) => svc.read(key)) - } - - export async function update(key: string[], fn: (draft: T) => void) { - return runPromise((svc) => svc.update(key, fn)) - } - - export async function write(key: string[], content: T) { - return runPromise((svc) => svc.write(key, content)) - } - - export async function list(prefix: string[]) { - return runPromise((svc) => svc.list(prefix)) - } } diff --git a/packages/opencode/src/sync/schema.ts b/packages/opencode/src/sync/schema.ts index 8e734e5981..5cec8b1f7a 100644 --- a/packages/opencode/src/sync/schema.ts +++ b/packages/opencode/src/sync/schema.ts @@ -7,8 +7,7 @@ import { withStatics } from "@/util/schema" export const EventID = Schema.String.pipe( Schema.brand("EventID"), withStatics((s) => ({ - make: (id: string) => s.makeUnsafe(id), - ascending: (id?: string) => s.makeUnsafe(Identifier.ascending("event", id)), + ascending: (id?: string) => s.make(Identifier.ascending("event", id)), zod: Identifier.schema("event").pipe(z.custom>()), })), ) diff --git a/packages/opencode/src/tool/apply_patch.ts b/packages/opencode/src/tool/apply_patch.ts index 4b523aeafb..fd38a9b224 100644 --- a/packages/opencode/src/tool/apply_patch.ts +++ b/packages/opencode/src/tool/apply_patch.ts @@ -19,12 +19,13 @@ const PatchParams = z.object({ patchText: z.string().describe("The full patch text that describes all changes to be made"), }) -export const ApplyPatchTool = Tool.defineEffect( +export const ApplyPatchTool = Tool.define( "apply_patch", Effect.gen(function* () { const lsp = yield* LSP.Service const afs = yield* AppFileSystem.Service const format = yield* Format.Service + const bus = yield* Bus.Service const run = Effect.fn("ApplyPatchTool.execute")(function* (params: z.infer, ctx: Tool.Context) { if (!params.patchText) { @@ -178,18 +179,16 @@ export const ApplyPatchTool = Tool.defineEffect( // Check permissions if needed const relativePaths = fileChanges.map((c) => path.relative(Instance.worktree, c.filePath).replaceAll("\\", "/")) - yield* Effect.promise(() => - ctx.ask({ - permission: "edit", - patterns: relativePaths, - always: ["*"], - metadata: { - filepath: relativePaths.join(", "), - diff: totalDiff, - files, - }, - }), - ) + yield* ctx.ask({ + permission: "edit", + patterns: relativePaths, + always: ["*"], + metadata: { + filepath: relativePaths.join(", "), + diff: totalDiff, + files, + }, + }) // Apply the changes const updates: Array<{ file: string; event: "add" | "change" | "unlink" }> = [] @@ -228,13 +227,13 @@ export const ApplyPatchTool = Tool.defineEffect( if (edited) { yield* format.file(edited) - Bus.publish(File.Event.Edited, { file: edited }) + yield* bus.publish(File.Event.Edited, { file: edited }) } } // Publish file change events for (const update of updates) { - Bus.publish(FileWatcher.Event.Updated, update) + yield* bus.publish(FileWatcher.Event.Updated, update) } // Notify LSP of file changes and collect diagnostics @@ -258,20 +257,13 @@ export const ApplyPatchTool = Tool.defineEffect( }) let output = `Success. Updated the following files:\n${summaryLines.join("\n")}` - // Report LSP errors for changed files - const MAX_DIAGNOSTICS_PER_FILE = 20 for (const change of fileChanges) { if (change.type === "delete") continue const target = change.movePath ?? change.filePath - const normalized = AppFileSystem.normalizePath(target) - const issues = diagnostics[normalized] ?? [] - const errors = issues.filter((item) => item.severity === 1) - if (errors.length > 0) { - const limited = errors.slice(0, MAX_DIAGNOSTICS_PER_FILE) - const suffix = - errors.length > MAX_DIAGNOSTICS_PER_FILE ? `\n... and ${errors.length - MAX_DIAGNOSTICS_PER_FILE} more` : "" - output += `\n\nLSP errors detected in ${path.relative(Instance.worktree, target).replaceAll("\\", "/")}, please fix:\n\n${limited.map(LSP.Diagnostic.pretty).join("\n")}${suffix}\n` - } + const block = LSP.Diagnostic.report(target, diagnostics[AppFileSystem.normalizePath(target)] ?? []) + if (!block) continue + const rel = path.relative(Instance.worktree, target).replaceAll("\\", "/") + output += `\n\nLSP errors detected in ${rel}, please fix:\n${block}` } return { @@ -288,9 +280,7 @@ export const ApplyPatchTool = Tool.defineEffect( return { description: DESCRIPTION, parameters: PatchParams, - async execute(params: z.infer, ctx) { - return Effect.runPromise(run(params, ctx).pipe(Effect.orDie)) - }, + execute: (params: z.infer, ctx: Tool.Context) => run(params, ctx).pipe(Effect.orDie), } }), ) diff --git a/packages/opencode/src/tool/bash.ts b/packages/opencode/src/tool/bash.ts index abcb9e3272..150cafbd76 100644 --- a/packages/opencode/src/tool/bash.ts +++ b/packages/opencode/src/tool/bash.ts @@ -226,25 +226,21 @@ const ask = Effect.fn("BashTool.ask")(function* (ctx: Tool.Context, scan: Scan) if (process.platform === "win32") return AppFileSystem.normalizePathPattern(path.join(dir, "*")) return path.join(dir, "*") }) - yield* Effect.promise(() => - ctx.ask({ - permission: "external_directory", - patterns: globs, - always: globs, - metadata: {}, - }), - ) + yield* ctx.ask({ + permission: "external_directory", + patterns: globs, + always: globs, + metadata: {}, + }) } if (scan.patterns.size === 0) return - yield* Effect.promise(() => - ctx.ask({ - permission: "bash", - patterns: Array.from(scan.patterns), - always: Array.from(scan.always), - metadata: {}, - }), - ) + yield* ctx.ask({ + permission: "bash", + patterns: Array.from(scan.patterns), + always: Array.from(scan.always), + metadata: {}, + }) }) function cmd(shell: string, name: string, command: string, cwd: string, env: NodeJS.ProcessEnv) { @@ -294,7 +290,7 @@ const parser = lazy(async () => { }) // TODO: we may wanna rename this tool so it works better on other shells -export const BashTool = Tool.defineEffect( +export const BashTool = Tool.define( "bash", Effect.gen(function* () { const spawner = yield* ChildProcessSpawner @@ -389,7 +385,7 @@ export const BashTool = Tool.defineEffect( let expired = false let aborted = false - ctx.metadata({ + yield* ctx.metadata({ metadata: { output: "", description: input.description, @@ -401,17 +397,15 @@ export const BashTool = Tool.defineEffect( const handle = yield* spawner.spawn(cmd(input.shell, input.name, input.command, input.cwd, input.env)) yield* Effect.forkScoped( - Stream.runForEach(Stream.decodeText(handle.all), (chunk) => - Effect.sync(() => { - output += chunk - ctx.metadata({ - metadata: { - output: preview(output), - description: input.description, - }, - }) - }), - ), + Stream.runForEach(Stream.decodeText(handle.all), (chunk) => { + output += chunk + return ctx.metadata({ + metadata: { + output: preview(output), + description: input.description, + }, + }) + }), ) const abort = Effect.callback((resume) => { @@ -460,52 +454,53 @@ export const BashTool = Tool.defineEffect( } }) - return async () => { - const shell = Shell.acceptable() - const name = Shell.name(shell) - const chain = - name === "powershell" - ? "If the commands depend on each other and must run sequentially, avoid '&&' in this shell because Windows PowerShell 5.1 does not support it. Use PowerShell conditionals such as `cmd1; if ($?) { cmd2 }` when later commands must depend on earlier success." - : "If the commands depend on each other and must run sequentially, use a single Bash call with '&&' to chain them together (e.g., `git add . && git commit -m \"message\" && git push`). For instance, if one operation must complete before another starts (like mkdir before cp, Write before Bash for git operations, or git add before git commit), run these operations sequentially instead." - log.info("bash tool using shell", { shell }) + return () => + Effect.sync(() => { + const shell = Shell.acceptable() + const name = Shell.name(shell) + const chain = + name === "powershell" + ? "If the commands depend on each other and must run sequentially, avoid '&&' in this shell because Windows PowerShell 5.1 does not support it. Use PowerShell conditionals such as `cmd1; if ($?) { cmd2 }` when later commands must depend on earlier success." + : "If the commands depend on each other and must run sequentially, use a single Bash call with '&&' to chain them together (e.g., `git add . && git commit -m \"message\" && git push`). For instance, if one operation must complete before another starts (like mkdir before cp, Write before Bash for git operations, or git add before git commit), run these operations sequentially instead." + log.info("bash tool using shell", { shell }) - return { - description: DESCRIPTION.replaceAll("${directory}", Instance.directory) - .replaceAll("${os}", process.platform) - .replaceAll("${shell}", name) - .replaceAll("${chaining}", chain) - .replaceAll("${maxLines}", String(Truncate.MAX_LINES)) - .replaceAll("${maxBytes}", String(Truncate.MAX_BYTES)), - parameters: Parameters, - execute: (params: z.infer, ctx: Tool.Context) => - Effect.gen(function* () { - const cwd = params.workdir - ? yield* resolvePath(params.workdir, Instance.directory, shell) - : Instance.directory - if (params.timeout !== undefined && params.timeout < 0) { - throw new Error(`Invalid timeout value: ${params.timeout}. Timeout must be a positive number.`) - } - const timeout = params.timeout ?? DEFAULT_TIMEOUT - const ps = PS.has(name) - const root = yield* parse(params.command, ps) - const scan = yield* collect(root, cwd, ps, shell) - if (!Instance.containsPath(cwd)) scan.dirs.add(cwd) - yield* ask(ctx, scan) + return { + description: DESCRIPTION.replaceAll("${directory}", Instance.directory) + .replaceAll("${os}", process.platform) + .replaceAll("${shell}", name) + .replaceAll("${chaining}", chain) + .replaceAll("${maxLines}", String(Truncate.MAX_LINES)) + .replaceAll("${maxBytes}", String(Truncate.MAX_BYTES)), + parameters: Parameters, + execute: (params: z.infer, ctx: Tool.Context) => + Effect.gen(function* () { + const cwd = params.workdir + ? yield* resolvePath(params.workdir, Instance.directory, shell) + : Instance.directory + if (params.timeout !== undefined && params.timeout < 0) { + throw new Error(`Invalid timeout value: ${params.timeout}. Timeout must be a positive number.`) + } + const timeout = params.timeout ?? DEFAULT_TIMEOUT + const ps = PS.has(name) + const root = yield* parse(params.command, ps) + const scan = yield* collect(root, cwd, ps, shell) + if (!Instance.containsPath(cwd)) scan.dirs.add(cwd) + yield* ask(ctx, scan) - return yield* run( - { - shell, - name, - command: params.command, - cwd, - env: yield* shellEnv(ctx, cwd), - timeout, - description: params.description, - }, - ctx, - ) - }).pipe(Effect.orDie, Effect.runPromise), - } - } + return yield* run( + { + shell, + name, + command: params.command, + cwd, + env: yield* shellEnv(ctx, cwd), + timeout, + description: params.description, + }, + ctx, + ) + }), + } + }) }), ) diff --git a/packages/opencode/src/tool/codesearch.ts b/packages/opencode/src/tool/codesearch.ts index 7e167df558..d4d5779bf3 100644 --- a/packages/opencode/src/tool/codesearch.ts +++ b/packages/opencode/src/tool/codesearch.ts @@ -5,7 +5,7 @@ import { Tool } from "./tool" import * as McpExa from "./mcp-exa" import DESCRIPTION from "./codesearch.txt" -export const CodeSearchTool = Tool.defineEffect( +export const CodeSearchTool = Tool.define( "codesearch", Effect.gen(function* () { const http = yield* HttpClient.HttpClient @@ -29,17 +29,15 @@ export const CodeSearchTool = Tool.defineEffect( }), execute: (params: { query: string; tokensNum: number }, ctx: Tool.Context) => Effect.gen(function* () { - yield* Effect.promise(() => - ctx.ask({ - permission: "codesearch", - patterns: [params.query], - always: ["*"], - metadata: { - query: params.query, - tokensNum: params.tokensNum, - }, - }), - ) + yield* ctx.ask({ + permission: "codesearch", + patterns: [params.query], + always: ["*"], + metadata: { + query: params.query, + tokensNum: params.tokensNum, + }, + }) const result = yield* McpExa.call( http, @@ -59,7 +57,7 @@ export const CodeSearchTool = Tool.defineEffect( title: `Code search: ${params.query}`, metadata: {}, } - }).pipe(Effect.runPromise), + }).pipe(Effect.orDie), } }), ) diff --git a/packages/opencode/src/tool/edit.ts b/packages/opencode/src/tool/edit.ts index e0b54bc115..a835714c69 100644 --- a/packages/opencode/src/tool/edit.ts +++ b/packages/opencode/src/tool/edit.ts @@ -19,8 +19,7 @@ import { Filesystem } from "../util/filesystem" import { Instance } from "../project/instance" import { Snapshot } from "@/snapshot" import { assertExternalDirectoryEffect } from "./external-directory" - -const MAX_DIAGNOSTICS_PER_FILE = 20 +import { AppFileSystem } from "../filesystem" function normalizeLineEndings(text: string): string { return text.replaceAll("\r\n", "\n") @@ -42,11 +41,14 @@ const Parameters = z.object({ replaceAll: z.boolean().optional().describe("Replace all occurrences of oldString (default false)"), }) -export const EditTool = Tool.defineEffect( +export const EditTool = Tool.define( "edit", Effect.gen(function* () { const lsp = yield* LSP.Service const filetime = yield* FileTime.Service + const afs = yield* AppFileSystem.Service + const format = yield* Format.Service + const bus = yield* Bus.Service return { description: DESCRIPTION, @@ -69,12 +71,53 @@ export const EditTool = Tool.defineEffect( let diff = "" let contentOld = "" let contentNew = "" - yield* filetime.withLock(filePath, async () => { - if (params.oldString === "") { - const existed = await Filesystem.exists(filePath) - contentNew = params.newString - diff = trimDiff(createTwoFilesPatch(filePath, filePath, contentOld, contentNew)) - await ctx.ask({ + yield* filetime.withLock(filePath, () => + Effect.gen(function* () { + if (params.oldString === "") { + const existed = yield* afs.existsSafe(filePath) + contentNew = params.newString + diff = trimDiff(createTwoFilesPatch(filePath, filePath, contentOld, contentNew)) + yield* ctx.ask({ + permission: "edit", + patterns: [path.relative(Instance.worktree, filePath)], + always: ["*"], + metadata: { + filepath: filePath, + diff, + }, + }) + yield* afs.writeWithDirs(filePath, params.newString) + yield* format.file(filePath) + yield* bus.publish(File.Event.Edited, { file: filePath }) + yield* bus.publish(FileWatcher.Event.Updated, { + file: filePath, + event: existed ? "change" : "add", + }) + yield* filetime.read(ctx.sessionID, filePath) + return + } + + const info = yield* afs.stat(filePath).pipe(Effect.catch(() => Effect.succeed(undefined))) + if (!info) throw new Error(`File ${filePath} not found`) + if (info.type === "Directory") throw new Error(`Path is a directory, not a file: ${filePath}`) + yield* filetime.assert(ctx.sessionID, filePath) + contentOld = yield* afs.readFileString(filePath) + + const ending = detectLineEnding(contentOld) + const old = convertToLineEnding(normalizeLineEndings(params.oldString), ending) + const next = convertToLineEnding(normalizeLineEndings(params.newString), ending) + + contentNew = replace(contentOld, old, next, params.replaceAll) + + diff = trimDiff( + createTwoFilesPatch( + filePath, + filePath, + normalizeLineEndings(contentOld), + normalizeLineEndings(contentNew), + ), + ) + yield* ctx.ask({ permission: "edit", patterns: [path.relative(Instance.worktree, filePath)], always: ["*"], @@ -83,65 +126,26 @@ export const EditTool = Tool.defineEffect( diff, }, }) - await Filesystem.write(filePath, params.newString) - await Format.file(filePath) - Bus.publish(File.Event.Edited, { file: filePath }) - await Bus.publish(FileWatcher.Event.Updated, { + + yield* afs.writeWithDirs(filePath, contentNew) + yield* format.file(filePath) + yield* bus.publish(File.Event.Edited, { file: filePath }) + yield* bus.publish(FileWatcher.Event.Updated, { file: filePath, - event: existed ? "change" : "add", + event: "change", }) - await FileTime.read(ctx.sessionID, filePath) - return - } - - const stats = Filesystem.stat(filePath) - if (!stats) throw new Error(`File ${filePath} not found`) - if (stats.isDirectory()) throw new Error(`Path is a directory, not a file: ${filePath}`) - await FileTime.assert(ctx.sessionID, filePath) - contentOld = await Filesystem.readText(filePath) - - const ending = detectLineEnding(contentOld) - const old = convertToLineEnding(normalizeLineEndings(params.oldString), ending) - const next = convertToLineEnding(normalizeLineEndings(params.newString), ending) - - contentNew = replace(contentOld, old, next, params.replaceAll) - - diff = trimDiff( - createTwoFilesPatch( - filePath, - filePath, - normalizeLineEndings(contentOld), - normalizeLineEndings(contentNew), - ), - ) - await ctx.ask({ - permission: "edit", - patterns: [path.relative(Instance.worktree, filePath)], - always: ["*"], - metadata: { - filepath: filePath, - diff, - }, - }) - - await Filesystem.write(filePath, contentNew) - await Format.file(filePath) - Bus.publish(File.Event.Edited, { file: filePath }) - await Bus.publish(FileWatcher.Event.Updated, { - file: filePath, - event: "change", - }) - contentNew = await Filesystem.readText(filePath) - diff = trimDiff( - createTwoFilesPatch( - filePath, - filePath, - normalizeLineEndings(contentOld), - normalizeLineEndings(contentNew), - ), - ) - await FileTime.read(ctx.sessionID, filePath) - }) + contentNew = yield* afs.readFileString(filePath) + diff = trimDiff( + createTwoFilesPatch( + filePath, + filePath, + normalizeLineEndings(contentOld), + normalizeLineEndings(contentNew), + ), + ) + yield* filetime.read(ctx.sessionID, filePath) + }).pipe(Effect.orDie), + ) const filediff: Snapshot.FileDiff = { file: filePath, @@ -154,7 +158,7 @@ export const EditTool = Tool.defineEffect( if (change.removed) filediff.deletions += change.count || 0 } - ctx.metadata({ + yield* ctx.metadata({ metadata: { diff, filediff, @@ -166,16 +170,8 @@ export const EditTool = Tool.defineEffect( yield* lsp.touchFile(filePath, true) const diagnostics = yield* lsp.diagnostics() const normalizedFilePath = Filesystem.normalizePath(filePath) - const issues = diagnostics[normalizedFilePath] ?? [] - const errors = issues.filter((item) => item.severity === 1) - if (errors.length > 0) { - const limited = errors.slice(0, MAX_DIAGNOSTICS_PER_FILE) - const suffix = - errors.length > MAX_DIAGNOSTICS_PER_FILE - ? `\n... and ${errors.length - MAX_DIAGNOSTICS_PER_FILE} more` - : "" - output += `\n\nLSP errors detected in this file, please fix:\n\n${limited.map(LSP.Diagnostic.pretty).join("\n")}${suffix}\n` - } + const block = LSP.Diagnostic.report(filePath, diagnostics[normalizedFilePath] ?? []) + if (block) output += `\n\nLSP errors detected in this file, please fix:\n${block}` return { metadata: { @@ -186,7 +182,7 @@ export const EditTool = Tool.defineEffect( title: `${path.relative(Instance.worktree, filePath)}`, output, } - }).pipe(Effect.orDie, Effect.runPromise), + }), } }), ) diff --git a/packages/opencode/src/tool/external-directory.ts b/packages/opencode/src/tool/external-directory.ts index f11455cf59..ff8854649a 100644 --- a/packages/opencode/src/tool/external-directory.ts +++ b/packages/opencode/src/tool/external-directory.ts @@ -1,5 +1,6 @@ import path from "path" import { Effect } from "effect" +import { EffectLogger } from "@/effect/logger" import type { Tool } from "./tool" import { Instance } from "../project/instance" import { AppFileSystem } from "../filesystem" @@ -11,7 +12,11 @@ type Options = { kind?: Kind } -export async function assertExternalDirectory(ctx: Tool.Context, target?: string, options?: Options) { +export const assertExternalDirectoryEffect = Effect.fn("Tool.assertExternalDirectory")(function* ( + ctx: Tool.Context, + target?: string, + options?: Options, +) { if (!target) return if (options?.bypass) return @@ -26,7 +31,7 @@ export async function assertExternalDirectory(ctx: Tool.Context, target?: string ? AppFileSystem.normalizePathPattern(path.join(dir, "*")) : path.join(dir, "*").replaceAll("\\", "/") - await ctx.ask({ + yield* ctx.ask({ permission: "external_directory", patterns: [glob], always: [glob], @@ -35,12 +40,8 @@ export async function assertExternalDirectory(ctx: Tool.Context, target?: string parentDir: dir, }, }) -} - -export const assertExternalDirectoryEffect = Effect.fn("Tool.assertExternalDirectory")(function* ( - ctx: Tool.Context, - target?: string, - options?: Options, -) { - yield* Effect.promise(() => assertExternalDirectory(ctx, target, options)) }) + +export async function assertExternalDirectory(ctx: Tool.Context, target?: string, options?: Options) { + return Effect.runPromise(assertExternalDirectoryEffect(ctx, target, options).pipe(Effect.provide(EffectLogger.layer))) +} diff --git a/packages/opencode/src/tool/glob.ts b/packages/opencode/src/tool/glob.ts index 973f146992..a3ff5aef71 100644 --- a/packages/opencode/src/tool/glob.ts +++ b/packages/opencode/src/tool/glob.ts @@ -9,7 +9,7 @@ import { Instance } from "../project/instance" import { assertExternalDirectoryEffect } from "./external-directory" import { AppFileSystem } from "../filesystem" -export const GlobTool = Tool.defineEffect( +export const GlobTool = Tool.define( "glob", Effect.gen(function* () { const rg = yield* Ripgrep.Service @@ -28,17 +28,15 @@ export const GlobTool = Tool.defineEffect( }), execute: (params: { pattern: string; path?: string }, ctx: Tool.Context) => Effect.gen(function* () { - yield* Effect.promise(() => - ctx.ask({ - permission: "glob", - patterns: [params.pattern], - always: ["*"], - metadata: { - pattern: params.pattern, - path: params.path, - }, - }), - ) + yield* ctx.ask({ + permission: "glob", + patterns: [params.pattern], + always: ["*"], + metadata: { + pattern: params.pattern, + path: params.path, + }, + }) let search = params.path ?? Instance.directory search = path.isAbsolute(search) ? search : path.resolve(Instance.directory, search) @@ -90,7 +88,7 @@ export const GlobTool = Tool.defineEffect( }, output: output.join("\n"), } - }).pipe(Effect.orDie, Effect.runPromise), + }).pipe(Effect.orDie), } }), ) diff --git a/packages/opencode/src/tool/grep.ts b/packages/opencode/src/tool/grep.ts index 8f53c2e21a..b5ae6c3503 100644 --- a/packages/opencode/src/tool/grep.ts +++ b/packages/opencode/src/tool/grep.ts @@ -14,7 +14,7 @@ import { assertExternalDirectoryEffect } from "./external-directory" const MAX_LINE_LENGTH = 2000 -export const GrepTool = Tool.defineEffect( +export const GrepTool = Tool.define( "grep", Effect.gen(function* () { const spawner = yield* ChildProcessSpawner @@ -32,18 +32,16 @@ export const GrepTool = Tool.defineEffect( throw new Error("pattern is required") } - yield* Effect.promise(() => - ctx.ask({ - permission: "grep", - patterns: [params.pattern], - always: ["*"], - metadata: { - pattern: params.pattern, - path: params.path, - include: params.include, - }, - }), - ) + yield* ctx.ask({ + permission: "grep", + patterns: [params.pattern], + always: ["*"], + metadata: { + pattern: params.pattern, + path: params.path, + include: params.include, + }, + }) let searchPath = params.path ?? Instance.directory searchPath = path.isAbsolute(searchPath) ? searchPath : path.resolve(Instance.directory, searchPath) @@ -171,7 +169,7 @@ export const GrepTool = Tool.defineEffect( }, output: outputLines.join("\n"), } - }).pipe(Effect.orDie, Effect.runPromise), + }).pipe(Effect.orDie), } }), ) diff --git a/packages/opencode/src/tool/invalid.ts b/packages/opencode/src/tool/invalid.ts index 728e9c89ff..b9794ed5fd 100644 --- a/packages/opencode/src/tool/invalid.ts +++ b/packages/opencode/src/tool/invalid.ts @@ -1,17 +1,20 @@ import z from "zod" +import { Effect } from "effect" import { Tool } from "./tool" -export const InvalidTool = Tool.define("invalid", { - description: "Do not use", - parameters: z.object({ - tool: z.string(), - error: z.string(), +export const InvalidTool = Tool.define( + "invalid", + Effect.succeed({ + description: "Do not use", + parameters: z.object({ + tool: z.string(), + error: z.string(), + }), + execute: (params: { tool: string; error: string }) => + Effect.succeed({ + title: "Invalid Tool", + output: `The arguments provided to the tool are invalid: ${params.error}`, + metadata: {}, + }), }), - async execute(params) { - return { - title: "Invalid Tool", - output: `The arguments provided to the tool are invalid: ${params.error}`, - metadata: {}, - } - }, -}) +) diff --git a/packages/opencode/src/tool/ls.ts b/packages/opencode/src/tool/ls.ts index 2453b6e9cd..600a5532aa 100644 --- a/packages/opencode/src/tool/ls.ts +++ b/packages/opencode/src/tool/ls.ts @@ -37,7 +37,7 @@ export const IGNORE_PATTERNS = [ const LIMIT = 100 -export const ListTool = Tool.defineEffect( +export const ListTool = Tool.define( "list", Effect.gen(function* () { const rg = yield* Ripgrep.Service @@ -56,16 +56,14 @@ export const ListTool = Tool.defineEffect( const searchPath = path.resolve(Instance.directory, params.path || ".") yield* assertExternalDirectoryEffect(ctx, searchPath, { kind: "directory" }) - yield* Effect.promise(() => - ctx.ask({ - permission: "list", - patterns: [searchPath], - always: ["*"], - metadata: { - path: searchPath, - }, - }), - ) + yield* ctx.ask({ + permission: "list", + patterns: [searchPath], + always: ["*"], + metadata: { + path: searchPath, + }, + }) const ignoreGlobs = IGNORE_PATTERNS.map((p) => `!${p}*`).concat(params.ignore?.map((p) => `!${p}`) || []) const files = yield* rg.files({ cwd: searchPath, glob: ignoreGlobs }).pipe( @@ -130,7 +128,7 @@ export const ListTool = Tool.defineEffect( }, output, } - }).pipe(Effect.orDie, Effect.runPromise), + }).pipe(Effect.orDie), } }), ) diff --git a/packages/opencode/src/tool/lsp.ts b/packages/opencode/src/tool/lsp.ts index ac0b4c6fcc..c5a5d6f819 100644 --- a/packages/opencode/src/tool/lsp.ts +++ b/packages/opencode/src/tool/lsp.ts @@ -21,7 +21,7 @@ const operations = [ "outgoingCalls", ] as const -export const LspTool = Tool.defineEffect( +export const LspTool = Tool.define( "lsp", Effect.gen(function* () { const lsp = yield* LSP.Service @@ -42,7 +42,7 @@ export const LspTool = Tool.defineEffect( Effect.gen(function* () { const file = path.isAbsolute(args.filePath) ? args.filePath : path.join(Instance.directory, args.filePath) yield* assertExternalDirectoryEffect(ctx, file) - yield* Effect.promise(() => ctx.ask({ permission: "lsp", patterns: ["*"], always: ["*"], metadata: {} })) + yield* ctx.ask({ permission: "lsp", patterns: ["*"], always: ["*"], metadata: {} }) const uri = pathToFileURL(file).href const position = { file, line: args.line - 1, character: args.character - 1 } @@ -85,7 +85,7 @@ export const LspTool = Tool.defineEffect( metadata: { result }, output: result.length === 0 ? `No results found for ${args.operation}` : JSON.stringify(result, null, 2), } - }).pipe(Effect.runPromise), + }), } }), ) diff --git a/packages/opencode/src/tool/multiedit.ts b/packages/opencode/src/tool/multiedit.ts index f84ddaf039..449df33430 100644 --- a/packages/opencode/src/tool/multiedit.ts +++ b/packages/opencode/src/tool/multiedit.ts @@ -6,11 +6,11 @@ import DESCRIPTION from "./multiedit.txt" import path from "path" import { Instance } from "../project/instance" -export const MultiEditTool = Tool.defineEffect( +export const MultiEditTool = Tool.define( "multiedit", Effect.gen(function* () { const editInfo = yield* EditTool - const edit = yield* Effect.promise(() => editInfo.init()) + const edit = yield* editInfo.init() return { description: DESCRIPTION, @@ -37,16 +37,14 @@ export const MultiEditTool = Tool.defineEffect( Effect.gen(function* () { const results = [] for (const [, entry] of params.edits.entries()) { - const result = yield* Effect.promise(() => - edit.execute( - { - filePath: params.filePath, - oldString: entry.oldString, - newString: entry.newString, - replaceAll: entry.replaceAll, - }, - ctx, - ), + const result = yield* edit.execute( + { + filePath: params.filePath, + oldString: entry.oldString, + newString: entry.newString, + replaceAll: entry.replaceAll, + }, + ctx, ) results.push(result) } @@ -57,7 +55,7 @@ export const MultiEditTool = Tool.defineEffect( }, output: results.at(-1)!.output, } - }).pipe(Effect.orDie, Effect.runPromise), + }), } }), ) diff --git a/packages/opencode/src/tool/plan.ts b/packages/opencode/src/tool/plan.ts index aa9c698842..1613821fe0 100644 --- a/packages/opencode/src/tool/plan.ts +++ b/packages/opencode/src/tool/plan.ts @@ -17,7 +17,7 @@ function getLastModel(sessionID: SessionID) { return undefined } -export const PlanExitTool = Tool.defineEffect( +export const PlanExitTool = Tool.define( "plan_exit", Effect.gen(function* () { const session = yield* Session.Service @@ -74,7 +74,7 @@ export const PlanExitTool = Tool.defineEffect( output: "User approved switching to build agent. Wait for further instructions.", metadata: {}, } - }).pipe(Effect.runPromise), + }).pipe(Effect.orDie), } }), ) diff --git a/packages/opencode/src/tool/question.ts b/packages/opencode/src/tool/question.ts index f7adbadcf7..8cfa700a5a 100644 --- a/packages/opencode/src/tool/question.ts +++ b/packages/opencode/src/tool/question.ts @@ -12,7 +12,7 @@ type Metadata = { answers: Question.Answer[] } -export const QuestionTool = Tool.defineEffect( +export const QuestionTool = Tool.define( "question", Effect.gen(function* () { const question = yield* Question.Service @@ -39,7 +39,7 @@ export const QuestionTool = Tool.defineEffect - ctx.ask({ - permission: "read", - patterns: [filepath], - always: ["*"], - metadata: {}, - }), - ) + yield* ctx.ask({ + permission: "read", + patterns: [filepath], + always: ["*"], + metadata: {}, + }) if (!stat) return yield* miss(filepath) @@ -218,9 +216,7 @@ export const ReadTool = Tool.defineEffect( return { description: DESCRIPTION, parameters, - async execute(params: z.infer, ctx) { - return Effect.runPromise(run(params, ctx).pipe(Effect.orDie)) - }, + execute: (params: z.infer, ctx: Tool.Context) => run(params, ctx).pipe(Effect.orDie), } }), ) diff --git a/packages/opencode/src/tool/registry.ts b/packages/opencode/src/tool/registry.ts index f6324b3d76..afb19a468c 100644 --- a/packages/opencode/src/tool/registry.ts +++ b/packages/opencode/src/tool/registry.ts @@ -29,7 +29,7 @@ import { ApplyPatchTool } from "./apply_patch" import { Glob } from "../util/glob" import path from "path" import { pathToFileURL } from "url" -import { Effect, Layer, ServiceMap } from "effect" +import { Effect, Layer, Context } from "effect" import { FetchHttpClient, HttpClient } from "effect/unstable/http" import { ChildProcessSpawner } from "effect/unstable/process/ChildProcessSpawner" import * as CrossSpawnSpawner from "@/effect/cross-spawn-spawner" @@ -44,6 +44,7 @@ import { LSP } from "../lsp" import { FileTime } from "../file/time" import { Instruction } from "../session/instruction" import { AppFileSystem } from "../filesystem" +import { Bus } from "../bus" import { Agent } from "../agent/agent" import { Skill } from "../skill" import { Permission } from "@/permission" @@ -72,7 +73,7 @@ export namespace ToolRegistry { }) => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/ToolRegistry") {} + export class Service extends Context.Service()("@opencode/ToolRegistry") {} export const layer: Layer.Layer< Service, @@ -89,10 +90,12 @@ export namespace ToolRegistry { | FileTime.Service | Instruction.Service | AppFileSystem.Service + | Bus.Service | HttpClient.HttpClient | ChildProcessSpawner | Ripgrep.Service | Format.Service + | Truncate.Service > = Layer.effect( Service, Effect.gen(function* () { @@ -100,7 +103,9 @@ export namespace ToolRegistry { const plugin = yield* Plugin.Service const agents = yield* Agent.Service const skill = yield* Skill.Service + const truncate = yield* Truncate.Service + const invalid = yield* InvalidTool const task = yield* TaskTool const read = yield* ReadTool const question = yield* QuestionTool @@ -127,23 +132,26 @@ export namespace ToolRegistry { id, parameters: z.object(def.args), description: def.description, - execute: async (args, toolCtx) => { - const pluginCtx: PluginToolContext = { - ...toolCtx, - directory: ctx.directory, - worktree: ctx.worktree, - } - const result = await def.execute(args as any, pluginCtx) - const out = await Truncate.output(result, {}, await Agent.get(toolCtx.agent)) - return { - title: "", - output: out.truncated ? out.content : result, - metadata: { - truncated: out.truncated, - outputPath: out.truncated ? out.outputPath : undefined, - }, - } - }, + execute: (args, toolCtx) => + Effect.gen(function* () { + const pluginCtx: PluginToolContext = { + ...toolCtx, + ask: (req) => toolCtx.ask(req), + directory: ctx.directory, + worktree: ctx.worktree, + } + const result = yield* Effect.promise(() => def.execute(args as any, pluginCtx)) + const agent = yield* Effect.promise(() => Agent.get(toolCtx.agent)) + const out = yield* truncate.output(result, {}, agent) + return { + title: "", + output: out.truncated ? out.content : result, + metadata: { + truncated: out.truncated, + outputPath: out.truncated ? out.outputPath : undefined, + }, + } + }), } } @@ -174,7 +182,7 @@ export namespace ToolRegistry { ["app", "cli", "desktop"].includes(Flag.OPENCODE_CLIENT) || Flag.OPENCODE_ENABLE_QUESTION_TOOL const tool = yield* Effect.all({ - invalid: Tool.init(InvalidTool), + invalid: Tool.init(invalid), bash: Tool.init(bash), read: Tool.init(read), glob: Tool.init(globtool), @@ -328,10 +336,12 @@ export namespace ToolRegistry { Layer.provide(FileTime.defaultLayer), Layer.provide(Instruction.defaultLayer), Layer.provide(AppFileSystem.defaultLayer), + Layer.provide(Bus.layer), Layer.provide(FetchHttpClient.layer), Layer.provide(Format.defaultLayer), Layer.provide(CrossSpawnSpawner.defaultLayer), Layer.provide(Ripgrep.defaultLayer), + Layer.provide(Truncate.defaultLayer), ), ) diff --git a/packages/opencode/src/tool/schema.ts b/packages/opencode/src/tool/schema.ts index 93f0f9a71f..823bb0aede 100644 --- a/packages/opencode/src/tool/schema.ts +++ b/packages/opencode/src/tool/schema.ts @@ -10,8 +10,7 @@ export type ToolID = typeof toolIdSchema.Type export const ToolID = toolIdSchema.pipe( withStatics((schema: typeof toolIdSchema) => ({ - make: (id: string) => schema.makeUnsafe(id), - ascending: (id?: string) => schema.makeUnsafe(Identifier.ascending("tool", id)), + ascending: (id?: string) => schema.make(Identifier.ascending("tool", id)), zod: Identifier.schema("tool").pipe(z.custom()), })), ) diff --git a/packages/opencode/src/tool/skill.ts b/packages/opencode/src/tool/skill.ts index f53f4e2bca..14adaf231d 100644 --- a/packages/opencode/src/tool/skill.ts +++ b/packages/opencode/src/tool/skill.ts @@ -2,6 +2,7 @@ import path from "path" import { pathToFileURL } from "url" import z from "zod" import { Effect } from "effect" +import { EffectLogger } from "@/effect/logger" import * as Stream from "effect/Stream" import { Tool } from "./tool" import { Skill } from "../skill" @@ -11,91 +12,89 @@ const Parameters = z.object({ name: z.string().describe("The name of the skill from available_skills"), }) -export const SkillTool = Tool.defineEffect( +export const SkillTool = Tool.define( "skill", Effect.gen(function* () { const skill = yield* Skill.Service const rg = yield* Ripgrep.Service + return () => + Effect.gen(function* () { + const list = yield* skill.available().pipe(Effect.provide(EffectLogger.layer)) - return async () => { - const list = await Effect.runPromise(skill.available()) + const description = + list.length === 0 + ? "Load a specialized skill that provides domain-specific instructions and workflows. No skills are currently available." + : [ + "Load a specialized skill that provides domain-specific instructions and workflows.", + "", + "When you recognize that a task matches one of the available skills listed below, use this tool to load the full skill instructions.", + "", + "The skill will inject detailed instructions, workflows, and access to bundled resources (scripts, references, templates) into the conversation context.", + "", + 'Tool output includes a `` block with the loaded content.', + "", + "The following skills provide specialized sets of instructions for particular tasks", + "Invoke this tool to load a skill when a task matches one of the available skills listed below:", + "", + Skill.fmt(list, { verbose: false }), + ].join("\n") - const description = - list.length === 0 - ? "Load a specialized skill that provides domain-specific instructions and workflows. No skills are currently available." - : [ - "Load a specialized skill that provides domain-specific instructions and workflows.", - "", - "When you recognize that a task matches one of the available skills listed below, use this tool to load the full skill instructions.", - "", - "The skill will inject detailed instructions, workflows, and access to bundled resources (scripts, references, templates) into the conversation context.", - "", - 'Tool output includes a `` block with the loaded content.', - "", - "The following skills provide specialized sets of instructions for particular tasks", - "Invoke this tool to load a skill when a task matches one of the available skills listed below:", - "", - Skill.fmt(list, { verbose: false }), - ].join("\n") + return { + description, + parameters: Parameters, + execute: (params: z.infer, ctx: Tool.Context) => + Effect.gen(function* () { + const info = yield* skill.get(params.name) - return { - description, - parameters: Parameters, - execute: (params: z.infer, ctx: Tool.Context) => - Effect.gen(function* () { - const info = yield* skill.get(params.name) + if (!info) { + const all = yield* skill.all() + const available = all.map((s) => s.name).join(", ") + throw new Error(`Skill "${params.name}" not found. Available skills: ${available || "none"}`) + } - if (!info) { - const all = yield* skill.all() - const available = all.map((s) => s.name).join(", ") - throw new Error(`Skill "${params.name}" not found. Available skills: ${available || "none"}`) - } - - yield* Effect.promise(() => - ctx.ask({ + yield* ctx.ask({ permission: "skill", patterns: [params.name], always: [params.name], metadata: {}, - }), - ) + }) - const dir = path.dirname(info.location) - const base = pathToFileURL(dir).href + const dir = path.dirname(info.location) + const base = pathToFileURL(dir).href - const limit = 10 - const files = yield* rg.files({ cwd: dir, follow: false, hidden: true }).pipe( - Stream.filter((file) => !file.includes("SKILL.md")), - Stream.map((file) => path.resolve(dir, file)), - Stream.take(limit), - Stream.runCollect, - Effect.map((chunk) => [...chunk].map((file) => `${file}`).join("\n")), - ) + const limit = 10 + const files = yield* rg.files({ cwd: dir, follow: false, hidden: true }).pipe( + Stream.filter((file) => !file.includes("SKILL.md")), + Stream.map((file) => path.resolve(dir, file)), + Stream.take(limit), + Stream.runCollect, + Effect.map((chunk) => [...chunk].map((file) => `${file}`).join("\n")), + ) - return { - title: `Loaded skill: ${info.name}`, - output: [ - ``, - `# Skill: ${info.name}`, - "", - info.content.trim(), - "", - `Base directory for this skill: ${base}`, - "Relative paths in this skill (e.g., scripts/, reference/) are relative to this base directory.", - "Note: file list is sampled.", - "", - "", - files, - "", - "", - ].join("\n"), - metadata: { - name: info.name, - dir, - }, - } - }).pipe(Effect.orDie, Effect.runPromise), - } - } + return { + title: `Loaded skill: ${info.name}`, + output: [ + ``, + `# Skill: ${info.name}`, + "", + info.content.trim(), + "", + `Base directory for this skill: ${base}`, + "Relative paths in this skill (e.g., scripts/, reference/) are relative to this base directory.", + "Note: file list is sampled.", + "", + "", + files, + "", + "", + ].join("\n"), + metadata: { + name: info.name, + dir, + }, + } + }).pipe(Effect.orDie), + } + }) }), ) diff --git a/packages/opencode/src/tool/task.ts b/packages/opencode/src/tool/task.ts index 440691e46d..ce99ab2992 100644 --- a/packages/opencode/src/tool/task.ts +++ b/packages/opencode/src/tool/task.ts @@ -12,8 +12,8 @@ import { Log } from "@/util/log" export interface TaskPromptOps { cancel(sessionID: SessionID): void - resolvePromptParts(template: string): Promise - prompt(input: SessionPrompt.PromptInput): Promise + resolvePromptParts(template: string): Effect.Effect + prompt(input: SessionPrompt.PromptInput): Effect.Effect } const id = "task" @@ -31,27 +31,26 @@ const parameters = z.object({ command: z.string().describe("The command that triggered this task").optional(), }) -export const TaskTool = Tool.defineEffect( +export const TaskTool = Tool.define( id, Effect.gen(function* () { const agent = yield* Agent.Service const config = yield* Config.Service + const sessions = yield* Session.Service const run = Effect.fn("TaskTool.execute")(function* (params: z.infer, ctx: Tool.Context) { const cfg = yield* config.get() if (!ctx.extra?.bypassAgentCheck) { - yield* Effect.promise(() => - ctx.ask({ - permission: id, - patterns: [params.subagent_type], - always: ["*"], - metadata: { - description: params.description, - subagent_type: params.subagent_type, - }, - }), - ) + yield* ctx.ask({ + permission: id, + patterns: [params.subagent_type], + always: ["*"], + metadata: { + description: params.description, + subagent_type: params.subagent_type, + }, + }) } const next = yield* agent.get(params.subagent_type) @@ -64,44 +63,39 @@ export const TaskTool = Tool.defineEffect( const taskID = params.task_id const session = taskID - ? yield* Effect.promise(() => { - const id = SessionID.make(taskID) - return Session.get(id).catch(() => undefined) - }) + ? yield* sessions.get(SessionID.make(taskID)).pipe(Effect.catchCause(() => Effect.succeed(undefined))) : undefined const nextSession = session ?? - (yield* Effect.promise(() => - Session.create({ - parentID: ctx.sessionID, - title: params.description + ` (@${next.name} subagent)`, - permission: [ - ...(canTodo - ? [] - : [ - { - permission: "todowrite" as const, - pattern: "*" as const, - action: "deny" as const, - }, - ]), - ...(canTask - ? [] - : [ - { - permission: id, - pattern: "*" as const, - action: "deny" as const, - }, - ]), - ...(cfg.experimental?.primary_tools?.map((item) => ({ - pattern: "*", - action: "allow" as const, - permission: item, - })) ?? []), - ], - }), - )) + (yield* sessions.create({ + parentID: ctx.sessionID, + title: params.description + ` (@${next.name} subagent)`, + permission: [ + ...(canTodo + ? [] + : [ + { + permission: "todowrite" as const, + pattern: "*" as const, + action: "deny" as const, + }, + ]), + ...(canTask + ? [] + : [ + { + permission: id, + pattern: "*" as const, + action: "deny" as const, + }, + ]), + ...(cfg.experimental?.primary_tools?.map((item) => ({ + pattern: "*", + action: "allow" as const, + permission: item, + })) ?? []), + ], + })) const msg = yield* Effect.sync(() => MessageV2.get({ sessionID: ctx.sessionID, messageID: ctx.messageID })) if (msg.info.role !== "assistant") return yield* Effect.fail(new Error("Not an assistant message")) @@ -111,7 +105,7 @@ export const TaskTool = Tool.defineEffect( providerID: msg.info.providerID, } - ctx.metadata({ + yield* ctx.metadata({ title: params.description, metadata: { sessionId: nextSession.id, @@ -134,24 +128,22 @@ export const TaskTool = Tool.defineEffect( }), () => Effect.gen(function* () { - const parts = yield* Effect.promise(() => ops.resolvePromptParts(params.prompt)) - const result = yield* Effect.promise(() => - ops.prompt({ - messageID, - sessionID: nextSession.id, - model: { - modelID: model.modelID, - providerID: model.providerID, - }, - agent: next.name, - tools: { - ...(canTodo ? {} : { todowrite: false }), - ...(canTask ? {} : { task: false }), - ...Object.fromEntries((cfg.experimental?.primary_tools ?? []).map((item) => [item, false])), - }, - parts, - }), - ) + const parts = yield* ops.resolvePromptParts(params.prompt) + const result = yield* ops.prompt({ + messageID, + sessionID: nextSession.id, + model: { + modelID: model.modelID, + providerID: model.providerID, + }, + agent: next.name, + tools: { + ...(canTodo ? {} : { todowrite: false }), + ...(canTask ? {} : { task: false }), + ...Object.fromEntries((cfg.experimental?.primary_tools ?? []).map((item) => [item, false])), + }, + parts, + }) return { title: params.description, @@ -178,9 +170,7 @@ export const TaskTool = Tool.defineEffect( return { description: DESCRIPTION, parameters, - async execute(params: z.infer, ctx) { - return Effect.runPromise(run(params, ctx)) - }, + execute: (params: z.infer, ctx: Tool.Context) => run(params, ctx).pipe(Effect.orDie), } }), ) diff --git a/packages/opencode/src/tool/todo.ts b/packages/opencode/src/tool/todo.ts index 92318164c6..253bcfa32a 100644 --- a/packages/opencode/src/tool/todo.ts +++ b/packages/opencode/src/tool/todo.ts @@ -12,7 +12,7 @@ type Metadata = { todos: Todo.Info[] } -export const TodoWriteTool = Tool.defineEffect( +export const TodoWriteTool = Tool.define( "todowrite", Effect.gen(function* () { const todo = yield* Todo.Service @@ -20,29 +20,28 @@ export const TodoWriteTool = Tool.defineEffect, ctx: Tool.Context) { - await ctx.ask({ - permission: "todowrite", - patterns: ["*"], - always: ["*"], - metadata: {}, - }) + execute: (params: z.infer, ctx: Tool.Context) => + Effect.gen(function* () { + yield* ctx.ask({ + permission: "todowrite", + patterns: ["*"], + always: ["*"], + metadata: {}, + }) - await todo - .update({ + yield* todo.update({ sessionID: ctx.sessionID, todos: params.todos, }) - .pipe(Effect.runPromise) - return { - title: `${params.todos.filter((x) => x.status !== "completed").length} todos`, - output: JSON.stringify(params.todos, null, 2), - metadata: { - todos: params.todos, - }, - } - }, + return { + title: `${params.todos.filter((x) => x.status !== "completed").length} todos`, + output: JSON.stringify(params.todos, null, 2), + metadata: { + todos: params.todos, + }, + } + }), } satisfies Tool.DefWithoutID }), ) diff --git a/packages/opencode/src/tool/tool.ts b/packages/opencode/src/tool/tool.ts index ae347341cc..3009f4cd27 100644 --- a/packages/opencode/src/tool/tool.ts +++ b/packages/opencode/src/tool/tool.ts @@ -22,23 +22,22 @@ export namespace Tool { callID?: string extra?: { [key: string]: any } messages: MessageV2.WithParts[] - metadata(input: { title?: string; metadata?: M }): void - ask(input: Omit): Promise + metadata(input: { title?: string; metadata?: M }): Effect.Effect + ask(input: Omit): Effect.Effect + } + + export interface ExecuteResult { + title: string + metadata: M + output: string + attachments?: Omit[] } export interface Def { id: string description: string parameters: Parameters - execute( - args: z.infer, - ctx: Context, - ): Promise<{ - title: string - metadata: M - output: string - attachments?: Omit[] - }> + execute(args: z.infer, ctx: Context): Effect.Effect> formatValidationError?(error: z.ZodError): string } export type DefWithoutID = Omit< @@ -48,9 +47,13 @@ export namespace Tool { export interface Info { id: string - init: () => Promise> + init: () => Effect.Effect> } + type Init = + | DefWithoutID + | (() => Effect.Effect>) + export type InferParameters = T extends Info ? z.infer

@@ -67,67 +70,58 @@ export namespace Tool { ? Def : never - function wrap( - id: string, - init: (() => Promise>) | DefWithoutID, - ) { - return async () => { - const toolInfo = init instanceof Function ? await init() : { ...init } - const execute = toolInfo.execute - toolInfo.execute = async (args, ctx) => { - try { - toolInfo.parameters.parse(args) - } catch (error) { - if (error instanceof z.ZodError && toolInfo.formatValidationError) { - throw new Error(toolInfo.formatValidationError(error), { cause: error }) - } - throw new Error( - `The ${id} tool was called with invalid arguments: ${error}.\nPlease rewrite the input so it satisfies the expected schema.`, - { cause: error }, - ) - } - const result = await execute(args, ctx) - if (result.metadata.truncated !== undefined) { - return result - } - const truncated = await Truncate.output(result.output, {}, await Agent.get(ctx.agent)) - return { - ...result, - output: truncated.content, - metadata: { - ...result.metadata, - truncated: truncated.truncated, - ...(truncated.truncated && { outputPath: truncated.outputPath }), - }, - } - } - return toolInfo - } + function wrap(id: string, init: Init) { + return () => + Effect.gen(function* () { + const toolInfo = init instanceof Function ? { ...(yield* init()) } : { ...init } + const execute = toolInfo.execute + toolInfo.execute = (args, ctx) => + Effect.gen(function* () { + yield* Effect.try({ + try: () => toolInfo.parameters.parse(args), + catch: (error) => { + if (error instanceof z.ZodError && toolInfo.formatValidationError) { + return new Error(toolInfo.formatValidationError(error), { cause: error }) + } + return new Error( + `The ${id} tool was called with invalid arguments: ${error}.\nPlease rewrite the input so it satisfies the expected schema.`, + { cause: error }, + ) + }, + }) + const result = yield* execute(args, ctx) + if (result.metadata.truncated !== undefined) { + return result + } + const agent = yield* Effect.promise(() => Agent.get(ctx.agent)) + const truncated = yield* Effect.promise(() => Truncate.output(result.output, {}, agent)) + return { + ...result, + output: truncated.content, + metadata: { + ...result.metadata, + truncated: truncated.truncated, + ...(truncated.truncated && { outputPath: truncated.outputPath }), + }, + } + }).pipe(Effect.orDie) + return toolInfo + }) } - export function define( + export function define( id: ID, - init: (() => Promise>) | DefWithoutID, - ): Info & { id: ID } { - return { - id, - init: wrap(id, init), - } - } - - export function defineEffect( - id: ID, - init: Effect.Effect<(() => Promise>) | DefWithoutID, never, R>, + init: Effect.Effect, never, R>, ): Effect.Effect, never, R> & { id: ID } { return Object.assign( - Effect.map(init, (next) => ({ id, init: wrap(id, next) })), + Effect.map(init, (init) => ({ id, init: wrap(id, init) })), { id }, ) } export function init

(info: Info): Effect.Effect> { return Effect.gen(function* () { - const init = yield* Effect.promise(() => info.init()) + const init = yield* info.init() return { ...init, id: info.id, diff --git a/packages/opencode/src/tool/truncate.ts b/packages/opencode/src/tool/truncate.ts index 5cddacefc6..716929cc64 100644 --- a/packages/opencode/src/tool/truncate.ts +++ b/packages/opencode/src/tool/truncate.ts @@ -1,5 +1,5 @@ import { NodePath } from "@effect/platform-node" -import { Cause, Duration, Effect, Layer, Schedule, ServiceMap } from "effect" +import { Cause, Duration, Effect, Layer, Schedule, Context } from "effect" import path from "path" import type { Agent } from "../agent/agent" import { makeRuntime } from "@/effect/run-service" @@ -41,7 +41,7 @@ export namespace Truncate { readonly output: (text: string, options?: Options, agent?: Agent.Info) => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/Truncate") {} + export class Service extends Context.Service()("@opencode/Truncate") {} export const layer = Layer.effect( Service, diff --git a/packages/opencode/src/tool/webfetch.ts b/packages/opencode/src/tool/webfetch.ts index 1c89d950a3..9339038b0f 100644 --- a/packages/opencode/src/tool/webfetch.ts +++ b/packages/opencode/src/tool/webfetch.ts @@ -18,7 +18,7 @@ const parameters = z.object({ timeout: z.number().describe("Optional timeout in seconds (max 120)").optional(), }) -export const WebFetchTool = Tool.defineEffect( +export const WebFetchTool = Tool.define( "webfetch", Effect.gen(function* () { const http = yield* HttpClient.HttpClient @@ -33,18 +33,16 @@ export const WebFetchTool = Tool.defineEffect( throw new Error("URL must start with http:// or https://") } - yield* Effect.promise(() => - ctx.ask({ - permission: "webfetch", - patterns: [params.url], - always: ["*"], - metadata: { - url: params.url, - format: params.format, - timeout: params.timeout, - }, - }), - ) + yield* ctx.ask({ + permission: "webfetch", + patterns: [params.url], + always: ["*"], + metadata: { + url: params.url, + format: params.format, + timeout: params.timeout, + }, + }) const timeout = Math.min((params.timeout ?? DEFAULT_TIMEOUT / 1000) * 1000, MAX_TIMEOUT) @@ -153,7 +151,7 @@ export const WebFetchTool = Tool.defineEffect( default: return { output: content, title, metadata: {} } } - }).pipe(Effect.runPromise), + }).pipe(Effect.orDie), } }), ) diff --git a/packages/opencode/src/tool/websearch.ts b/packages/opencode/src/tool/websearch.ts index be7b9b3993..968e1e34b6 100644 --- a/packages/opencode/src/tool/websearch.ts +++ b/packages/opencode/src/tool/websearch.ts @@ -24,7 +24,7 @@ const Parameters = z.object({ .describe("Maximum characters for context string optimized for LLMs (default: 10000)"), }) -export const WebSearchTool = Tool.defineEffect( +export const WebSearchTool = Tool.define( "websearch", Effect.gen(function* () { const http = yield* HttpClient.HttpClient @@ -36,20 +36,18 @@ export const WebSearchTool = Tool.defineEffect( parameters: Parameters, execute: (params: z.infer, ctx: Tool.Context) => Effect.gen(function* () { - yield* Effect.promise(() => - ctx.ask({ - permission: "websearch", - patterns: [params.query], - always: ["*"], - metadata: { - query: params.query, - numResults: params.numResults, - livecrawl: params.livecrawl, - type: params.type, - contextMaxCharacters: params.contextMaxCharacters, - }, - }), - ) + yield* ctx.ask({ + permission: "websearch", + patterns: [params.query], + always: ["*"], + metadata: { + query: params.query, + numResults: params.numResults, + livecrawl: params.livecrawl, + type: params.type, + contextMaxCharacters: params.contextMaxCharacters, + }, + }) const result = yield* McpExa.call( http, @@ -70,7 +68,7 @@ export const WebSearchTool = Tool.defineEffect( title: `Web search: ${params.query}`, metadata: {}, } - }).pipe(Effect.runPromise), + }).pipe(Effect.orDie), } }), ) diff --git a/packages/opencode/src/tool/write.ts b/packages/opencode/src/tool/write.ts index 23a975abcd..7a9d82cf8b 100644 --- a/packages/opencode/src/tool/write.ts +++ b/packages/opencode/src/tool/write.ts @@ -15,15 +15,16 @@ import { Instance } from "../project/instance" import { trimDiff } from "./edit" import { assertExternalDirectoryEffect } from "./external-directory" -const MAX_DIAGNOSTICS_PER_FILE = 20 const MAX_PROJECT_DIAGNOSTICS_FILES = 5 -export const WriteTool = Tool.defineEffect( +export const WriteTool = Tool.define( "write", Effect.gen(function* () { const lsp = yield* LSP.Service const fs = yield* AppFileSystem.Service const filetime = yield* FileTime.Service + const bus = yield* Bus.Service + const format = yield* Format.Service return { description: DESCRIPTION, @@ -43,27 +44,23 @@ export const WriteTool = Tool.defineEffect( if (exists) yield* filetime.assert(ctx.sessionID, filepath) const diff = trimDiff(createTwoFilesPatch(filepath, filepath, contentOld, params.content)) - yield* Effect.promise(() => - ctx.ask({ - permission: "edit", - patterns: [path.relative(Instance.worktree, filepath)], - always: ["*"], - metadata: { - filepath, - diff, - }, - }), - ) + yield* ctx.ask({ + permission: "edit", + patterns: [path.relative(Instance.worktree, filepath)], + always: ["*"], + metadata: { + filepath, + diff, + }, + }) yield* fs.writeWithDirs(filepath, params.content) - yield* Effect.promise(() => Format.file(filepath)) - Bus.publish(File.Event.Edited, { file: filepath }) - yield* Effect.promise(() => - Bus.publish(FileWatcher.Event.Updated, { - file: filepath, - event: exists ? "change" : "add", - }), - ) + yield* format.file(filepath) + yield* bus.publish(File.Event.Edited, { file: filepath }) + yield* bus.publish(FileWatcher.Event.Updated, { + file: filepath, + event: exists ? "change" : "add", + }) yield* filetime.read(ctx.sessionID, filepath) let output = "Wrote file successfully." @@ -72,20 +69,16 @@ export const WriteTool = Tool.defineEffect( const normalizedFilepath = AppFileSystem.normalizePath(filepath) let projectDiagnosticsCount = 0 for (const [file, issues] of Object.entries(diagnostics)) { - const errors = issues.filter((item) => item.severity === 1) - if (errors.length === 0) continue - const limited = errors.slice(0, MAX_DIAGNOSTICS_PER_FILE) - const suffix = - errors.length > MAX_DIAGNOSTICS_PER_FILE - ? `\n... and ${errors.length - MAX_DIAGNOSTICS_PER_FILE} more` - : "" - if (file === normalizedFilepath) { - output += `\n\nLSP errors detected in this file, please fix:\n\n${limited.map(LSP.Diagnostic.pretty).join("\n")}${suffix}\n` + const current = file === normalizedFilepath + if (!current && projectDiagnosticsCount >= MAX_PROJECT_DIAGNOSTICS_FILES) continue + const block = LSP.Diagnostic.report(current ? filepath : file, issues) + if (!block) continue + if (current) { + output += `\n\nLSP errors detected in this file, please fix:\n${block}` continue } - if (projectDiagnosticsCount >= MAX_PROJECT_DIAGNOSTICS_FILES) continue projectDiagnosticsCount++ - output += `\n\nLSP errors detected in other files:\n\n${limited.map(LSP.Diagnostic.pretty).join("\n")}${suffix}\n` + output += `\n\nLSP errors detected in other files:\n${block}` } return { @@ -97,7 +90,7 @@ export const WriteTool = Tool.defineEffect( }, output, } - }).pipe(Effect.orDie, Effect.runPromise), + }).pipe(Effect.orDie), } }), ) diff --git a/packages/opencode/src/util/context.ts b/packages/opencode/src/util/local-context.ts similarity index 94% rename from packages/opencode/src/util/context.ts rename to packages/opencode/src/util/local-context.ts index 46bbf46081..26f88ab09e 100644 --- a/packages/opencode/src/util/context.ts +++ b/packages/opencode/src/util/local-context.ts @@ -1,6 +1,6 @@ import { AsyncLocalStorage } from "async_hooks" -export namespace Context { +export namespace LocalContext { export class NotFound extends Error { constructor(public override readonly name: string) { super(`No context found for ${name}`) diff --git a/packages/opencode/src/util/schema.ts b/packages/opencode/src/util/schema.ts index 6a88dba539..405f6a7182 100644 --- a/packages/opencode/src/util/schema.ts +++ b/packages/opencode/src/util/schema.ts @@ -6,7 +6,7 @@ import { Schema } from "effect" * @example * export const Foo = fooSchema.pipe( * withStatics((schema) => ({ - * zero: schema.makeUnsafe(0), + * zero: schema.make(0), * from: Schema.decodeUnknownOption(schema), * })) * ) @@ -26,7 +26,7 @@ type NewtypeBrand = { readonly [NewtypeBrand]: Tag } * @example * class QuestionID extends Newtype()("QuestionID", Schema.String) { * static make(id: string): QuestionID { - * return this.makeUnsafe(id) + * return this.make(id) * } * } * @@ -39,7 +39,7 @@ export function Newtype() { abstract class Base { declare readonly [NewtypeBrand]: Tag - static makeUnsafe(value: Schema.Schema.Type): Self { + static make(value: Schema.Schema.Type): Self { return value as unknown as Self } } @@ -47,7 +47,7 @@ export function Newtype() { Object.setPrototypeOf(Base, schema) return Base as unknown as (abstract new (_: never) => Branded) & { - readonly makeUnsafe: (value: Schema.Schema.Type) => Self - } & Omit, "makeUnsafe"> + readonly make: (value: Schema.Schema.Type) => Self + } & Omit, "make"> } } diff --git a/packages/opencode/src/v2/message.ts b/packages/opencode/src/v2/message.ts new file mode 100644 index 0000000000..008a45a369 --- /dev/null +++ b/packages/opencode/src/v2/message.ts @@ -0,0 +1,68 @@ +import { Identifier } from "@/id/id" +import { withStatics } from "@/util/schema" +import { DateTime, Effect, Schema } from "effect" + +export namespace Message { + export const ID = Schema.String.pipe(Schema.brand("Message.ID")).pipe( + withStatics((s) => ({ + create: () => s.make(Identifier.ascending("message")), + prefix: "msg", + })), + ) + + export class File extends Schema.Class("Message.File")({ + url: Schema.String, + mime: Schema.String, + }) { + static create(url: string) { + return new File({ + url, + mime: "text/plain", + }) + } + } + + export class UserContent extends Schema.Class("Message.User.Content")({ + text: Schema.String, + synthetic: Schema.Boolean.pipe(Schema.optional), + agent: Schema.String.pipe(Schema.optional), + files: Schema.Array(File).pipe(Schema.optional), + }) {} + + export class User extends Schema.Class("Message.User")({ + id: ID, + type: Schema.Literal("user"), + time: Schema.Struct({ + created: Schema.DateTimeUtc, + }), + content: UserContent, + }) { + static create(content: Schema.Schema.Type) { + const msg = new User({ + id: ID.create(), + type: "user", + time: { + created: Effect.runSync(DateTime.now), + }, + content, + }) + return msg + } + + static file(url: string) { + return new File({ + url, + mime: "text/plain", + }) + } + } + + export namespace User {} +} + +const msg = Message.User.create({ + text: "Hello world", + files: [Message.File.create("file://example.com/file.txt")], +}) + +console.log(JSON.stringify(msg, null, 2)) diff --git a/packages/opencode/src/worktree/index.ts b/packages/opencode/src/worktree/index.ts index dc15483008..f4ec0af83c 100644 --- a/packages/opencode/src/worktree/index.ts +++ b/packages/opencode/src/worktree/index.ts @@ -13,7 +13,7 @@ import { errorMessage } from "../util/error" import { BusEvent } from "@/bus/bus-event" import { GlobalBus } from "@/bus/global" import { Git } from "@/git" -import { Effect, Layer, Path, Scope, ServiceMap, Stream } from "effect" +import { Effect, Layer, Path, Scope, Context, Stream } from "effect" import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process" import { NodePath } from "@effect/platform-node" import { AppFileSystem } from "@/filesystem" @@ -164,7 +164,7 @@ export namespace Worktree { readonly reset: (input: ResetInput) => Effect.Effect } - export class Service extends ServiceMap.Service()("@opencode/Worktree") {} + export class Service extends Context.Service()("@opencode/Worktree") {} type GitResult = { code: number; text: string; stderr: string } diff --git a/packages/opencode/test/effect/instance-state.test.ts b/packages/opencode/test/effect/instance-state.test.ts index 914753312f..813ca344a9 100644 --- a/packages/opencode/test/effect/instance-state.test.ts +++ b/packages/opencode/test/effect/instance-state.test.ts @@ -1,5 +1,5 @@ import { afterEach, expect, test } from "bun:test" -import { Cause, Deferred, Duration, Effect, Exit, Fiber, Layer, ManagedRuntime, ServiceMap } from "effect" +import { Cause, Deferred, Duration, Effect, Exit, Fiber, Layer, ManagedRuntime, Context } from "effect" import { InstanceState } from "../../src/effect/instance-state" import { InstanceRef } from "../../src/effect/instance-ref" import { Instance } from "../../src/project/instance" @@ -122,7 +122,7 @@ test("InstanceState.get reads the current directory lazily", async () => { readonly get: () => Effect.Effect } - class Test extends ServiceMap.Service()("@test/InstanceStateLazy") { + class Test extends Context.Service()("@test/InstanceStateLazy") { static readonly layer = Layer.effect( Test, Effect.gen(function* () { @@ -166,7 +166,7 @@ test("InstanceState preserves directory across async boundaries", async () => { readonly get: () => Effect.Effect<{ directory: string; worktree: string; project: string }> } - class Test extends ServiceMap.Service()("@test/InstanceStateAsync") { + class Test extends Context.Service()("@test/InstanceStateAsync") { static readonly layer = Layer.effect( Test, Effect.gen(function* () { @@ -234,7 +234,7 @@ test("InstanceState survives high-contention concurrent access", async () => { readonly get: () => Effect.Effect } - class Test extends ServiceMap.Service()("@test/HighContention") { + class Test extends Context.Service()("@test/HighContention") { static readonly layer = Layer.effect( Test, Effect.gen(function* () { @@ -284,7 +284,7 @@ test("InstanceState correct after interleaved init and dispose", async () => { readonly get: () => Effect.Effect } - class Test extends ServiceMap.Service()("@test/InterleavedDispose") { + class Test extends Context.Service()("@test/InterleavedDispose") { static readonly layer = Layer.effect( Test, Effect.gen(function* () { @@ -391,7 +391,7 @@ test("InstanceState survives deferred resume from the same instance context", as readonly get: (gate: Deferred.Deferred) => Effect.Effect } - class Test extends ServiceMap.Service()("@test/DeferredResume") { + class Test extends Context.Service()("@test/DeferredResume") { static readonly layer = Layer.effect( Test, Effect.gen(function* () { @@ -438,7 +438,7 @@ test("InstanceState survives deferred resume outside ALS when InstanceRef is set readonly get: (gate: Deferred.Deferred) => Effect.Effect } - class Test extends ServiceMap.Service()("@test/DeferredResumeOutside") { + class Test extends Context.Service()("@test/DeferredResumeOutside") { static readonly layer = Layer.effect( Test, Effect.gen(function* () { diff --git a/packages/opencode/test/effect/run-service.test.ts b/packages/opencode/test/effect/run-service.test.ts index b2004fb664..b5f1a1d09b 100644 --- a/packages/opencode/test/effect/run-service.test.ts +++ b/packages/opencode/test/effect/run-service.test.ts @@ -1,8 +1,8 @@ import { expect, test } from "bun:test" -import { Effect, Layer, ServiceMap } from "effect" +import { Effect, Layer, Context } from "effect" import { makeRuntime } from "../../src/effect/run-service" -class Shared extends ServiceMap.Service()("@test/Shared") {} +class Shared extends Context.Service()("@test/Shared") {} test("makeRuntime shares dependent layers through the shared memo map", async () => { let n = 0 @@ -15,7 +15,7 @@ test("makeRuntime shares dependent layers through the shared memo map", async () }), ) - class One extends ServiceMap.Service Effect.Effect }>()("@test/One") {} + class One extends Context.Service Effect.Effect }>()("@test/One") {} const one = Layer.effect( One, Effect.gen(function* () { @@ -26,7 +26,7 @@ test("makeRuntime shares dependent layers through the shared memo map", async () }), ).pipe(Layer.provide(shared)) - class Two extends ServiceMap.Service Effect.Effect }>()("@test/Two") {} + class Two extends Context.Service Effect.Effect }>()("@test/Two") {} const two = Layer.effect( Two, Effect.gen(function* () { diff --git a/packages/opencode/test/fixture/fixture.ts b/packages/opencode/test/fixture/fixture.ts index 03713d879c..7970543547 100644 --- a/packages/opencode/test/fixture/fixture.ts +++ b/packages/opencode/test/fixture/fixture.ts @@ -2,7 +2,7 @@ import { $ } from "bun" import * as fs from "fs/promises" import os from "os" import path from "path" -import { Effect, ServiceMap } from "effect" +import { Effect, Context } from "effect" import type * as PlatformError from "effect/PlatformError" import type * as Scope from "effect/Scope" import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process" @@ -123,7 +123,7 @@ export function tmpdirScoped(options?: { git?: boolean; config?: Partial (self: Effect.Effect): Effect.Effect => - Effect.servicesWith((services: ServiceMap.ServiceMap) => + Effect.contextWith((services: Context.Context) => Effect.promise(async () => Instance.provide({ directory, diff --git a/packages/opencode/test/installation/installation.test.ts b/packages/opencode/test/installation/installation.test.ts index b05c31029e..2b04c38585 100644 --- a/packages/opencode/test/installation/installation.test.ts +++ b/packages/opencode/test/installation/installation.test.ts @@ -27,6 +27,7 @@ function mockSpawner(handler: (cmd: string, args: readonly string[]) => string = all: Stream.empty, getInputFd: () => ({ [Symbol.for("effect/Sink/TypeId")]: Symbol.for("effect/Sink/TypeId") }) as any, getOutputFd: () => Stream.empty, + unref: Effect.succeed(Effect.void), }), ) }) diff --git a/packages/opencode/test/lib/llm-server.ts b/packages/opencode/test/lib/llm-server.ts index fbad6ac145..2e2a2ea895 100644 --- a/packages/opencode/test/lib/llm-server.ts +++ b/packages/opencode/test/lib/llm-server.ts @@ -1,6 +1,6 @@ import { NodeHttpServer, NodeHttpServerRequest } from "@effect/platform-node" import * as Http from "node:http" -import { Deferred, Effect, Layer, ServiceMap, Stream } from "effect" +import { Deferred, Effect, Layer, Context, Stream } from "effect" import * as HttpServer from "effect/unstable/http/HttpServer" import { HttpRouter, HttpServerRequest, HttpServerResponse } from "effect/unstable/http" @@ -650,7 +650,7 @@ namespace TestLLMServer { } } -export class TestLLMServer extends ServiceMap.Service()("@test/LLMServer") { +export class TestLLMServer extends Context.Service()("@test/LLMServer") { static readonly layer = Layer.effect( TestLLMServer, Effect.gen(function* () { diff --git a/packages/opencode/test/memory/abort-leak-webfetch.ts b/packages/opencode/test/memory/abort-leak-webfetch.ts new file mode 100644 index 0000000000..1286d5f0b3 --- /dev/null +++ b/packages/opencode/test/memory/abort-leak-webfetch.ts @@ -0,0 +1,49 @@ +import { abortAfterAny } from "../../src/util/abort" + +const MB = 1024 * 1024 +const ITERATIONS = 50 + +const heap = () => { + Bun.gc(true) + return process.memoryUsage().heapUsed / MB +} + +const server = Bun.serve({ + port: 0, + fetch() { + return new Response("hello from local", { + headers: { + "content-type": "text/plain", + }, + }) + }, +}) + +const url = `http://127.0.0.1:${server.port}` + +async function run() { + const { signal, clearTimeout } = abortAfterAny(30000, new AbortController().signal) + try { + const response = await fetch(url, { signal }) + await response.text() + } finally { + clearTimeout() + } +} + +try { + await run() + Bun.sleepSync(100) + const baseline = heap() + + for (let i = 0; i < ITERATIONS; i++) { + await run() + } + + Bun.sleepSync(100) + const after = heap() + process.stdout.write(JSON.stringify({ baseline, after, growth: after - baseline })) +} finally { + server.stop(true) + process.exit(0) +} diff --git a/packages/opencode/test/memory/abort-leak.test.ts b/packages/opencode/test/memory/abort-leak.test.ts index 2d0180783b..d30ad45e46 100644 --- a/packages/opencode/test/memory/abort-leak.test.ts +++ b/packages/opencode/test/memory/abort-leak.test.ts @@ -1,23 +1,8 @@ import { describe, test, expect } from "bun:test" import path from "path" -import { Effect } from "effect" -import { FetchHttpClient } from "effect/unstable/http" -import { Instance } from "../../src/project/instance" -import { WebFetchTool } from "../../src/tool/webfetch" -import { SessionID, MessageID } from "../../src/session/schema" -const projectRoot = path.join(__dirname, "../..") - -const ctx = { - sessionID: SessionID.make("ses_test"), - messageID: MessageID.make(""), - callID: "", - agent: "build", - abort: new AbortController().signal, - messages: [], - metadata: () => {}, - ask: async () => {}, -} +const projectRoot = path.join(import.meta.dir, "../..") +const worker = path.join(import.meta.dir, "abort-leak-webfetch.ts") const MB = 1024 * 1024 const ITERATIONS = 50 @@ -29,39 +14,38 @@ const getHeapMB = () => { describe("memory: abort controller leak", () => { test("webfetch does not leak memory over many invocations", async () => { - await Instance.provide({ - directory: projectRoot, - fn: async () => { - const tool = await WebFetchTool.pipe( - Effect.flatMap((info) => Effect.promise(() => info.init())), - Effect.provide(FetchHttpClient.layer), - Effect.runPromise, - ) - - // Warm up - await tool.execute({ url: "https://example.com", format: "text" }, ctx).catch(() => {}) - - Bun.gc(true) - const baseline = getHeapMB() - - // Run many fetches - for (let i = 0; i < ITERATIONS; i++) { - await tool.execute({ url: "https://example.com", format: "text" }, ctx).catch(() => {}) - } - - Bun.gc(true) - const after = getHeapMB() - const growth = after - baseline - - console.log(`Baseline: ${baseline.toFixed(2)} MB`) - console.log(`After ${ITERATIONS} fetches: ${after.toFixed(2)} MB`) - console.log(`Growth: ${growth.toFixed(2)} MB`) - - // Memory growth should be minimal - less than 1MB per 10 requests - // With the old closure pattern, this would grow ~0.5MB per request - expect(growth).toBeLessThan(ITERATIONS / 10) - }, + // Measure the abort-timed fetch path in a fresh process so shared tool + // runtime state does not dominate the heap signal. + const proc = Bun.spawn({ + cmd: [process.execPath, worker], + cwd: projectRoot, + stdout: "pipe", + stderr: "pipe", + env: process.env, }) + + const [code, stdout, stderr] = await Promise.all([ + proc.exited, + new Response(proc.stdout).text(), + new Response(proc.stderr).text(), + ]) + + if (code !== 0) { + throw new Error(stderr.trim() || stdout.trim() || `worker exited with code ${code}`) + } + + const result = JSON.parse(stdout.trim()) as { + baseline: number + after: number + growth: number + } + + console.log(`Baseline: ${result.baseline.toFixed(2)} MB`) + console.log(`After ${ITERATIONS} fetches: ${result.after.toFixed(2)} MB`) + console.log(`Growth: ${result.growth.toFixed(2)} MB`) + + // Memory growth should be minimal - less than 1MB per 10 requests. + expect(result.growth).toBeLessThan(ITERATIONS / 10) }, 60000) test("compare closure vs bind pattern directly", async () => { diff --git a/packages/opencode/test/plugin/auth-override.test.ts b/packages/opencode/test/plugin/auth-override.test.ts index 6b77083828..36a02058ea 100644 --- a/packages/opencode/test/plugin/auth-override.test.ts +++ b/packages/opencode/test/plugin/auth-override.test.ts @@ -1,6 +1,7 @@ import { describe, expect, test } from "bun:test" import path from "path" import fs from "fs/promises" +import { Effect } from "effect" import { tmpdir } from "../fixture/fixture" import { Instance } from "../../src/project/instance" import { ProviderAuth } from "../../src/provider/auth" @@ -39,14 +40,18 @@ describe("plugin.auth-override", () => { const methods = await Instance.provide({ directory: tmp.path, fn: async () => { - return ProviderAuth.methods() + return Effect.runPromise( + ProviderAuth.Service.use((svc) => svc.methods()).pipe(Effect.provide(ProviderAuth.defaultLayer)), + ) }, }) const plainMethods = await Instance.provide({ directory: plain.path, fn: async () => { - return ProviderAuth.methods() + return Effect.runPromise( + ProviderAuth.Service.use((svc) => svc.methods()).pipe(Effect.provide(ProviderAuth.defaultLayer)), + ) }, }) diff --git a/packages/opencode/test/plugin/loader-shared.test.ts b/packages/opencode/test/plugin/loader-shared.test.ts index c01a02ef41..32b6c601d1 100644 --- a/packages/opencode/test/plugin/loader-shared.test.ts +++ b/packages/opencode/test/plugin/loader-shared.test.ts @@ -13,8 +13,6 @@ const { PluginLoader } = await import("../../src/plugin/loader") const { readPackageThemes } = await import("../../src/plugin/shared") const { Instance } = await import("../../src/project/instance") const { Npm } = await import("../../src/npm") -const { Bus } = await import("../../src/bus") -const { Session } = await import("../../src/session") afterAll(() => { if (disableDefault === undefined) { @@ -37,27 +35,6 @@ async function load(dir: string) { }) } -async function errs(dir: string) { - return Instance.provide({ - directory: dir, - fn: async () => { - const errors: string[] = [] - const off = Bus.subscribe(Session.Event.Error, (evt) => { - const error = evt.properties.error - if (!error || typeof error !== "object") return - if (!("data" in error)) return - if (!error.data || typeof error.data !== "object") return - if (!("message" in error.data)) return - if (typeof error.data.message !== "string") return - errors.push(error.data.message) - }) - await Plugin.list() - off() - return errors - }, - }) -} - describe("plugin.loader.shared", () => { test("loads a file:// plugin function export", async () => { await using tmp = await tmpdir({ @@ -184,14 +161,13 @@ describe("plugin.loader.shared", () => { }, }) - const errors = await errs(tmp.path) + await load(tmp.path) const called = await Bun.file(tmp.extra.mark) .text() .then(() => true) .catch(() => false) expect(called).toBe(false) - expect(errors.some((x) => x.includes("must export id"))).toBe(true) }) test("rejects v1 plugin that exports server and tui together", async () => { @@ -223,14 +199,13 @@ describe("plugin.loader.shared", () => { }, }) - const errors = await errs(tmp.path) + await load(tmp.path) const called = await Bun.file(tmp.extra.mark) .text() .then(() => true) .catch(() => false) expect(called).toBe(false) - expect(errors.some((x) => x.includes("either server() or tui(), not both"))).toBe(true) }) test("resolves npm plugin specs with explicit and default versions", async () => { @@ -383,8 +358,7 @@ describe("plugin.loader.shared", () => { const install = spyOn(Npm, "add").mockResolvedValue({ directory: tmp.extra.mod, entrypoint: tmp.extra.mod }) try { - const errors = await errs(tmp.path) - expect(errors).toHaveLength(0) + await load(tmp.path) expect(await Bun.file(tmp.extra.mark).text()).toBe("called") } finally { install.mockRestore() @@ -436,8 +410,7 @@ describe("plugin.loader.shared", () => { const install = spyOn(Npm, "add").mockResolvedValue({ directory: tmp.extra.mod, entrypoint: tmp.extra.mod }) try { - const errors = await errs(tmp.path) - expect(errors).toHaveLength(0) + await load(tmp.path) expect(await Bun.file(tmp.extra.mark).text()).toBe("called") } finally { install.mockRestore() @@ -482,14 +455,13 @@ describe("plugin.loader.shared", () => { const install = spyOn(Npm, "add").mockResolvedValue({ directory: tmp.extra.mod, entrypoint: tmp.extra.mod }) try { - const errors = await errs(tmp.path) + await load(tmp.path) const called = await Bun.file(tmp.extra.mark) .text() .then(() => true) .catch(() => false) expect(called).toBe(false) - expect(errors).toHaveLength(0) } finally { install.mockRestore() } @@ -546,13 +518,12 @@ describe("plugin.loader.shared", () => { const install = spyOn(Npm, "add").mockResolvedValue({ directory: tmp.extra.mod, entrypoint: tmp.extra.mod }) try { - const errors = await errs(tmp.path) + await load(tmp.path) const called = await Bun.file(tmp.extra.mark) .text() .then(() => true) .catch(() => false) expect(called).toBe(false) - expect(errors.some((x) => x.includes("outside plugin directory"))).toBe(true) } finally { install.mockRestore() } @@ -588,30 +559,49 @@ describe("plugin.loader.shared", () => { } }) - test("publishes session.error when install fails", async () => { + test("skips broken plugin when install fails", async () => { await using tmp = await tmpdir({ init: async (dir) => { - await Bun.write(path.join(dir, "opencode.json"), JSON.stringify({ plugin: ["broken-plugin@9.9.9"] }, null, 2)) + const ok = path.join(dir, "ok.ts") + const mark = path.join(dir, "ok.txt") + await Bun.write( + ok, + [ + "export default {", + ' id: "demo.ok",', + " server: async () => {", + ` await Bun.write(${JSON.stringify(mark)}, "ok")`, + " return {}", + " },", + "}", + "", + ].join("\n"), + ) + await Bun.write( + path.join(dir, "opencode.json"), + JSON.stringify({ plugin: ["broken-plugin@9.9.9", pathToFileURL(ok).href] }, null, 2), + ) + return { mark } }, }) const install = spyOn(Npm, "add").mockRejectedValue(new Error("boom")) try { - const errors = await errs(tmp.path) - - expect(errors.some((x) => x.includes("Failed to install plugin broken-plugin@9.9.9") && x.includes("boom"))).toBe( - true, - ) + await load(tmp.path) + expect(install).toHaveBeenCalledWith("broken-plugin@9.9.9") + expect(await Bun.file(tmp.extra.mark).text()).toBe("ok") } finally { install.mockRestore() } }) - test("publishes session.error when plugin init throws", async () => { + test("continues loading plugins when plugin init throws", async () => { await using tmp = await tmpdir({ init: async (dir) => { const file = pathToFileURL(path.join(dir, "throws.ts")).href + const ok = pathToFileURL(path.join(dir, "ok.ts")).href + const mark = path.join(dir, "ok.txt") await Bun.write( path.join(dir, "throws.ts"), [ @@ -624,51 +614,91 @@ describe("plugin.loader.shared", () => { "", ].join("\n"), ) + await Bun.write( + path.join(dir, "ok.ts"), + [ + "export default {", + ' id: "demo.ok",', + " server: async () => {", + ` await Bun.write(${JSON.stringify(mark)}, "ok")`, + " return {}", + " },", + "}", + "", + ].join("\n"), + ) - await Bun.write(path.join(dir, "opencode.json"), JSON.stringify({ plugin: [file] }, null, 2)) + await Bun.write(path.join(dir, "opencode.json"), JSON.stringify({ plugin: [file, ok] }, null, 2)) - return { file } + return { mark } }, }) - const errors = await errs(tmp.path) - - expect(errors.some((x) => x.includes(`Failed to load plugin ${tmp.extra.file}: explode`))).toBe(true) + await load(tmp.path) + expect(await Bun.file(tmp.extra.mark).text()).toBe("ok") }) - test("publishes session.error when plugin module has invalid export", async () => { + test("continues loading plugins when plugin module has invalid export", async () => { await using tmp = await tmpdir({ init: async (dir) => { const file = pathToFileURL(path.join(dir, "invalid.ts")).href + const ok = pathToFileURL(path.join(dir, "ok.ts")).href + const mark = path.join(dir, "ok.txt") await Bun.write( path.join(dir, "invalid.ts"), ["export default {", ' id: "demo.invalid",', " nope: true,", "}", ""].join("\n"), ) + await Bun.write( + path.join(dir, "ok.ts"), + [ + "export default {", + ' id: "demo.ok",', + " server: async () => {", + ` await Bun.write(${JSON.stringify(mark)}, "ok")`, + " return {}", + " },", + "}", + "", + ].join("\n"), + ) - await Bun.write(path.join(dir, "opencode.json"), JSON.stringify({ plugin: [file] }, null, 2)) + await Bun.write(path.join(dir, "opencode.json"), JSON.stringify({ plugin: [file, ok] }, null, 2)) - return { file } + return { mark } }, }) - const errors = await errs(tmp.path) - - expect(errors.some((x) => x.includes(`Failed to load plugin ${tmp.extra.file}`))).toBe(true) + await load(tmp.path) + expect(await Bun.file(tmp.extra.mark).text()).toBe("ok") }) - test("publishes session.error when plugin import fails", async () => { + test("continues loading plugins when plugin import fails", async () => { await using tmp = await tmpdir({ init: async (dir) => { const missing = pathToFileURL(path.join(dir, "missing-plugin.ts")).href - await Bun.write(path.join(dir, "opencode.json"), JSON.stringify({ plugin: [missing] }, null, 2)) + const ok = pathToFileURL(path.join(dir, "ok.ts")).href + const mark = path.join(dir, "ok.txt") + await Bun.write( + path.join(dir, "ok.ts"), + [ + "export default {", + ' id: "demo.ok",', + " server: async () => {", + ` await Bun.write(${JSON.stringify(mark)}, "ok")`, + " return {}", + " },", + "}", + "", + ].join("\n"), + ) + await Bun.write(path.join(dir, "opencode.json"), JSON.stringify({ plugin: [missing, ok] }, null, 2)) - return { missing } + return { mark } }, }) - const errors = await errs(tmp.path) - - expect(errors.some((x) => x.includes(`Failed to load plugin ${tmp.extra.missing}`))).toBe(true) + await load(tmp.path) + expect(await Bun.file(tmp.extra.mark).text()).toBe("ok") }) test("loads object plugin via plugin.server", async () => { diff --git a/packages/opencode/test/project/project.test.ts b/packages/opencode/test/project/project.test.ts index 988ae27426..93d97e6a43 100644 --- a/packages/opencode/test/project/project.test.ts +++ b/packages/opencode/test/project/project.test.ts @@ -41,6 +41,7 @@ function mockGitFailure(failArg: string) { all: Stream.empty, getInputFd: () => ({ [Symbol.for("effect/Sink/TypeId")]: Symbol.for("effect/Sink/TypeId") }) as any, getOutputFd: () => Stream.empty, + unref: Effect.succeed(Effect.void), }) } return yield* real.spawn(command) diff --git a/packages/opencode/test/provider/transform.test.ts b/packages/opencode/test/provider/transform.test.ts index 0aee396f44..3a001e2756 100644 --- a/packages/opencode/test/provider/transform.test.ts +++ b/packages/opencode/test/provider/transform.test.ts @@ -104,6 +104,58 @@ describe("ProviderTransform.options - setCacheKey", () => { }) }) +describe("ProviderTransform.options - zai/zhipuai thinking", () => { + const sessionID = "test-session-123" + + const createModel = (providerID: string) => + ({ + id: `${providerID}/glm-4.6`, + providerID, + api: { + id: "glm-4.6", + url: "https://open.bigmodel.cn/api/paas/v4", + npm: "@ai-sdk/openai-compatible", + }, + name: "GLM 4.6", + capabilities: { + temperature: true, + reasoning: true, + attachment: true, + toolcall: true, + input: { text: true, audio: false, image: true, video: false, pdf: true }, + output: { text: true, audio: false, image: false, video: false, pdf: false }, + interleaved: false, + }, + cost: { + input: 0.001, + output: 0.002, + cache: { read: 0.0001, write: 0.0002 }, + }, + limit: { + context: 128000, + output: 8192, + }, + status: "active", + options: {}, + headers: {}, + }) as any + + for (const providerID of ["zai-coding-plan", "zai", "zhipuai-coding-plan", "zhipuai"]) { + test(`${providerID} should set thinking cfg`, () => { + const result = ProviderTransform.options({ + model: createModel(providerID), + sessionID, + providerOptions: {}, + }) + + expect(result.thinking).toEqual({ + type: "enabled", + clear_thinking: false, + }) + }) + } +}) + describe("ProviderTransform.options - google thinkingConfig gating", () => { const sessionID = "test-session-123" diff --git a/packages/opencode/test/server/session-messages.test.ts b/packages/opencode/test/server/session-messages.test.ts index 7ba95f3b1e..fac3368376 100644 --- a/packages/opencode/test/server/session-messages.test.ts +++ b/packages/opencode/test/server/session-messages.test.ts @@ -147,7 +147,7 @@ describe("session messages endpoint", () => { describe("session.prompt_async error handling", () => { test("prompt_async route has error handler for detached prompt call", async () => { - const src = await Bun.file(new URL("../../src/server/routes/session.ts", import.meta.url)).text() + const src = await Bun.file(new URL("../../src/server/instance/session.ts", import.meta.url)).text() const start = src.indexOf('"/:sessionID/prompt_async"') const end = src.indexOf('"/:sessionID/command"', start) expect(start).toBeGreaterThan(-1) diff --git a/packages/opencode/test/session/prompt-effect.test.ts b/packages/opencode/test/session/prompt-effect.test.ts index bd7548d2ad..911c9f3443 100644 --- a/packages/opencode/test/session/prompt-effect.test.ts +++ b/packages/opencode/test/session/prompt-effect.test.ts @@ -31,6 +31,7 @@ import { SessionRunState } from "../../src/session/run-state" import { MessageID, PartID, SessionID } from "../../src/session/schema" import { SessionStatus } from "../../src/session/status" import { Skill } from "../../src/skill" +import { SystemPrompt } from "../../src/session/system" import { Shell } from "../../src/shell/shell" import { Snapshot } from "../../src/snapshot" import { ToolRegistry } from "../../src/tool/registry" @@ -144,7 +145,7 @@ const filetime = Layer.succeed( read: () => Effect.void, get: () => Effect.succeed(undefined), assert: () => Effect.void, - withLock: (_filepath, fn) => Effect.promise(fn), + withLock: (_filepath, fn) => fn(), }), ) @@ -193,6 +194,7 @@ function makeHttp() { Layer.provideMerge(registry), Layer.provideMerge(trunc), Layer.provide(Instruction.defaultLayer), + Layer.provide(SystemPrompt.defaultLayer), Layer.provideMerge(deps), ), ) @@ -735,19 +737,12 @@ it.live( const registry = yield* ToolRegistry.Service const { task } = yield* registry.named() const original = task.execute - task.execute = async (_args, ctx) => { - ready.resolve() - ctx.abort.addEventListener("abort", () => aborted.resolve(), { once: true }) - await new Promise(() => {}) - return { - title: "", - metadata: { - sessionId: SessionID.make("task"), - model: ref, - }, - output: "", - } - } + task.execute = (_args, ctx) => + Effect.callback((resume) => { + ready.resolve() + ctx.abort.addEventListener("abort", () => aborted.resolve(), { once: true }) + return Effect.sync(() => aborted.resolve()) + }) yield* Effect.addFinalizer(() => Effect.sync(() => void (task.execute = original))) const { prompt, chat } = yield* boot() @@ -1393,11 +1388,10 @@ function hangUntilAborted(tool: { execute: (...args: any[]) => any }) { const ready = defer() const aborted = defer() const original = tool.execute - tool.execute = async (_args: any, ctx: any) => { + tool.execute = (_args: any, ctx: any) => { ready.resolve() ctx.abort.addEventListener("abort", () => aborted.resolve(), { once: true }) - await new Promise(() => {}) - return { title: "", metadata: {}, output: "" } + return Effect.callback(() => {}) } const restore = Effect.addFinalizer(() => Effect.sync(() => void (tool.execute = original))) return { ready, aborted, restore } diff --git a/packages/opencode/test/session/retry.test.ts b/packages/opencode/test/session/retry.test.ts index 0204c7a117..a598c37fcd 100644 --- a/packages/opencode/test/session/retry.test.ts +++ b/packages/opencode/test/session/retry.test.ts @@ -6,6 +6,7 @@ import { Effect, Schedule } from "effect" import { SessionRetry } from "../../src/session/retry" import { MessageV2 } from "../../src/session/message-v2" import { ProviderID } from "../../src/provider/schema" +import { AppRuntime } from "../../src/effect/app-runtime" import { SessionID } from "../../src/session/schema" import { SessionStatus } from "../../src/session/status" import { Instance } from "../../src/project/instance" @@ -94,12 +95,16 @@ describe("session.retry.delay", () => { parse: (err) => err as MessageV2.APIError, set: (info) => Effect.promise(() => - SessionStatus.set(sessionID, { - type: "retry", - attempt: info.attempt, - message: info.message, - next: info.next, - }), + AppRuntime.runPromise( + SessionStatus.Service.use((svc) => + svc.set(sessionID, { + type: "retry", + attempt: info.attempt, + message: info.message, + next: info.next, + }), + ), + ), ), }), ) @@ -108,7 +113,7 @@ describe("session.retry.delay", () => { }), ) - expect(await SessionStatus.get(sessionID)).toMatchObject({ + expect(await AppRuntime.runPromise(SessionStatus.Service.use((svc) => svc.get(sessionID)))).toMatchObject({ type: "retry", attempt: 2, message: "boom", diff --git a/packages/opencode/test/session/snapshot-tool-race.test.ts b/packages/opencode/test/session/snapshot-tool-race.test.ts index 4901c6f4f1..391d9d488c 100644 --- a/packages/opencode/test/session/snapshot-tool-race.test.ts +++ b/packages/opencode/test/session/snapshot-tool-race.test.ts @@ -41,6 +41,7 @@ import { Plugin } from "../../src/plugin" import { Provider as ProviderSvc } from "../../src/provider/provider" import { Question } from "../../src/question" import { Skill } from "../../src/skill" +import { SystemPrompt } from "../../src/session/system" import { Todo } from "../../src/session/todo" import { SessionCompaction } from "../../src/session/compaction" import { Instruction } from "../../src/session/instruction" @@ -107,7 +108,7 @@ const filetime = Layer.succeed( read: () => Effect.void, get: () => Effect.succeed(undefined), assert: () => Effect.void, - withLock: (_filepath, fn) => Effect.promise(fn), + withLock: (_filepath, fn) => fn(), }), ) @@ -157,6 +158,7 @@ function makeHttp() { Layer.provideMerge(registry), Layer.provideMerge(trunc), Layer.provide(Instruction.defaultLayer), + Layer.provide(SystemPrompt.defaultLayer), Layer.provideMerge(deps), ), ) diff --git a/packages/opencode/test/session/system.test.ts b/packages/opencode/test/session/system.test.ts index 47f5f6fc25..6f1047a97d 100644 --- a/packages/opencode/test/session/system.test.ts +++ b/packages/opencode/test/session/system.test.ts @@ -1,5 +1,6 @@ import { describe, expect, test } from "bun:test" import path from "path" +import { Effect } from "effect" import { Agent } from "../../src/agent/agent" import { Instance } from "../../src/project/instance" import { SystemPrompt } from "../../src/session/system" @@ -38,8 +39,13 @@ description: ${description} directory: tmp.path, fn: async () => { const build = await Agent.get("build") - const first = await SystemPrompt.skills(build!) - const second = await SystemPrompt.skills(build!) + const runSkills = Effect.gen(function* () { + const svc = yield* SystemPrompt.Service + return yield* svc.skills(build!) + }).pipe(Effect.provide(SystemPrompt.defaultLayer)) + + const first = await Effect.runPromise(runSkills) + const second = await Effect.runPromise(runSkills) expect(first).toBe(second) diff --git a/packages/opencode/test/share/share-next.test.ts b/packages/opencode/test/share/share-next.test.ts index 6619b3c605..fd230f5459 100644 --- a/packages/opencode/test/share/share-next.test.ts +++ b/packages/opencode/test/share/share-next.test.ts @@ -13,6 +13,7 @@ import { Provider } from "../../src/provider/provider" import { Session } from "../../src/session" import type { SessionID } from "../../src/session/schema" import { ShareNext } from "../../src/share/share-next" +import { Storage } from "../../src/storage/storage" import { SessionShareTable } from "../../src/share/share.sql" import { Database, eq } from "../../src/storage/db" import { provideTmpdirInstance } from "../fixture/fixture" @@ -55,7 +56,7 @@ function wired(client: HttpClient.HttpClient) { return Layer.mergeAll( Bus.layer, ShareNext.layer, - Session.layer, + Session.defaultLayer, AccountRepo.layer, NodeFileSystem.layer, CrossSpawnSpawner.defaultLayer, diff --git a/packages/opencode/test/storage/storage.test.ts b/packages/opencode/test/storage/storage.test.ts index 1ff40b4b99..ea8f1feb4f 100644 --- a/packages/opencode/test/storage/storage.test.ts +++ b/packages/opencode/test/storage/storage.test.ts @@ -1,296 +1,293 @@ -import { describe, expect, test } from "bun:test" -import fs from "fs/promises" +import { describe, expect } from "bun:test" import path from "path" -import { Effect, Layer, ManagedRuntime } from "effect" +import { Effect, Exit, Layer } from "effect" import { AppFileSystem } from "../../src/filesystem" +import * as CrossSpawnSpawner from "../../src/effect/cross-spawn-spawner" import { Git } from "../../src/git" import { Global } from "../../src/global" import { Storage } from "../../src/storage/storage" -import { tmpdir } from "../fixture/fixture" +import { tmpdirScoped } from "../fixture/fixture" +import { testEffect } from "../lib/effect" const dir = path.join(Global.Path.data, "storage") -async function withScope(fn: (root: string[]) => Promise) { - const root = ["storage_test", crypto.randomUUID()] - try { - return await fn(root) - } finally { - await fs.rm(path.join(dir, ...root), { recursive: true, force: true }) - } -} +const it = testEffect(Layer.mergeAll(Storage.defaultLayer, AppFileSystem.defaultLayer, CrossSpawnSpawner.defaultLayer)) -function map(root: string, file: string) { +const scope = Effect.fnUntraced(function* () { + const root = ["storage_test", crypto.randomUUID()] + const fs = yield* AppFileSystem.Service + const svc = yield* Storage.Service + yield* Effect.addFinalizer(() => + fs.remove(path.join(dir, ...root), { recursive: true, force: true }).pipe(Effect.ignore), + ) + return { root, svc } +}) + +// remap(root) rewrites any path under Global.Path.data to live under `root` instead. +// Used by remappedFs to build an AppFileSystem that Storage thinks is the real global +// data dir but actually targets a tmp dir — letting migration tests stage legacy layouts. +// NOTE: only the 6 methods below are intercepted. If Storage starts using a different +// AppFileSystem method that touches Global.Path.data, add it here. +function remap(root: string, file: string) { if (file === Global.Path.data) return root if (file.startsWith(Global.Path.data + path.sep)) return path.join(root, path.relative(Global.Path.data, file)) return file } -function layer(root: string) { +function remappedFs(root: string) { return Layer.effect( AppFileSystem.Service, Effect.gen(function* () { const fs = yield* AppFileSystem.Service return AppFileSystem.Service.of({ ...fs, - isDir: (file) => fs.isDir(map(root, file)), - readJson: (file) => fs.readJson(map(root, file)), - writeWithDirs: (file, content, mode) => fs.writeWithDirs(map(root, file), content, mode), - readFileString: (file) => fs.readFileString(map(root, file)), - remove: (file) => fs.remove(map(root, file)), + isDir: (file) => fs.isDir(remap(root, file)), + readJson: (file) => fs.readJson(remap(root, file)), + writeWithDirs: (file, content, mode) => fs.writeWithDirs(remap(root, file), content, mode), + readFileString: (file) => fs.readFileString(remap(root, file)), + remove: (file) => fs.remove(remap(root, file)), glob: (pattern, options) => - fs.glob(pattern, options?.cwd ? { ...options, cwd: map(root, options.cwd) } : options), + fs.glob(pattern, options?.cwd ? { ...options, cwd: remap(root, options.cwd) } : options), }) }), ).pipe(Layer.provide(AppFileSystem.defaultLayer)) } -async function withStorage( - root: string, - fn: (run: (body: Effect.Effect) => Promise) => Promise, -) { - const rt = ManagedRuntime.make(Storage.layer.pipe(Layer.provide(layer(root)), Layer.provide(Git.defaultLayer))) - try { - return await fn((body) => rt.runPromise(body)) - } finally { - await rt.dispose() - } -} - -async function write(file: string, value: unknown) { - await fs.mkdir(path.dirname(file), { recursive: true }) - await Bun.write(file, JSON.stringify(value, null, 2)) -} - -async function text(file: string, value: string) { - await fs.mkdir(path.dirname(file), { recursive: true }) - await Bun.write(file, value) -} - -async function exists(file: string) { - return fs - .stat(file) - .then(() => true) - .catch(() => false) -} +// Layer.fresh forces a new Storage instance — without it, Effect's in-test layer cache +// returns the outer testEffect's Storage (which uses the real AppFileSystem), not a new +// one built on top of remappedFs. +const remappedStorage = (root: string) => + Layer.fresh(Storage.layer.pipe(Layer.provide(remappedFs(root)), Layer.provide(Git.defaultLayer))) describe("Storage", () => { - test("round-trips JSON content", async () => { - await withScope(async (root) => { + it.live("round-trips JSON content", () => + Effect.gen(function* () { + const { root, svc } = yield* scope() const key = [...root, "session_diff", "roundtrip"] const value = [{ file: "a.ts", additions: 2, deletions: 1 }] - await Storage.write(key, value) + yield* svc.write(key, value) + expect(yield* svc.read(key)).toEqual(value) + }), + ) - expect(await Storage.read(key)).toEqual(value) - }) - }) + it.live("maps missing reads to NotFoundError", () => + Effect.gen(function* () { + const { root, svc } = yield* scope() + const exit = yield* svc.read([...root, "missing", "value"]).pipe(Effect.exit) + expect(Exit.isFailure(exit)).toBe(true) + }), + ) - test("maps missing reads to NotFoundError", async () => { - await withScope(async (root) => { - await expect(Storage.read([...root, "missing", "value"])).rejects.toMatchObject({ name: "NotFoundError" }) - }) - }) - - test("update on missing key throws NotFoundError", async () => { - await withScope(async (root) => { - await expect( - Storage.update<{ value: number }>([...root, "missing", "key"], (draft) => { + it.live("update on missing key throws NotFoundError", () => + Effect.gen(function* () { + const { root, svc } = yield* scope() + const exit = yield* svc + .update<{ value: number }>([...root, "missing", "key"], (draft) => { draft.value += 1 - }), - ).rejects.toMatchObject({ name: "NotFoundError" }) - }) - }) + }) + .pipe(Effect.exit) + expect(Exit.isFailure(exit)).toBe(true) + }), + ) - test("write overwrites existing value", async () => { - await withScope(async (root) => { + it.live("write overwrites existing value", () => + Effect.gen(function* () { + const { root, svc } = yield* scope() const key = [...root, "overwrite", "test"] - await Storage.write<{ v: number }>(key, { v: 1 }) - await Storage.write<{ v: number }>(key, { v: 2 }) - expect(await Storage.read<{ v: number }>(key)).toEqual({ v: 2 }) - }) - }) + yield* svc.write<{ v: number }>(key, { v: 1 }) + yield* svc.write<{ v: number }>(key, { v: 2 }) - test("remove on missing key is a no-op", async () => { - await withScope(async (root) => { - await expect(Storage.remove([...root, "nonexistent", "key"])).resolves.toBeUndefined() - }) - }) + expect(yield* svc.read<{ v: number }>(key)).toEqual({ v: 2 }) + }), + ) - test("list on missing prefix returns empty", async () => { - await withScope(async (root) => { - expect(await Storage.list([...root, "nonexistent"])).toEqual([]) - }) - }) + it.live("remove on missing key is a no-op", () => + Effect.gen(function* () { + const { root, svc } = yield* scope() + yield* svc.remove([...root, "nonexistent", "key"]) + }), + ) - test("serializes concurrent updates for the same key", async () => { - await withScope(async (root) => { + it.live("list on missing prefix returns empty", () => + Effect.gen(function* () { + const { root, svc } = yield* scope() + expect(yield* svc.list([...root, "nonexistent"])).toEqual([]) + }), + ) + + it.live("serializes concurrent updates for the same key", () => + Effect.gen(function* () { + const { root, svc } = yield* scope() const key = [...root, "counter", "shared"] - await Storage.write(key, { value: 0 }) - await Promise.all( + yield* svc.write(key, { value: 0 }) + + yield* Effect.all( Array.from({ length: 25 }, () => - Storage.update<{ value: number }>(key, (draft) => { + svc.update<{ value: number }>(key, (draft) => { draft.value += 1 }), ), + { concurrency: "unbounded" }, ) - expect(await Storage.read<{ value: number }>(key)).toEqual({ value: 25 }) - }) - }) + expect(yield* svc.read<{ value: number }>(key)).toEqual({ value: 25 }) + }), + ) - test("concurrent reads do not block each other", async () => { - await withScope(async (root) => { + it.live("concurrent reads do not block each other", () => + Effect.gen(function* () { + const { root, svc } = yield* scope() const key = [...root, "concurrent", "reads"] - await Storage.write(key, { ok: true }) - const results = await Promise.all(Array.from({ length: 10 }, () => Storage.read(key))) + yield* svc.write(key, { ok: true }) + + const results = yield* Effect.all( + Array.from({ length: 10 }, () => svc.read(key)), + { concurrency: "unbounded" }, + ) expect(results).toHaveLength(10) for (const r of results) expect(r).toEqual({ ok: true }) - }) - }) + }), + ) - test("nested keys create deep paths", async () => { - await withScope(async (root) => { + it.live("nested keys create deep paths", () => + Effect.gen(function* () { + const { root, svc } = yield* scope() const key = [...root, "a", "b", "c", "deep"] - await Storage.write<{ nested: boolean }>(key, { nested: true }) - expect(await Storage.read<{ nested: boolean }>(key)).toEqual({ nested: true }) - expect(await Storage.list([...root, "a"])).toEqual([key]) - }) - }) + yield* svc.write<{ nested: boolean }>(key, { nested: true }) - test("lists and removes stored entries", async () => { - await withScope(async (root) => { + expect(yield* svc.read<{ nested: boolean }>(key)).toEqual({ nested: true }) + expect(yield* svc.list([...root, "a"])).toEqual([key]) + }), + ) + + it.live("lists and removes stored entries", () => + Effect.gen(function* () { + const { root, svc } = yield* scope() const a = [...root, "list", "a"] const b = [...root, "list", "b"] const prefix = [...root, "list"] - await Storage.write(b, { value: 2 }) - await Storage.write(a, { value: 1 }) + yield* svc.write(b, { value: 2 }) + yield* svc.write(a, { value: 1 }) - expect(await Storage.list(prefix)).toEqual([a, b]) + expect(yield* svc.list(prefix)).toEqual([a, b]) - await Storage.remove(a) + yield* svc.remove(a) - expect(await Storage.list(prefix)).toEqual([b]) - await expect(Storage.read(a)).rejects.toMatchObject({ name: "NotFoundError" }) - }) - }) + expect(yield* svc.list(prefix)).toEqual([b]) + const exit = yield* svc.read(a).pipe(Effect.exit) + expect(Exit.isFailure(exit)).toBe(true) + }), + ) - test("migration 2 runs when marker contents are invalid", async () => { - await using tmp = await tmpdir() - const storage = path.join(tmp.path, "storage") - const diffs = [ - { additions: 2, deletions: 1 }, - { additions: 3, deletions: 4 }, - ] + it.live("migration 2 runs when marker contents are invalid", () => + Effect.gen(function* () { + const fs = yield* AppFileSystem.Service + const tmp = yield* tmpdirScoped() + const storage = path.join(tmp, "storage") + const diffs = [ + { additions: 2, deletions: 1 }, + { additions: 3, deletions: 4 }, + ] - await text(path.join(storage, "migration"), "wat") - await write(path.join(storage, "session", "proj_test", "ses_test.json"), { - id: "ses_test", - projectID: "proj_test", - title: "legacy", - summary: { diffs }, - }) - - await withStorage(tmp.path, async (run) => { - expect(await run(Storage.Service.use((svc) => svc.list(["session_diff"])))).toEqual([ - ["session_diff", "ses_test"], - ]) - expect(await run(Storage.Service.use((svc) => svc.read(["session_diff", "ses_test"])))).toEqual( - diffs, + yield* fs.writeWithDirs(path.join(storage, "migration"), "wat") + yield* fs.writeWithDirs( + path.join(storage, "session", "proj_test", "ses_test.json"), + JSON.stringify({ + id: "ses_test", + projectID: "proj_test", + title: "legacy", + summary: { diffs }, + }), ) - expect( - await run( - Storage.Service.use((svc) => - svc.read<{ - id: string - projectID: string - title: string - summary: { - additions: number - deletions: number - } - }>(["session", "proj_test", "ses_test"]), - ), - ), - ).toEqual({ - id: "ses_test", - projectID: "proj_test", - title: "legacy", - summary: { - additions: 5, - deletions: 5, - }, - }) - }) - expect(await Bun.file(path.join(storage, "migration")).text()).toBe("2") - }) + yield* Effect.gen(function* () { + const svc = yield* Storage.Service + expect(yield* svc.list(["session_diff"])).toEqual([["session_diff", "ses_test"]]) + expect(yield* svc.read(["session_diff", "ses_test"])).toEqual(diffs) + expect( + yield* svc.read<{ + id: string + projectID: string + title: string + summary: { additions: number; deletions: number } + }>(["session", "proj_test", "ses_test"]), + ).toEqual({ + id: "ses_test", + projectID: "proj_test", + title: "legacy", + summary: { additions: 5, deletions: 5 }, + }) + }).pipe(Effect.provide(remappedStorage(tmp))) - test("migration 1 tolerates malformed legacy records", async () => { - await using tmp = await tmpdir({ git: true }) - const storage = path.join(tmp.path, "storage") - const legacy = path.join(tmp.path, "project", "legacy") + expect(yield* fs.readFileString(path.join(storage, "migration"))).toBe("2") + }), + ) - await write(path.join(legacy, "storage", "session", "message", "probe", "0.json"), []) - await write(path.join(legacy, "storage", "session", "message", "probe", "1.json"), { - path: { root: tmp.path }, - }) - await write(path.join(legacy, "storage", "session", "info", "ses_legacy.json"), { - id: "ses_legacy", - title: "legacy", - }) - await write(path.join(legacy, "storage", "session", "message", "ses_legacy", "msg_legacy.json"), { - role: "user", - text: "hello", - }) + it.live("migration 1 tolerates malformed legacy records", () => + Effect.gen(function* () { + const fs = yield* AppFileSystem.Service + const tmp = yield* tmpdirScoped({ git: true }) + const storage = path.join(tmp, "storage") + const legacy = path.join(tmp, "project", "legacy") - await withStorage(tmp.path, async (run) => { - const projects = await run(Storage.Service.use((svc) => svc.list(["project"]))) - expect(projects).toHaveLength(1) - const project = projects[0]![1] + yield* fs.writeWithDirs(path.join(legacy, "storage", "session", "message", "probe", "0.json"), "[]") + yield* fs.writeWithDirs( + path.join(legacy, "storage", "session", "message", "probe", "1.json"), + JSON.stringify({ path: { root: tmp } }), + ) + yield* fs.writeWithDirs( + path.join(legacy, "storage", "session", "info", "ses_legacy.json"), + JSON.stringify({ id: "ses_legacy", title: "legacy" }), + ) + yield* fs.writeWithDirs( + path.join(legacy, "storage", "session", "message", "ses_legacy", "msg_legacy.json"), + JSON.stringify({ role: "user", text: "hello" }), + ) - expect(await run(Storage.Service.use((svc) => svc.list(["session", project])))).toEqual([ - ["session", project, "ses_legacy"], - ]) - expect( - await run( - Storage.Service.use((svc) => svc.read<{ id: string; title: string }>(["session", project, "ses_legacy"])), - ), - ).toEqual({ - id: "ses_legacy", - title: "legacy", - }) - expect( - await run( - Storage.Service.use((svc) => - svc.read<{ role: string; text: string }>(["message", "ses_legacy", "msg_legacy"]), - ), - ), - ).toEqual({ - role: "user", - text: "hello", - }) - }) + yield* Effect.gen(function* () { + const svc = yield* Storage.Service + const projects = yield* svc.list(["project"]) + expect(projects).toHaveLength(1) + const project = projects[0]![1] - expect(await Bun.file(path.join(storage, "migration")).text()).toBe("2") - }) + expect(yield* svc.list(["session", project])).toEqual([["session", project, "ses_legacy"]]) + expect(yield* svc.read<{ id: string; title: string }>(["session", project, "ses_legacy"])).toEqual({ + id: "ses_legacy", + title: "legacy", + }) + expect(yield* svc.read<{ role: string; text: string }>(["message", "ses_legacy", "msg_legacy"])).toEqual({ + role: "user", + text: "hello", + }) + }).pipe(Effect.provide(remappedStorage(tmp))) - test("failed migrations do not advance the marker", async () => { - await using tmp = await tmpdir() - const storage = path.join(tmp.path, "storage") - const legacy = path.join(tmp.path, "project", "legacy") + expect(yield* fs.readFileString(path.join(storage, "migration"))).toBe("2") + }), + ) - await text(path.join(legacy, "storage", "session", "message", "probe", "0.json"), "{") + it.live("failed migrations do not advance the marker", () => + Effect.gen(function* () { + const fs = yield* AppFileSystem.Service + const tmp = yield* tmpdirScoped() + const storage = path.join(tmp, "storage") + const legacy = path.join(tmp, "project", "legacy") - await withStorage(tmp.path, async (run) => { - expect(await run(Storage.Service.use((svc) => svc.list(["project"])))).toEqual([]) - }) + yield* fs.writeWithDirs(path.join(legacy, "storage", "session", "message", "probe", "0.json"), "{") - expect(await exists(path.join(storage, "migration"))).toBe(false) - }) + yield* Effect.gen(function* () { + const svc = yield* Storage.Service + expect(yield* svc.list(["project"])).toEqual([]) + }).pipe(Effect.provide(remappedStorage(tmp))) + + const exit = yield* fs.access(path.join(storage, "migration")).pipe(Effect.exit) + expect(Exit.isFailure(exit)).toBe(true) + }), + ) }) diff --git a/packages/opencode/test/tool/apply_patch.test.ts b/packages/opencode/test/tool/apply_patch.test.ts index d54d34b834..4efa12f2fc 100644 --- a/packages/opencode/test/tool/apply_patch.test.ts +++ b/packages/opencode/test/tool/apply_patch.test.ts @@ -7,10 +7,13 @@ import { Instance } from "../../src/project/instance" import { LSP } from "../../src/lsp" import { AppFileSystem } from "../../src/filesystem" import { Format } from "../../src/format" +import { Bus } from "../../src/bus" import { tmpdir } from "../fixture/fixture" import { SessionID, MessageID } from "../../src/session/schema" -const runtime = ManagedRuntime.make(Layer.mergeAll(LSP.defaultLayer, AppFileSystem.defaultLayer, Format.defaultLayer)) +const runtime = ManagedRuntime.make( + Layer.mergeAll(LSP.defaultLayer, AppFileSystem.defaultLayer, Format.defaultLayer, Bus.layer), +) const baseCtx = { sessionID: SessionID.make("ses_test"), @@ -19,7 +22,7 @@ const baseCtx = { agent: "build", abort: AbortSignal.any([]), messages: [], - metadata: () => {}, + metadata: () => Effect.void, } type AskInput = { @@ -42,22 +45,23 @@ type AskInput = { } type ToolCtx = typeof baseCtx & { - ask: (input: AskInput) => Promise + ask: (input: AskInput) => Effect.Effect } const execute = async (params: { patchText: string }, ctx: ToolCtx) => { const info = await runtime.runPromise(ApplyPatchTool) - const tool = await info.init() - return tool.execute(params, ctx) + const tool = await runtime.runPromise(info.init()) + return Effect.runPromise(tool.execute(params, ctx)) } const makeCtx = () => { const calls: AskInput[] = [] const ctx: ToolCtx = { ...baseCtx, - ask: async (input) => { - calls.push(input) - }, + ask: (input) => + Effect.sync(() => { + calls.push(input) + }), } return { ctx, calls } diff --git a/packages/opencode/test/tool/bash.test.ts b/packages/opencode/test/tool/bash.test.ts index 15518fa574..e9a6ae38cf 100644 --- a/packages/opencode/test/tool/bash.test.ts +++ b/packages/opencode/test/tool/bash.test.ts @@ -19,7 +19,7 @@ const runtime = ManagedRuntime.make( ) function initBash() { - return runtime.runPromise(BashTool.pipe(Effect.flatMap((info) => Effect.promise(() => info.init())))) + return runtime.runPromise(BashTool.pipe(Effect.flatMap((info) => info.init()))) } const ctx = { @@ -29,8 +29,8 @@ const ctx = { agent: "build", abort: AbortSignal.any([]), messages: [], - metadata: () => {}, - ask: async () => {}, + metadata: () => Effect.void, + ask: () => Effect.void, } Shell.acceptable.reset() @@ -109,10 +109,11 @@ const each = (name: string, fn: (item: { label: string; shell: string }) => Prom const capture = (requests: Array>, stop?: Error) => ({ ...ctx, - ask: async (req: Omit) => { - requests.push(req) - if (stop) throw stop - }, + ask: (req: Omit) => + Effect.sync(() => { + requests.push(req) + if (stop) throw stop + }), }) const mustTruncate = (result: { @@ -131,12 +132,14 @@ describe("tool.bash", () => { directory: projectRoot, fn: async () => { const bash = await initBash() - const result = await bash.execute( - { - command: "echo test", - description: "Echo test message", - }, - ctx, + const result = await Effect.runPromise( + bash.execute( + { + command: "echo test", + description: "Echo test message", + }, + ctx, + ), ) expect(result.metadata.exit).toBe(0) expect(result.metadata.output).toContain("test") @@ -153,12 +156,14 @@ describe("tool.bash permissions", () => { fn: async () => { const bash = await initBash() const requests: Array> = [] - await bash.execute( - { - command: "echo hello", - description: "Echo hello", - }, - capture(requests), + await Effect.runPromise( + bash.execute( + { + command: "echo hello", + description: "Echo hello", + }, + capture(requests), + ), ) expect(requests.length).toBe(1) expect(requests[0].permission).toBe("bash") @@ -174,12 +179,14 @@ describe("tool.bash permissions", () => { fn: async () => { const bash = await initBash() const requests: Array> = [] - await bash.execute( - { - command: "echo foo && echo bar", - description: "Echo twice", - }, - capture(requests), + await Effect.runPromise( + bash.execute( + { + command: "echo foo && echo bar", + description: "Echo twice", + }, + capture(requests), + ), ) expect(requests.length).toBe(1) expect(requests[0].permission).toBe("bash") @@ -198,12 +205,14 @@ describe("tool.bash permissions", () => { fn: async () => { const bash = await initBash() const requests: Array> = [] - await bash.execute( - { - command: "Write-Host foo; if ($?) { Write-Host bar }", - description: "Check PowerShell conditional", - }, - capture(requests), + await Effect.runPromise( + bash.execute( + { + command: "Write-Host foo; if ($?) { Write-Host bar }", + description: "Check PowerShell conditional", + }, + capture(requests), + ), ) const bashReq = requests.find((r) => r.permission === "bash") expect(bashReq).toBeDefined() @@ -226,12 +235,14 @@ describe("tool.bash permissions", () => { const file = process.platform === "win32" ? `${process.env.WINDIR!.replaceAll("\\", "/")}/*` : "/etc/*" const want = process.platform === "win32" ? glob(path.join(process.env.WINDIR!, "*")) : "/etc/*" await expect( - bash.execute( - { - command: `cat ${file}`, - description: "Read wildcard path", - }, - capture(requests, err), + Effect.runPromise( + bash.execute( + { + command: `cat ${file}`, + description: "Read wildcard path", + }, + capture(requests, err), + ), ), ).rejects.toThrow(err.message) const extDirReq = requests.find((r) => r.permission === "external_directory") @@ -257,12 +268,14 @@ describe("tool.bash permissions", () => { const bash = await initBash() const file = path.join(outerTmp.path, "outside.txt").replaceAll("\\", "/") const requests: Array> = [] - await bash.execute( - { - command: `echo $(cat "${file}")`, - description: "Read nested bash file", - }, - capture(requests), + await Effect.runPromise( + bash.execute( + { + command: `echo $(cat "${file}")`, + description: "Read nested bash file", + }, + capture(requests), + ), ) const extDirReq = requests.find((r) => r.permission === "external_directory") const bashReq = requests.find((r) => r.permission === "bash") @@ -289,12 +302,14 @@ describe("tool.bash permissions", () => { const err = new Error("stop after permission") const requests: Array> = [] await expect( - bash.execute( - { - command: `Copy-Item -PassThru "${process.env.WINDIR!.replaceAll("\\", "/")}/win.ini" ./out`, - description: "Copy Windows ini", - }, - capture(requests, err), + Effect.runPromise( + bash.execute( + { + command: `Copy-Item -PassThru "${process.env.WINDIR!.replaceAll("\\", "/")}/win.ini" ./out`, + description: "Copy Windows ini", + }, + capture(requests, err), + ), ), ).rejects.toThrow(err.message) const extDirReq = requests.find((r) => r.permission === "external_directory") @@ -316,12 +331,14 @@ describe("tool.bash permissions", () => { const bash = await initBash() const requests: Array> = [] const file = `${process.env.WINDIR!.replaceAll("\\", "/")}/win.ini` - await bash.execute( - { - command: `Write-Output $(Get-Content ${file})`, - description: "Read nested PowerShell file", - }, - capture(requests), + await Effect.runPromise( + bash.execute( + { + command: `Write-Output $(Get-Content ${file})`, + description: "Read nested PowerShell file", + }, + capture(requests), + ), ) const extDirReq = requests.find((r) => r.permission === "external_directory") const bashReq = requests.find((r) => r.permission === "bash") @@ -347,12 +364,14 @@ describe("tool.bash permissions", () => { const err = new Error("stop after permission") const requests: Array> = [] await expect( - bash.execute( - { - command: 'Get-Content "C:../outside.txt"', - description: "Read drive-relative file", - }, - capture(requests, err), + Effect.runPromise( + bash.execute( + { + command: 'Get-Content "C:../outside.txt"', + description: "Read drive-relative file", + }, + capture(requests, err), + ), ), ).rejects.toThrow(err.message) expect(requests[0]?.permission).toBe("external_directory") @@ -375,12 +394,14 @@ describe("tool.bash permissions", () => { const err = new Error("stop after permission") const requests: Array> = [] await expect( - bash.execute( - { - command: 'Get-Content "$HOME/.ssh/config"', - description: "Read home config", - }, - capture(requests, err), + Effect.runPromise( + bash.execute( + { + command: 'Get-Content "$HOME/.ssh/config"', + description: "Read home config", + }, + capture(requests, err), + ), ), ).rejects.toThrow(err.message) expect(requests[0]?.permission).toBe("external_directory") @@ -404,12 +425,14 @@ describe("tool.bash permissions", () => { const err = new Error("stop after permission") const requests: Array> = [] await expect( - bash.execute( - { - command: 'Get-Content "$PWD/../outside.txt"', - description: "Read pwd-relative file", - }, - capture(requests, err), + Effect.runPromise( + bash.execute( + { + command: 'Get-Content "$PWD/../outside.txt"', + description: "Read pwd-relative file", + }, + capture(requests, err), + ), ), ).rejects.toThrow(err.message) expect(requests[0]?.permission).toBe("external_directory") @@ -432,12 +455,14 @@ describe("tool.bash permissions", () => { const err = new Error("stop after permission") const requests: Array> = [] await expect( - bash.execute( - { - command: 'Get-Content "$PSHOME/outside.txt"', - description: "Read pshome file", - }, - capture(requests, err), + Effect.runPromise( + bash.execute( + { + command: 'Get-Content "$PSHOME/outside.txt"', + description: "Read pshome file", + }, + capture(requests, err), + ), ), ).rejects.toThrow(err.message) expect(requests[0]?.permission).toBe("external_directory") @@ -465,12 +490,14 @@ describe("tool.bash permissions", () => { const requests: Array> = [] const root = path.parse(process.env.WINDIR!).root.replace(/[\\/]+$/, "") await expect( - bash.execute( - { - command: `Get-Content -Path "${root}$env:${key}\\Windows\\win.ini"`, - description: "Read Windows ini with missing env", - }, - capture(requests, err), + Effect.runPromise( + bash.execute( + { + command: `Get-Content -Path "${root}$env:${key}\\Windows\\win.ini"`, + description: "Read Windows ini with missing env", + }, + capture(requests, err), + ), ), ).rejects.toThrow(err.message) const extDirReq = requests.find((r) => r.permission === "external_directory") @@ -495,12 +522,14 @@ describe("tool.bash permissions", () => { fn: async () => { const bash = await initBash() const requests: Array> = [] - await bash.execute( - { - command: "Get-Content $env:WINDIR/win.ini", - description: "Read Windows ini from env", - }, - capture(requests), + await Effect.runPromise( + bash.execute( + { + command: "Get-Content $env:WINDIR/win.ini", + description: "Read Windows ini from env", + }, + capture(requests), + ), ) const extDirReq = requests.find((r) => r.permission === "external_directory") expect(extDirReq).toBeDefined() @@ -524,12 +553,14 @@ describe("tool.bash permissions", () => { const err = new Error("stop after permission") const requests: Array> = [] await expect( - bash.execute( - { - command: `Get-Content -Path FileSystem::${process.env.WINDIR!.replaceAll("\\", "/")}/win.ini`, - description: "Read Windows ini from FileSystem provider", - }, - capture(requests, err), + Effect.runPromise( + bash.execute( + { + command: `Get-Content -Path FileSystem::${process.env.WINDIR!.replaceAll("\\", "/")}/win.ini`, + description: "Read Windows ini from FileSystem provider", + }, + capture(requests, err), + ), ), ).rejects.toThrow(err.message) expect(requests[0]?.permission).toBe("external_directory") @@ -554,12 +585,14 @@ describe("tool.bash permissions", () => { const err = new Error("stop after permission") const requests: Array> = [] await expect( - bash.execute( - { - command: "Get-Content ${env:WINDIR}/win.ini", - description: "Read Windows ini from braced env", - }, - capture(requests, err), + Effect.runPromise( + bash.execute( + { + command: "Get-Content ${env:WINDIR}/win.ini", + description: "Read Windows ini from braced env", + }, + capture(requests, err), + ), ), ).rejects.toThrow(err.message) expect(requests[0]?.permission).toBe("external_directory") @@ -582,12 +615,14 @@ describe("tool.bash permissions", () => { fn: async () => { const bash = await initBash() const requests: Array> = [] - await bash.execute( - { - command: "Set-Location C:/Windows", - description: "Change location", - }, - capture(requests), + await Effect.runPromise( + bash.execute( + { + command: "Set-Location C:/Windows", + description: "Change location", + }, + capture(requests), + ), ) const extDirReq = requests.find((r) => r.permission === "external_directory") const bashReq = requests.find((r) => r.permission === "bash") @@ -611,12 +646,14 @@ describe("tool.bash permissions", () => { fn: async () => { const bash = await initBash() const requests: Array> = [] - await bash.execute( - { - command: "Write-Output ('a' * 3)", - description: "Write repeated text", - }, - capture(requests), + await Effect.runPromise( + bash.execute( + { + command: "Write-Output ('a' * 3)", + description: "Write repeated text", + }, + capture(requests), + ), ) const bashReq = requests.find((r) => r.permission === "bash") expect(bashReq).toBeDefined() @@ -638,12 +675,14 @@ describe("tool.bash permissions", () => { const err = new Error("stop after permission") const requests: Array> = [] await expect( - bash.execute( - { - command: "cd ../", - description: "Change to parent directory", - }, - capture(requests, err), + Effect.runPromise( + bash.execute( + { + command: "cd ../", + description: "Change to parent directory", + }, + capture(requests, err), + ), ), ).rejects.toThrow(err.message) const extDirReq = requests.find((r) => r.permission === "external_directory") @@ -661,13 +700,15 @@ describe("tool.bash permissions", () => { const err = new Error("stop after permission") const requests: Array> = [] await expect( - bash.execute( - { - command: "echo ok", - workdir: os.tmpdir(), - description: "Echo from temp dir", - }, - capture(requests, err), + Effect.runPromise( + bash.execute( + { + command: "echo ok", + workdir: os.tmpdir(), + description: "Echo from temp dir", + }, + capture(requests, err), + ), ), ).rejects.toThrow(err.message) const extDirReq = requests.find((r) => r.permission === "external_directory") @@ -691,13 +732,15 @@ describe("tool.bash permissions", () => { for (const dir of forms(outerTmp.path)) { const requests: Array> = [] await expect( - bash.execute( - { - command: "echo ok", - workdir: dir, - description: "Echo from external dir", - }, - capture(requests, err), + Effect.runPromise( + bash.execute( + { + command: "echo ok", + workdir: dir, + description: "Echo from external dir", + }, + capture(requests, err), + ), ), ).rejects.toThrow(err.message) @@ -724,13 +767,15 @@ describe("tool.bash permissions", () => { const requests: Array> = [] const want = glob(path.join(os.tmpdir(), "*")) await expect( - bash.execute( - { - command: "echo ok", - workdir: "/tmp", - description: "Echo from Git Bash tmp", - }, - capture(requests, err), + Effect.runPromise( + bash.execute( + { + command: "echo ok", + workdir: "/tmp", + description: "Echo from Git Bash tmp", + }, + capture(requests, err), + ), ), ).rejects.toThrow(err.message) expect(requests[0]).toMatchObject({ @@ -754,12 +799,14 @@ describe("tool.bash permissions", () => { const requests: Array> = [] const want = glob(path.join(os.tmpdir(), "*")) await expect( - bash.execute( - { - command: "cat /tmp/opencode-does-not-exist", - description: "Read Git Bash tmp file", - }, - capture(requests, err), + Effect.runPromise( + bash.execute( + { + command: "cat /tmp/opencode-does-not-exist", + description: "Read Git Bash tmp file", + }, + capture(requests, err), + ), ), ).rejects.toThrow(err.message) expect(requests[0]).toMatchObject({ @@ -789,12 +836,14 @@ describe("tool.bash permissions", () => { const requests: Array> = [] const filepath = path.join(outerTmp.path, "outside.txt") await expect( - bash.execute( - { - command: `cat ${filepath}`, - description: "Read external file", - }, - capture(requests, err), + Effect.runPromise( + bash.execute( + { + command: `cat ${filepath}`, + description: "Read external file", + }, + capture(requests, err), + ), ), ).rejects.toThrow(err.message) const extDirReq = requests.find((r) => r.permission === "external_directory") @@ -817,12 +866,14 @@ describe("tool.bash permissions", () => { fn: async () => { const bash = await initBash() const requests: Array> = [] - await bash.execute( - { - command: `rm -rf ${path.join(tmp.path, "nested")}`, - description: "Remove nested dir", - }, - capture(requests), + await Effect.runPromise( + bash.execute( + { + command: `rm -rf ${path.join(tmp.path, "nested")}`, + description: "Remove nested dir", + }, + capture(requests), + ), ) const extDirReq = requests.find((r) => r.permission === "external_directory") expect(extDirReq).toBeUndefined() @@ -837,12 +888,14 @@ describe("tool.bash permissions", () => { fn: async () => { const bash = await initBash() const requests: Array> = [] - await bash.execute( - { - command: "git log --oneline -5", - description: "Git log", - }, - capture(requests), + await Effect.runPromise( + bash.execute( + { + command: "git log --oneline -5", + description: "Git log", + }, + capture(requests), + ), ) expect(requests.length).toBe(1) expect(requests[0].always.length).toBeGreaterThan(0) @@ -858,12 +911,14 @@ describe("tool.bash permissions", () => { fn: async () => { const bash = await initBash() const requests: Array> = [] - await bash.execute( - { - command: "cd .", - description: "Stay in current directory", - }, - capture(requests), + await Effect.runPromise( + bash.execute( + { + command: "cd .", + description: "Stay in current directory", + }, + capture(requests), + ), ) const bashReq = requests.find((r) => r.permission === "bash") expect(bashReq).toBeUndefined() @@ -880,9 +935,11 @@ describe("tool.bash permissions", () => { const err = new Error("stop after permission") const requests: Array> = [] await expect( - bash.execute( - { command: "echo test > output.txt", description: "Redirect test output" }, - capture(requests, err), + Effect.runPromise( + bash.execute( + { command: "echo test > output.txt", description: "Redirect test output" }, + capture(requests, err), + ), ), ).rejects.toThrow(err.message) const bashReq = requests.find((r) => r.permission === "bash") @@ -899,7 +956,7 @@ describe("tool.bash permissions", () => { fn: async () => { const bash = await initBash() const requests: Array> = [] - await bash.execute({ command: "ls -la", description: "List" }, capture(requests)) + await Effect.runPromise(bash.execute({ command: "ls -la", description: "List" }, capture(requests))) const bashReq = requests.find((r) => r.permission === "bash") expect(bashReq).toBeDefined() expect(bashReq!.always[0]).toBe("ls *") @@ -916,24 +973,26 @@ describe("tool.bash abort", () => { const bash = await initBash() const controller = new AbortController() const collected: string[] = [] - const result = bash.execute( - { - command: `echo before && sleep 30`, - description: "Long running command", - }, - { - ...ctx, - abort: controller.signal, - metadata: (input) => { - const output = (input.metadata as { output?: string })?.output - if (output && output.includes("before") && !controller.signal.aborted) { - collected.push(output) - controller.abort() - } + const res = await Effect.runPromise( + bash.execute( + { + command: `echo before && sleep 30`, + description: "Long running command", }, - }, + { + ...ctx, + abort: controller.signal, + metadata: (input) => + Effect.sync(() => { + const output = (input.metadata as { output?: string })?.output + if (output && output.includes("before") && !controller.signal.aborted) { + collected.push(output) + controller.abort() + } + }), + }, + ), ) - const res = await result expect(res.output).toContain("before") expect(res.output).toContain("User aborted the command") expect(collected.length).toBeGreaterThan(0) @@ -946,13 +1005,15 @@ describe("tool.bash abort", () => { directory: projectRoot, fn: async () => { const bash = await initBash() - const result = await bash.execute( - { - command: `echo started && sleep 60`, - description: "Timeout test", - timeout: 500, - }, - ctx, + const result = await Effect.runPromise( + bash.execute( + { + command: `echo started && sleep 60`, + description: "Timeout test", + timeout: 500, + }, + ctx, + ), ) expect(result.output).toContain("started") expect(result.output).toContain("bash tool terminated command after exceeding timeout") @@ -965,12 +1026,14 @@ describe("tool.bash abort", () => { directory: projectRoot, fn: async () => { const bash = await initBash() - const result = await bash.execute( - { - command: `echo stdout_msg && echo stderr_msg >&2`, - description: "Stderr test", - }, - ctx, + const result = await Effect.runPromise( + bash.execute( + { + command: `echo stdout_msg && echo stderr_msg >&2`, + description: "Stderr test", + }, + ctx, + ), ) expect(result.output).toContain("stdout_msg") expect(result.output).toContain("stderr_msg") @@ -984,12 +1047,14 @@ describe("tool.bash abort", () => { directory: projectRoot, fn: async () => { const bash = await initBash() - const result = await bash.execute( - { - command: `exit 42`, - description: "Non-zero exit", - }, - ctx, + const result = await Effect.runPromise( + bash.execute( + { + command: `exit 42`, + description: "Non-zero exit", + }, + ctx, + ), ) expect(result.metadata.exit).toBe(42) }, @@ -1002,18 +1067,21 @@ describe("tool.bash abort", () => { fn: async () => { const bash = await initBash() const updates: string[] = [] - const result = await bash.execute( - { - command: `echo first && sleep 0.1 && echo second`, - description: "Streaming test", - }, - { - ...ctx, - metadata: (input) => { - const output = (input.metadata as { output?: string })?.output - if (output) updates.push(output) + const result = await Effect.runPromise( + bash.execute( + { + command: `echo first && sleep 0.1 && echo second`, + description: "Streaming test", }, - }, + { + ...ctx, + metadata: (input) => + Effect.sync(() => { + const output = (input.metadata as { output?: string })?.output + if (output) updates.push(output) + }), + }, + ), ) expect(result.output).toContain("first") expect(result.output).toContain("second") @@ -1030,12 +1098,14 @@ describe("tool.bash truncation", () => { fn: async () => { const bash = await initBash() const lineCount = Truncate.MAX_LINES + 500 - const result = await bash.execute( - { - command: fill("lines", lineCount), - description: "Generate lines exceeding limit", - }, - ctx, + const result = await Effect.runPromise( + bash.execute( + { + command: fill("lines", lineCount), + description: "Generate lines exceeding limit", + }, + ctx, + ), ) mustTruncate(result) expect(result.output).toContain("truncated") @@ -1050,12 +1120,14 @@ describe("tool.bash truncation", () => { fn: async () => { const bash = await initBash() const byteCount = Truncate.MAX_BYTES + 10000 - const result = await bash.execute( - { - command: fill("bytes", byteCount), - description: "Generate bytes exceeding limit", - }, - ctx, + const result = await Effect.runPromise( + bash.execute( + { + command: fill("bytes", byteCount), + description: "Generate bytes exceeding limit", + }, + ctx, + ), ) mustTruncate(result) expect(result.output).toContain("truncated") @@ -1069,12 +1141,14 @@ describe("tool.bash truncation", () => { directory: projectRoot, fn: async () => { const bash = await initBash() - const result = await bash.execute( - { - command: "echo hello", - description: "Echo hello", - }, - ctx, + const result = await Effect.runPromise( + bash.execute( + { + command: "echo hello", + description: "Echo hello", + }, + ctx, + ), ) expect((result.metadata as { truncated?: boolean }).truncated).toBe(false) expect(result.output).toContain("hello") @@ -1088,12 +1162,14 @@ describe("tool.bash truncation", () => { fn: async () => { const bash = await initBash() const lineCount = Truncate.MAX_LINES + 100 - const result = await bash.execute( - { - command: fill("lines", lineCount), - description: "Generate lines for file check", - }, - ctx, + const result = await Effect.runPromise( + bash.execute( + { + command: fill("lines", lineCount), + description: "Generate lines for file check", + }, + ctx, + ), ) mustTruncate(result) diff --git a/packages/opencode/test/tool/edit.test.ts b/packages/opencode/test/tool/edit.test.ts index feb0f592bc..0695b54bac 100644 --- a/packages/opencode/test/tool/edit.test.ts +++ b/packages/opencode/test/tool/edit.test.ts @@ -7,6 +7,10 @@ import { Instance } from "../../src/project/instance" import { tmpdir } from "../fixture/fixture" import { FileTime } from "../../src/file/time" import { LSP } from "../../src/lsp" +import { AppFileSystem } from "../../src/filesystem" +import { Format } from "../../src/format" +import { Bus } from "../../src/bus" +import { BusEvent } from "../../src/bus/bus-event" import { SessionID, MessageID } from "../../src/session/schema" const ctx = { @@ -16,8 +20,8 @@ const ctx = { agent: "build", abort: AbortSignal.any([]), messages: [], - metadata: () => {}, - ask: async () => {}, + metadata: () => Effect.void, + ask: () => Effect.void, } afterEach(async () => { @@ -29,7 +33,9 @@ async function touch(file: string, time: number) { await fs.utimes(file, date, date) } -const runtime = ManagedRuntime.make(Layer.mergeAll(LSP.defaultLayer, FileTime.defaultLayer)) +const runtime = ManagedRuntime.make( + Layer.mergeAll(LSP.defaultLayer, FileTime.defaultLayer, AppFileSystem.defaultLayer, Format.defaultLayer, Bus.layer), +) afterAll(async () => { await runtime.dispose() @@ -39,10 +45,16 @@ const resolve = () => runtime.runPromise( Effect.gen(function* () { const info = yield* EditTool - return yield* Effect.promise(() => info.init()) + return yield* info.init() }), ) +const readFileTime = (sessionID: SessionID, filepath: string) => + runtime.runPromise(FileTime.Service.use((ft) => ft.read(sessionID, filepath))) + +const subscribeBus = (def: D, callback: () => unknown) => + runtime.runPromise(Bus.Service.use((bus) => bus.subscribeCallback(def, callback))) + describe("tool.edit", () => { describe("creating new files", () => { test("creates new file when oldString is empty", async () => { @@ -53,13 +65,15 @@ describe("tool.edit", () => { directory: tmp.path, fn: async () => { const edit = await resolve() - const result = await edit.execute( - { - filePath: filepath, - oldString: "", - newString: "new content", - }, - ctx, + const result = await Effect.runPromise( + edit.execute( + { + filePath: filepath, + oldString: "", + newString: "new content", + }, + ctx, + ), ) expect(result.metadata.diff).toContain("new content") @@ -78,13 +92,15 @@ describe("tool.edit", () => { directory: tmp.path, fn: async () => { const edit = await resolve() - await edit.execute( - { - filePath: filepath, - oldString: "", - newString: "nested file", - }, - ctx, + await Effect.runPromise( + edit.execute( + { + filePath: filepath, + oldString: "", + newString: "nested file", + }, + ctx, + ), ) const content = await fs.readFile(filepath, "utf-8") @@ -100,21 +116,21 @@ describe("tool.edit", () => { await Instance.provide({ directory: tmp.path, fn: async () => { - const { Bus } = await import("../../src/bus") - const { File } = await import("../../src/file") const { FileWatcher } = await import("../../src/file/watcher") const events: string[] = [] - const unsubUpdated = Bus.subscribe(FileWatcher.Event.Updated, () => events.push("updated")) + const unsubUpdated = await subscribeBus(FileWatcher.Event.Updated, () => events.push("updated")) const edit = await resolve() - await edit.execute( - { - filePath: filepath, - oldString: "", - newString: "content", - }, - ctx, + await Effect.runPromise( + edit.execute( + { + filePath: filepath, + oldString: "", + newString: "content", + }, + ctx, + ), ) expect(events).toContain("updated") @@ -133,16 +149,18 @@ describe("tool.edit", () => { await Instance.provide({ directory: tmp.path, fn: async () => { - await FileTime.read(ctx.sessionID, filepath) + await readFileTime(ctx.sessionID, filepath) const edit = await resolve() - const result = await edit.execute( - { - filePath: filepath, - oldString: "old content", - newString: "new content", - }, - ctx, + const result = await Effect.runPromise( + edit.execute( + { + filePath: filepath, + oldString: "old content", + newString: "new content", + }, + ctx, + ), ) expect(result.output).toContain("Edit applied successfully") @@ -160,17 +178,19 @@ describe("tool.edit", () => { await Instance.provide({ directory: tmp.path, fn: async () => { - await FileTime.read(ctx.sessionID, filepath) + await readFileTime(ctx.sessionID, filepath) const edit = await resolve() await expect( - edit.execute( - { - filePath: filepath, - oldString: "old", - newString: "new", - }, - ctx, + Effect.runPromise( + edit.execute( + { + filePath: filepath, + oldString: "old", + newString: "new", + }, + ctx, + ), ), ).rejects.toThrow("not found") }, @@ -187,13 +207,15 @@ describe("tool.edit", () => { fn: async () => { const edit = await resolve() await expect( - edit.execute( - { - filePath: filepath, - oldString: "same", - newString: "same", - }, - ctx, + Effect.runPromise( + edit.execute( + { + filePath: filepath, + oldString: "same", + newString: "same", + }, + ctx, + ), ), ).rejects.toThrow("identical") }, @@ -208,17 +230,19 @@ describe("tool.edit", () => { await Instance.provide({ directory: tmp.path, fn: async () => { - await FileTime.read(ctx.sessionID, filepath) + await readFileTime(ctx.sessionID, filepath) const edit = await resolve() await expect( - edit.execute( - { - filePath: filepath, - oldString: "not in file", - newString: "replacement", - }, - ctx, + Effect.runPromise( + edit.execute( + { + filePath: filepath, + oldString: "not in file", + newString: "replacement", + }, + ctx, + ), ), ).rejects.toThrow() }, @@ -235,13 +259,15 @@ describe("tool.edit", () => { fn: async () => { const edit = await resolve() await expect( - edit.execute( - { - filePath: filepath, - oldString: "content", - newString: "modified", - }, - ctx, + Effect.runPromise( + edit.execute( + { + filePath: filepath, + oldString: "content", + newString: "modified", + }, + ctx, + ), ), ).rejects.toThrow("You must read file") }, @@ -258,7 +284,7 @@ describe("tool.edit", () => { directory: tmp.path, fn: async () => { // Read first - await FileTime.read(ctx.sessionID, filepath) + await readFileTime(ctx.sessionID, filepath) // Simulate external modification await fs.writeFile(filepath, "modified externally", "utf-8") @@ -267,13 +293,15 @@ describe("tool.edit", () => { // Try to edit with the new content const edit = await resolve() await expect( - edit.execute( - { - filePath: filepath, - oldString: "modified externally", - newString: "edited", - }, - ctx, + Effect.runPromise( + edit.execute( + { + filePath: filepath, + oldString: "modified externally", + newString: "edited", + }, + ctx, + ), ), ).rejects.toThrow("modified since it was last read") }, @@ -288,17 +316,19 @@ describe("tool.edit", () => { await Instance.provide({ directory: tmp.path, fn: async () => { - await FileTime.read(ctx.sessionID, filepath) + await readFileTime(ctx.sessionID, filepath) const edit = await resolve() - await edit.execute( - { - filePath: filepath, - oldString: "foo", - newString: "qux", - replaceAll: true, - }, - ctx, + await Effect.runPromise( + edit.execute( + { + filePath: filepath, + oldString: "foo", + newString: "qux", + replaceAll: true, + }, + ctx, + ), ) const content = await fs.readFile(filepath, "utf-8") @@ -315,22 +345,23 @@ describe("tool.edit", () => { await Instance.provide({ directory: tmp.path, fn: async () => { - await FileTime.read(ctx.sessionID, filepath) + await readFileTime(ctx.sessionID, filepath) - const { Bus } = await import("../../src/bus") const { FileWatcher } = await import("../../src/file/watcher") const events: string[] = [] - const unsubUpdated = Bus.subscribe(FileWatcher.Event.Updated, () => events.push("updated")) + const unsubUpdated = await subscribeBus(FileWatcher.Event.Updated, () => events.push("updated")) const edit = await resolve() - await edit.execute( - { - filePath: filepath, - oldString: "original", - newString: "modified", - }, - ctx, + await Effect.runPromise( + edit.execute( + { + filePath: filepath, + oldString: "original", + newString: "modified", + }, + ctx, + ), ) expect(events).toContain("updated") @@ -349,16 +380,18 @@ describe("tool.edit", () => { await Instance.provide({ directory: tmp.path, fn: async () => { - await FileTime.read(ctx.sessionID, filepath) + await readFileTime(ctx.sessionID, filepath) const edit = await resolve() - await edit.execute( - { - filePath: filepath, - oldString: "line2", - newString: "new line 2\nextra line", - }, - ctx, + await Effect.runPromise( + edit.execute( + { + filePath: filepath, + oldString: "line2", + newString: "new line 2\nextra line", + }, + ctx, + ), ) const content = await fs.readFile(filepath, "utf-8") @@ -375,16 +408,18 @@ describe("tool.edit", () => { await Instance.provide({ directory: tmp.path, fn: async () => { - await FileTime.read(ctx.sessionID, filepath) + await readFileTime(ctx.sessionID, filepath) const edit = await resolve() - await edit.execute( - { - filePath: filepath, - oldString: "old", - newString: "new", - }, - ctx, + await Effect.runPromise( + edit.execute( + { + filePath: filepath, + oldString: "old", + newString: "new", + }, + ctx, + ), ) const content = await fs.readFile(filepath, "utf-8") @@ -403,13 +438,15 @@ describe("tool.edit", () => { fn: async () => { const edit = await resolve() await expect( - edit.execute( - { - filePath: filepath, - oldString: "", - newString: "", - }, - ctx, + Effect.runPromise( + edit.execute( + { + filePath: filepath, + oldString: "", + newString: "", + }, + ctx, + ), ), ).rejects.toThrow("identical") }, @@ -424,17 +461,19 @@ describe("tool.edit", () => { await Instance.provide({ directory: tmp.path, fn: async () => { - await FileTime.read(ctx.sessionID, dirpath) + await readFileTime(ctx.sessionID, dirpath) const edit = await resolve() await expect( - edit.execute( - { - filePath: dirpath, - oldString: "old", - newString: "new", - }, - ctx, + Effect.runPromise( + edit.execute( + { + filePath: dirpath, + oldString: "old", + newString: "new", + }, + ctx, + ), ), ).rejects.toThrow("directory") }, @@ -449,16 +488,18 @@ describe("tool.edit", () => { await Instance.provide({ directory: tmp.path, fn: async () => { - await FileTime.read(ctx.sessionID, filepath) + await readFileTime(ctx.sessionID, filepath) const edit = await resolve() - const result = await edit.execute( - { - filePath: filepath, - oldString: "line2", - newString: "new line a\nnew line b", - }, - ctx, + const result = await Effect.runPromise( + edit.execute( + { + filePath: filepath, + oldString: "line2", + newString: "new line a\nnew line b", + }, + ctx, + ), ) expect(result.metadata.filediff).toBeDefined() @@ -520,15 +561,17 @@ describe("tool.edit", () => { fn: async () => { const edit = await resolve() const filePath = path.join(tmp.path, "test.txt") - await FileTime.read(ctx.sessionID, filePath) - await edit.execute( - { - filePath, - oldString: input.oldString, - newString: input.newString, - replaceAll: input.replaceAll, - }, - ctx, + await readFileTime(ctx.sessionID, filePath) + await Effect.runPromise( + edit.execute( + { + filePath, + oldString: input.oldString, + newString: input.newString, + replaceAll: input.replaceAll, + }, + ctx, + ), ) return await Bun.file(filePath).text() }, @@ -661,30 +704,34 @@ describe("tool.edit", () => { await Instance.provide({ directory: tmp.path, fn: async () => { - await FileTime.read(ctx.sessionID, filepath) + await readFileTime(ctx.sessionID, filepath) const edit = await resolve() // Two concurrent edits - const promise1 = edit.execute( - { - filePath: filepath, - oldString: "0", - newString: "1", - }, - ctx, + const promise1 = Effect.runPromise( + edit.execute( + { + filePath: filepath, + oldString: "0", + newString: "1", + }, + ctx, + ), ) // Need to read again since FileTime tracks per-session - await FileTime.read(ctx.sessionID, filepath) + await readFileTime(ctx.sessionID, filepath) - const promise2 = edit.execute( - { - filePath: filepath, - oldString: "0", - newString: "2", - }, - ctx, + const promise2 = Effect.runPromise( + edit.execute( + { + filePath: filepath, + oldString: "0", + newString: "2", + }, + ctx, + ), ) // Both should complete without error (though one might fail due to content mismatch) diff --git a/packages/opencode/test/tool/external-directory.test.ts b/packages/opencode/test/tool/external-directory.test.ts index cf95eaf4b1..727ab74f18 100644 --- a/packages/opencode/test/tool/external-directory.test.ts +++ b/packages/opencode/test/tool/external-directory.test.ts @@ -1,5 +1,6 @@ import { describe, expect, test } from "bun:test" import path from "path" +import { Effect } from "effect" import type { Tool } from "../../src/tool/tool" import { Instance } from "../../src/project/instance" import { assertExternalDirectory } from "../../src/tool/external-directory" @@ -15,21 +16,27 @@ const baseCtx: Omit = { agent: "build", abort: AbortSignal.any([]), messages: [], - metadata: () => {}, + metadata: () => Effect.void, } const glob = (p: string) => process.platform === "win32" ? Filesystem.normalizePathPattern(p) : p.replaceAll("\\", "/") +function makeCtx() { + const requests: Array> = [] + const ctx: Tool.Context = { + ...baseCtx, + ask: (req) => + Effect.sync(() => { + requests.push(req) + }), + } + return { requests, ctx } +} + describe("tool.assertExternalDirectory", () => { test("no-ops for empty target", async () => { - const requests: Array> = [] - const ctx: Tool.Context = { - ...baseCtx, - ask: async (req) => { - requests.push(req) - }, - } + const { requests, ctx } = makeCtx() await Instance.provide({ directory: "/tmp", @@ -42,13 +49,7 @@ describe("tool.assertExternalDirectory", () => { }) test("no-ops for paths inside Instance.directory", async () => { - const requests: Array> = [] - const ctx: Tool.Context = { - ...baseCtx, - ask: async (req) => { - requests.push(req) - }, - } + const { requests, ctx } = makeCtx() await Instance.provide({ directory: "/tmp/project", @@ -61,13 +62,7 @@ describe("tool.assertExternalDirectory", () => { }) test("asks with a single canonical glob", async () => { - const requests: Array> = [] - const ctx: Tool.Context = { - ...baseCtx, - ask: async (req) => { - requests.push(req) - }, - } + const { requests, ctx } = makeCtx() const directory = "/tmp/project" const target = "/tmp/outside/file.txt" @@ -87,13 +82,7 @@ describe("tool.assertExternalDirectory", () => { }) test("uses target directory when kind=directory", async () => { - const requests: Array> = [] - const ctx: Tool.Context = { - ...baseCtx, - ask: async (req) => { - requests.push(req) - }, - } + const { requests, ctx } = makeCtx() const directory = "/tmp/project" const target = "/tmp/outside" @@ -113,13 +102,7 @@ describe("tool.assertExternalDirectory", () => { }) test("skips prompting when bypass=true", async () => { - const requests: Array> = [] - const ctx: Tool.Context = { - ...baseCtx, - ask: async (req) => { - requests.push(req) - }, - } + const { requests, ctx } = makeCtx() await Instance.provide({ directory: "/tmp/project", @@ -133,13 +116,7 @@ describe("tool.assertExternalDirectory", () => { if (process.platform === "win32") { test("normalizes Windows path variants to one glob", async () => { - const requests: Array> = [] - const ctx: Tool.Context = { - ...baseCtx, - ask: async (req) => { - requests.push(req) - }, - } + const { requests, ctx } = makeCtx() await using outerTmp = await tmpdir({ init: async (dir) => { @@ -169,13 +146,7 @@ describe("tool.assertExternalDirectory", () => { }) test("uses drive root glob for root files", async () => { - const requests: Array> = [] - const ctx: Tool.Context = { - ...baseCtx, - ask: async (req) => { - requests.push(req) - }, - } + const { requests, ctx } = makeCtx() await using tmp = await tmpdir({ git: true }) const root = path.parse(tmp.path).root diff --git a/packages/opencode/test/tool/grep.test.ts b/packages/opencode/test/tool/grep.test.ts index a0cfb61c40..4078c9ce6a 100644 --- a/packages/opencode/test/tool/grep.test.ts +++ b/packages/opencode/test/tool/grep.test.ts @@ -10,7 +10,7 @@ import * as CrossSpawnSpawner from "../../src/effect/cross-spawn-spawner" const runtime = ManagedRuntime.make(Layer.mergeAll(CrossSpawnSpawner.defaultLayer)) function initGrep() { - return runtime.runPromise(GrepTool.pipe(Effect.flatMap((info) => Effect.promise(() => info.init())))) + return runtime.runPromise(GrepTool.pipe(Effect.flatMap((info) => info.init()))) } const ctx = { @@ -20,8 +20,8 @@ const ctx = { agent: "build", abort: AbortSignal.any([]), messages: [], - metadata: () => {}, - ask: async () => {}, + metadata: () => Effect.void, + ask: () => Effect.void, } const projectRoot = path.join(__dirname, "../..") @@ -32,13 +32,15 @@ describe("tool.grep", () => { directory: projectRoot, fn: async () => { const grep = await initGrep() - const result = await grep.execute( - { - pattern: "export", - path: path.join(projectRoot, "src/tool"), - include: "*.ts", - }, - ctx, + const result = await Effect.runPromise( + grep.execute( + { + pattern: "export", + path: path.join(projectRoot, "src/tool"), + include: "*.ts", + }, + ctx, + ), ) expect(result.metadata.matches).toBeGreaterThan(0) expect(result.output).toContain("Found") @@ -56,12 +58,14 @@ describe("tool.grep", () => { directory: tmp.path, fn: async () => { const grep = await initGrep() - const result = await grep.execute( - { - pattern: "xyznonexistentpatternxyz123", - path: tmp.path, - }, - ctx, + const result = await Effect.runPromise( + grep.execute( + { + pattern: "xyznonexistentpatternxyz123", + path: tmp.path, + }, + ctx, + ), ) expect(result.metadata.matches).toBe(0) expect(result.output).toBe("No files found") @@ -81,12 +85,14 @@ describe("tool.grep", () => { directory: tmp.path, fn: async () => { const grep = await initGrep() - const result = await grep.execute( - { - pattern: "line", - path: tmp.path, - }, - ctx, + const result = await Effect.runPromise( + grep.execute( + { + pattern: "line", + path: tmp.path, + }, + ctx, + ), ) expect(result.metadata.matches).toBeGreaterThan(0) }, diff --git a/packages/opencode/test/tool/question.test.ts b/packages/opencode/test/tool/question.test.ts index f1d9492ca8..f651f019ef 100644 --- a/packages/opencode/test/tool/question.test.ts +++ b/packages/opencode/test/tool/question.test.ts @@ -15,8 +15,8 @@ const ctx = { agent: "test-agent", abort: AbortSignal.any([]), messages: [], - metadata: () => {}, - ask: async () => {}, + metadata: () => Effect.void, + ask: () => Effect.void, } const it = testEffect(Layer.mergeAll(Question.defaultLayer, CrossSpawnSpawner.defaultLayer)) @@ -36,7 +36,7 @@ describe("tool.question", () => { Effect.gen(function* () { const question = yield* Question.Service const toolInfo = yield* QuestionTool - const tool = yield* Effect.promise(() => toolInfo.init()) + const tool = yield* toolInfo.init() const questions = [ { question: "What is your favorite color?", @@ -49,7 +49,7 @@ describe("tool.question", () => { }, ] - const fiber = yield* Effect.promise(() => tool.execute({ questions }, ctx)).pipe(Effect.forkScoped) + const fiber = yield* tool.execute({ questions }, ctx).pipe(Effect.forkScoped) const item = yield* pending(question) yield* question.reply({ requestID: item.id, answers: [["Red"]] }) @@ -64,7 +64,7 @@ describe("tool.question", () => { Effect.gen(function* () { const question = yield* Question.Service const toolInfo = yield* QuestionTool - const tool = yield* Effect.promise(() => toolInfo.init()) + const tool = yield* toolInfo.init() const questions = [ { question: "What is your favorite animal?", @@ -73,7 +73,7 @@ describe("tool.question", () => { }, ] - const fiber = yield* Effect.promise(() => tool.execute({ questions }, ctx)).pipe(Effect.forkScoped) + const fiber = yield* tool.execute({ questions }, ctx).pipe(Effect.forkScoped) const item = yield* pending(question) yield* question.reply({ requestID: item.id, answers: [["Dog"]] }) diff --git a/packages/opencode/test/tool/read.test.ts b/packages/opencode/test/tool/read.test.ts index 12345266b3..c41cefda37 100644 --- a/packages/opencode/test/tool/read.test.ts +++ b/packages/opencode/test/tool/read.test.ts @@ -29,8 +29,8 @@ const ctx = { agent: "build", abort: AbortSignal.any([]), messages: [], - metadata: () => {}, - ask: async () => {}, + metadata: () => Effect.void, + ask: () => Effect.void, } const it = testEffect( @@ -46,7 +46,7 @@ const it = testEffect( const init = Effect.fn("ReadToolTest.init")(function* () { const info = yield* ReadTool - return yield* Effect.promise(() => info.init()) + return yield* info.init() }) const run = Effect.fn("ReadToolTest.run")(function* ( @@ -54,7 +54,7 @@ const run = Effect.fn("ReadToolTest.run")(function* ( next: Tool.Context = ctx, ) { const tool = yield* init() - return yield* Effect.promise(() => tool.execute(args, next)) + return yield* tool.execute(args, next) }) const exec = Effect.fn("ReadToolTest.exec")(function* ( @@ -95,9 +95,10 @@ const asks = () => { items, next: { ...ctx, - ask: async (req: Omit) => { - items.push(req) - }, + ask: (req: Omit) => + Effect.sync(() => { + items.push(req) + }), }, } } @@ -226,17 +227,18 @@ describe("tool.read env file permissions", () => { let asked = false const next = { ...ctx, - ask: async (req: Omit) => { - for (const pattern of req.patterns) { - const rule = Permission.evaluate(req.permission, pattern, info.permission) - if (rule.action === "ask" && req.permission === "read") { - asked = true + ask: (req: Omit) => + Effect.sync(() => { + for (const pattern of req.patterns) { + const rule = Permission.evaluate(req.permission, pattern, info.permission) + if (rule.action === "ask" && req.permission === "read") { + asked = true + } + if (rule.action === "deny") { + throw new Permission.DeniedError({ ruleset: info.permission }) + } } - if (rule.action === "deny") { - throw new Permission.DeniedError({ ruleset: info.permission }) - } - } - }, + }), } yield* run({ filePath: path.join(dir, filename) }, next) diff --git a/packages/opencode/test/tool/skill.test.ts b/packages/opencode/test/tool/skill.test.ts index 1c97ee4afc..47a8321efc 100644 --- a/packages/opencode/test/tool/skill.test.ts +++ b/packages/opencode/test/tool/skill.test.ts @@ -19,7 +19,7 @@ const baseCtx: Omit = { agent: "build", abort: AbortSignal.any([]), messages: [], - metadata: () => {}, + metadata: () => Effect.void, } afterEach(async () => { @@ -152,16 +152,17 @@ Use this skill. fn: async () => { const runtime = ManagedRuntime.make(Layer.mergeAll(Skill.defaultLayer, Ripgrep.defaultLayer)) const info = await runtime.runPromise(SkillTool) - const tool = await info.init() + const tool = await runtime.runPromise(info.init()) const requests: Array> = [] const ctx: Tool.Context = { ...baseCtx, - ask: async (req) => { - requests.push(req) - }, + ask: (req) => + Effect.sync(() => { + requests.push(req) + }), } - const result = await tool.execute({ name: "tool-skill" }, ctx) + const result = await runtime.runPromise(tool.execute({ name: "tool-skill" }, ctx)) const dir = path.join(tmp.path, ".opencode", "skill", "tool-skill") const file = path.resolve(dir, "scripts", "demo.txt") diff --git a/packages/opencode/test/tool/task.test.ts b/packages/opencode/test/tool/task.test.ts index c019052a5e..e2ae52bf05 100644 --- a/packages/opencode/test/tool/task.test.ts +++ b/packages/opencode/test/tool/task.test.ts @@ -65,11 +65,12 @@ const seed = Effect.fn("TaskToolTest.seed")(function* (title = "Pinned") { function stubOps(opts?: { onPrompt?: (input: SessionPrompt.PromptInput) => void; text?: string }): TaskPromptOps { return { cancel() {}, - resolvePromptParts: async (template) => [{ type: "text", text: template }], - prompt: async (input) => { - opts?.onPrompt?.(input) - return reply(input, opts?.text ?? "done") - }, + resolvePromptParts: (template) => Effect.succeed([{ type: "text" as const, text: template }]), + prompt: (input) => + Effect.sync(() => { + opts?.onPrompt?.(input) + return reply(input, opts?.text ?? "done") + }), } } @@ -190,29 +191,27 @@ describe("tool.task", () => { const { chat, assistant } = yield* seed() const child = yield* sessions.create({ parentID: chat.id, title: "Existing child" }) const tool = yield* TaskTool - const def = yield* Effect.promise(() => tool.init()) + const def = yield* tool.init() let seen: SessionPrompt.PromptInput | undefined const promptOps = stubOps({ text: "resumed", onPrompt: (input) => (seen = input) }) - const result = yield* Effect.promise(() => - def.execute( - { - description: "inspect bug", - prompt: "look into the cache key path", - subagent_type: "general", - task_id: child.id, - }, - { - sessionID: chat.id, - messageID: assistant.id, - agent: "build", - abort: new AbortController().signal, - extra: { promptOps }, - messages: [], - metadata() {}, - ask: async () => {}, - }, - ), + const result = yield* def.execute( + { + description: "inspect bug", + prompt: "look into the cache key path", + subagent_type: "general", + task_id: child.id, + }, + { + sessionID: chat.id, + messageID: assistant.id, + agent: "build", + abort: new AbortController().signal, + extra: { promptOps }, + messages: [], + metadata: () => Effect.void, + ask: () => Effect.void, + }, ) const kids = yield* sessions.children(chat.id) @@ -230,31 +229,30 @@ describe("tool.task", () => { Effect.gen(function* () { const { chat, assistant } = yield* seed() const tool = yield* TaskTool - const def = yield* Effect.promise(() => tool.init()) + const def = yield* tool.init() const calls: unknown[] = [] const promptOps = stubOps() const exec = (extra?: Record) => - Effect.promise(() => - def.execute( - { - description: "inspect bug", - prompt: "look into the cache key path", - subagent_type: "general", - }, - { - sessionID: chat.id, - messageID: assistant.id, - agent: "build", - abort: new AbortController().signal, - extra: { promptOps, ...extra }, - messages: [], - metadata() {}, - ask: async (input) => { + def.execute( + { + description: "inspect bug", + prompt: "look into the cache key path", + subagent_type: "general", + }, + { + sessionID: chat.id, + messageID: assistant.id, + agent: "build", + abort: new AbortController().signal, + extra: { promptOps, ...extra }, + messages: [], + metadata: () => Effect.void, + ask: (input) => + Effect.sync(() => { calls.push(input) - }, - }, - ), + }), + }, ) yield* exec() @@ -280,29 +278,27 @@ describe("tool.task", () => { const sessions = yield* Session.Service const { chat, assistant } = yield* seed() const tool = yield* TaskTool - const def = yield* Effect.promise(() => tool.init()) + const def = yield* tool.init() let seen: SessionPrompt.PromptInput | undefined const promptOps = stubOps({ text: "created", onPrompt: (input) => (seen = input) }) - const result = yield* Effect.promise(() => - def.execute( - { - description: "inspect bug", - prompt: "look into the cache key path", - subagent_type: "general", - task_id: "ses_missing", - }, - { - sessionID: chat.id, - messageID: assistant.id, - agent: "build", - abort: new AbortController().signal, - extra: { promptOps }, - messages: [], - metadata() {}, - ask: async () => {}, - }, - ), + const result = yield* def.execute( + { + description: "inspect bug", + prompt: "look into the cache key path", + subagent_type: "general", + task_id: "ses_missing", + }, + { + sessionID: chat.id, + messageID: assistant.id, + agent: "build", + abort: new AbortController().signal, + extra: { promptOps }, + messages: [], + metadata: () => Effect.void, + ask: () => Effect.void, + }, ) const kids = yield* sessions.children(chat.id) @@ -322,28 +318,26 @@ describe("tool.task", () => { const sessions = yield* Session.Service const { chat, assistant } = yield* seed() const tool = yield* TaskTool - const def = yield* Effect.promise(() => tool.init()) + const def = yield* tool.init() let seen: SessionPrompt.PromptInput | undefined const promptOps = stubOps({ onPrompt: (input) => (seen = input) }) - const result = yield* Effect.promise(() => - def.execute( - { - description: "inspect bug", - prompt: "look into the cache key path", - subagent_type: "reviewer", - }, - { - sessionID: chat.id, - messageID: assistant.id, - agent: "build", - abort: new AbortController().signal, - extra: { promptOps }, - messages: [], - metadata() {}, - ask: async () => {}, - }, - ), + const result = yield* def.execute( + { + description: "inspect bug", + prompt: "look into the cache key path", + subagent_type: "reviewer", + }, + { + sessionID: chat.id, + messageID: assistant.id, + agent: "build", + abort: new AbortController().signal, + extra: { promptOps }, + messages: [], + metadata: () => Effect.void, + ask: () => Effect.void, + }, ) const child = yield* sessions.get(result.metadata.sessionId) diff --git a/packages/opencode/test/tool/tool-define.test.ts b/packages/opencode/test/tool/tool-define.test.ts index 2ea6d56a51..425c83ffdd 100644 --- a/packages/opencode/test/tool/tool-define.test.ts +++ b/packages/opencode/test/tool/tool-define.test.ts @@ -1,4 +1,5 @@ import { describe, test, expect } from "bun:test" +import { Effect } from "effect" import z from "zod" import { Tool } from "../../src/tool/tool" @@ -8,9 +9,9 @@ function makeTool(id: string, executeFn?: () => void) { return { description: "test tool", parameters: params, - async execute() { + execute() { executeFn?.() - return { title: "test", output: "ok", metadata: {} } + return Effect.succeed({ title: "test", output: "ok", metadata: {} }) }, } } @@ -20,29 +21,34 @@ describe("Tool.define", () => { const original = makeTool("test") const originalExecute = original.execute - const tool = Tool.define("test-tool", original) + const info = await Effect.runPromise(Tool.define("test-tool", Effect.succeed(original))) - await tool.init() - await tool.init() - await tool.init() + await Effect.runPromise(info.init()) + await Effect.runPromise(info.init()) + await Effect.runPromise(info.init()) expect(original.execute).toBe(originalExecute) }) - test("function-defined tool returns fresh objects and is unaffected", async () => { - const tool = Tool.define("test-fn-tool", () => Promise.resolve(makeTool("test"))) + test("effect-defined tool returns fresh objects and is unaffected", async () => { + const info = await Effect.runPromise( + Tool.define( + "test-fn-tool", + Effect.succeed(() => Effect.succeed(makeTool("test"))), + ), + ) - const first = await tool.init() - const second = await tool.init() + const first = await Effect.runPromise(info.init()) + const second = await Effect.runPromise(info.init()) expect(first).not.toBe(second) }) test("object-defined tool returns distinct objects per init() call", async () => { - const tool = Tool.define("test-copy", makeTool("test")) + const info = await Effect.runPromise(Tool.define("test-copy", Effect.succeed(makeTool("test")))) - const first = await tool.init() - const second = await tool.init() + const first = await Effect.runPromise(info.init()) + const second = await Effect.runPromise(info.init()) expect(first).not.toBe(second) }) diff --git a/packages/opencode/test/tool/webfetch.test.ts b/packages/opencode/test/tool/webfetch.test.ts index a26be24ae0..c6b2fd331c 100644 --- a/packages/opencode/test/tool/webfetch.test.ts +++ b/packages/opencode/test/tool/webfetch.test.ts @@ -15,8 +15,8 @@ const ctx = { agent: "build", abort: AbortSignal.any([]), messages: [], - metadata: () => {}, - ask: async () => {}, + metadata: () => Effect.void, + ask: () => Effect.void, } async function withFetch(fetch: (req: Request) => Response | Promise, fn: (url: URL) => Promise) { @@ -26,7 +26,7 @@ async function withFetch(fetch: (req: Request) => Response | Promise, function initTool() { return WebFetchTool.pipe( - Effect.flatMap((info) => Effect.promise(() => info.init())), + Effect.flatMap((info) => info.init()), Effect.provide(FetchHttpClient.layer), Effect.runPromise, ) @@ -42,9 +42,8 @@ describe("tool.webfetch", () => { directory: projectRoot, fn: async () => { const webfetch = await initTool() - const result = await webfetch.execute( - { url: new URL("/image.png", url).toString(), format: "markdown" }, - ctx, + const result = await Effect.runPromise( + webfetch.execute({ url: new URL("/image.png", url).toString(), format: "markdown" }, ctx), ) expect(result.output).toBe("Image fetched successfully") expect(result.attachments).toBeDefined() @@ -74,7 +73,9 @@ describe("tool.webfetch", () => { directory: projectRoot, fn: async () => { const webfetch = await initTool() - const result = await webfetch.execute({ url: new URL("/image.svg", url).toString(), format: "html" }, ctx) + const result = await Effect.runPromise( + webfetch.execute({ url: new URL("/image.svg", url).toString(), format: "html" }, ctx), + ) expect(result.output).toContain(" { directory: projectRoot, fn: async () => { const webfetch = await initTool() - const result = await webfetch.execute({ url: new URL("/file.txt", url).toString(), format: "text" }, ctx) + const result = await Effect.runPromise( + webfetch.execute({ url: new URL("/file.txt", url).toString(), format: "text" }, ctx), + ) expect(result.output).toBe("hello from webfetch") expect(result.attachments).toBeUndefined() }, diff --git a/packages/opencode/test/tool/write.test.ts b/packages/opencode/test/tool/write.test.ts index 8289646ebe..3607a9272e 100644 --- a/packages/opencode/test/tool/write.test.ts +++ b/packages/opencode/test/tool/write.test.ts @@ -7,6 +7,8 @@ import { Instance } from "../../src/project/instance" import { LSP } from "../../src/lsp" import { AppFileSystem } from "../../src/filesystem" import { FileTime } from "../../src/file/time" +import { Bus } from "../../src/bus" +import { Format } from "../../src/format" import { Tool } from "../../src/tool/tool" import { SessionID, MessageID } from "../../src/session/schema" import * as CrossSpawnSpawner from "../../src/effect/cross-spawn-spawner" @@ -20,8 +22,8 @@ const ctx = { agent: "build", abort: AbortSignal.any([]), messages: [], - metadata: () => {}, - ask: async () => {}, + metadata: () => Effect.void, + ask: () => Effect.void, } afterEach(async () => { @@ -29,12 +31,19 @@ afterEach(async () => { }) const it = testEffect( - Layer.mergeAll(LSP.defaultLayer, AppFileSystem.defaultLayer, FileTime.defaultLayer, CrossSpawnSpawner.defaultLayer), + Layer.mergeAll( + LSP.defaultLayer, + AppFileSystem.defaultLayer, + FileTime.defaultLayer, + Bus.layer, + Format.defaultLayer, + CrossSpawnSpawner.defaultLayer, + ), ) const init = Effect.fn("WriteToolTest.init")(function* () { const info = yield* WriteTool - return yield* Effect.promise(() => info.init()) + return yield* info.init() }) const run = Effect.fn("WriteToolTest.run")(function* ( @@ -42,7 +51,7 @@ const run = Effect.fn("WriteToolTest.run")(function* ( next: Tool.Context = ctx, ) { const tool = yield* init() - return yield* Effect.promise(() => tool.execute(args, next)) + return yield* tool.execute(args, next) }) const markRead = Effect.fn("WriteToolTest.markRead")(function* (sessionID: string, filepath: string) { diff --git a/packages/plugin/package.json b/packages/plugin/package.json index ced1523dac..ba47353716 100644 --- a/packages/plugin/package.json +++ b/packages/plugin/package.json @@ -18,6 +18,7 @@ ], "dependencies": { "@opencode-ai/sdk": "workspace:*", + "effect": "catalog:", "zod": "catalog:" }, "peerDependencies": { diff --git a/packages/plugin/src/tool.ts b/packages/plugin/src/tool.ts index 23aa512d9a..b568d03713 100644 --- a/packages/plugin/src/tool.ts +++ b/packages/plugin/src/tool.ts @@ -1,4 +1,5 @@ import { z } from "zod" +import { Effect } from "effect" export type ToolContext = { sessionID: string @@ -16,7 +17,7 @@ export type ToolContext = { worktree: string abort: AbortSignal metadata(input: { title?: string; metadata?: { [key: string]: any } }): void - ask(input: AskInput): Promise + ask(input: AskInput): Effect.Effect } type AskInput = { diff --git a/packages/sdk/js/src/v2/gen/sdk.gen.ts b/packages/sdk/js/src/v2/gen/sdk.gen.ts index d06a504d6c..7fba60fcef 100644 --- a/packages/sdk/js/src/v2/gen/sdk.gen.ts +++ b/packages/sdk/js/src/v2/gen/sdk.gen.ts @@ -1725,6 +1725,7 @@ export class Session2 extends HeyApiClient { directory?: string workspace?: string title?: string + permission?: PermissionRuleset time?: { archived?: number } @@ -1740,6 +1741,7 @@ export class Session2 extends HeyApiClient { { in: "query", key: "directory" }, { in: "query", key: "workspace" }, { in: "body", key: "title" }, + { in: "body", key: "permission" }, { in: "body", key: "time" }, ], }, diff --git a/packages/sdk/js/src/v2/gen/types.gen.ts b/packages/sdk/js/src/v2/gen/types.gen.ts index c1a77bfe88..f2b32a1593 100644 --- a/packages/sdk/js/src/v2/gen/types.gen.ts +++ b/packages/sdk/js/src/v2/gen/types.gen.ts @@ -316,29 +316,6 @@ export type EventCommandExecuted = { } } -export type EventWorkspaceReady = { - type: "workspace.ready" - properties: { - name: string - } -} - -export type EventWorkspaceFailed = { - type: "workspace.failed" - properties: { - message: string - } -} - -export type EventWorkspaceStatus = { - type: "workspace.status" - properties: { - workspaceID: string - status: "connected" | "connecting" | "disconnected" | "error" - error?: string - } -} - export type QuestionOption = { /** * Display text (1-5 words, concise) @@ -469,6 +446,21 @@ export type EventTodoUpdated = { } } +export type EventWorktreeReady = { + type: "worktree.ready" + properties: { + name: string + branch: string + } +} + +export type EventWorktreeFailed = { + type: "worktree.failed" + properties: { + message: string + } +} + export type Pty = { id: string title: string @@ -508,21 +500,29 @@ export type EventPtyDeleted = { } } -export type EventWorktreeReady = { - type: "worktree.ready" +export type EventWorkspaceReady = { + type: "workspace.ready" properties: { name: string - branch: string } } -export type EventWorktreeFailed = { - type: "worktree.failed" +export type EventWorkspaceFailed = { + type: "workspace.failed" properties: { message: string } } +export type EventWorkspaceStatus = { + type: "workspace.status" + properties: { + workspaceID: string + status: "connected" | "connecting" | "disconnected" | "error" + error?: string + } +} + export type OutputFormatText = { type: "text" } @@ -995,9 +995,6 @@ export type Event = | EventMcpToolsChanged | EventMcpBrowserOpenFailed | EventCommandExecuted - | EventWorkspaceReady - | EventWorkspaceFailed - | EventWorkspaceStatus | EventQuestionAsked | EventQuestionReplied | EventQuestionRejected @@ -1005,12 +1002,15 @@ export type Event = | EventSessionIdle | EventSessionCompacted | EventTodoUpdated + | EventWorktreeReady + | EventWorktreeFailed | EventPtyCreated | EventPtyUpdated | EventPtyExited | EventPtyDeleted - | EventWorktreeReady - | EventWorktreeFailed + | EventWorkspaceReady + | EventWorkspaceFailed + | EventWorkspaceStatus | EventMessageUpdated | EventMessageRemoved | EventMessagePartUpdated @@ -3266,6 +3266,7 @@ export type SessionGetResponse = SessionGetResponses[keyof SessionGetResponses] export type SessionUpdateData = { body?: { title?: string + permission?: PermissionRuleset time?: { archived?: number } diff --git a/packages/sdk/openapi.json b/packages/sdk/openapi.json index deece485e0..8bcae7d033 100644 --- a/packages/sdk/openapi.json +++ b/packages/sdk/openapi.json @@ -7986,71 +7986,6 @@ }, "required": ["type", "properties"] }, - "Event.workspace.ready": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "workspace.ready" - }, - "properties": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": ["name"] - } - }, - "required": ["type", "properties"] - }, - "Event.workspace.failed": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "workspace.failed" - }, - "properties": { - "type": "object", - "properties": { - "message": { - "type": "string" - } - }, - "required": ["message"] - } - }, - "required": ["type", "properties"] - }, - "Event.workspace.status": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "workspace.status" - }, - "properties": { - "type": "object", - "properties": { - "workspaceID": { - "type": "string", - "pattern": "^wrk.*" - }, - "status": { - "type": "string", - "enum": ["connected", "connecting", "disconnected", "error"] - }, - "error": { - "type": "string" - } - }, - "required": ["workspaceID", "status"] - } - }, - "required": ["type", "properties"] - }, "QuestionOption": { "type": "object", "properties": { @@ -8351,6 +8286,47 @@ }, "required": ["type", "properties"] }, + "Event.worktree.ready": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "worktree.ready" + }, + "properties": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "branch": { + "type": "string" + } + }, + "required": ["name", "branch"] + } + }, + "required": ["type", "properties"] + }, + "Event.worktree.failed": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "worktree.failed" + }, + "properties": { + "type": "object", + "properties": { + "message": { + "type": "string" + } + }, + "required": ["message"] + } + }, + "required": ["type", "properties"] + }, "Pty": { "type": "object", "properties": { @@ -8464,34 +8440,31 @@ }, "required": ["type", "properties"] }, - "Event.worktree.ready": { + "Event.workspace.ready": { "type": "object", "properties": { "type": { "type": "string", - "const": "worktree.ready" + "const": "workspace.ready" }, "properties": { "type": "object", "properties": { "name": { "type": "string" - }, - "branch": { - "type": "string" } }, - "required": ["name", "branch"] + "required": ["name"] } }, "required": ["type", "properties"] }, - "Event.worktree.failed": { + "Event.workspace.failed": { "type": "object", "properties": { "type": { "type": "string", - "const": "worktree.failed" + "const": "workspace.failed" }, "properties": { "type": "object", @@ -8505,6 +8478,33 @@ }, "required": ["type", "properties"] }, + "Event.workspace.status": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "workspace.status" + }, + "properties": { + "type": "object", + "properties": { + "workspaceID": { + "type": "string", + "pattern": "^wrk.*" + }, + "status": { + "type": "string", + "enum": ["connected", "connecting", "disconnected", "error"] + }, + "error": { + "type": "string" + } + }, + "required": ["workspaceID", "status"] + } + }, + "required": ["type", "properties"] + }, "OutputFormatText": { "type": "object", "properties": { @@ -9937,15 +9937,6 @@ { "$ref": "#/components/schemas/Event.command.executed" }, - { - "$ref": "#/components/schemas/Event.workspace.ready" - }, - { - "$ref": "#/components/schemas/Event.workspace.failed" - }, - { - "$ref": "#/components/schemas/Event.workspace.status" - }, { "$ref": "#/components/schemas/Event.question.asked" }, @@ -9967,6 +9958,12 @@ { "$ref": "#/components/schemas/Event.todo.updated" }, + { + "$ref": "#/components/schemas/Event.worktree.ready" + }, + { + "$ref": "#/components/schemas/Event.worktree.failed" + }, { "$ref": "#/components/schemas/Event.pty.created" }, @@ -9980,10 +9977,13 @@ "$ref": "#/components/schemas/Event.pty.deleted" }, { - "$ref": "#/components/schemas/Event.worktree.ready" + "$ref": "#/components/schemas/Event.workspace.ready" }, { - "$ref": "#/components/schemas/Event.worktree.failed" + "$ref": "#/components/schemas/Event.workspace.failed" + }, + { + "$ref": "#/components/schemas/Event.workspace.status" }, { "$ref": "#/components/schemas/Event.message.updated" diff --git a/patches/install-korean-ime-fix.sh b/patches/install-korean-ime-fix.sh new file mode 100755 index 0000000000..8d6c60b645 --- /dev/null +++ b/patches/install-korean-ime-fix.sh @@ -0,0 +1,120 @@ +#!/usr/bin/env bash +set -euo pipefail + +# opencode Korean IME Fix Installer +# https://github.com/anomalyco/opencode/issues/14371 +# +# Patches opencode to prevent Korean (and other CJK) IME last character +# truncation when pressing Enter in Kitty and other terminals. +# +# Usage: +# curl -fsSL https://raw.githubusercontent.com/claudianus/opencode/fix-zhipuai-coding-plan-thinking/patches/install-korean-ime-fix.sh | bash +# # or from a cloned repo: +# ./patches/install-korean-ime-fix.sh + +RED='\033[0;31m' +GREEN='\033[0;32m' +ORANGE='\033[38;5;214m' +MUTED='\033[0;2m' +NC='\033[0m' + +OPENCODE_DIR="${OPENCODE_DIR:-$HOME/.opencode}" +OPENCODE_SRC="${OPENCODE_SRC:-$HOME/.opencode-src}" +FORK_REPO="${FORK_REPO:-https://github.com/claudianus/opencode.git}" +FORK_BRANCH="${FORK_BRANCH:-fix-zhipuai-coding-plan-thinking}" + +info() { echo -e "${MUTED}$*${NC}"; } +warn() { echo -e "${ORANGE}$*${NC}"; } +err() { echo -e "${RED}$*${NC}" >&2; } +ok() { echo -e "${GREEN}$*${NC}"; } + +need() { + if ! command -v "$1" >/dev/null 2>&1; then + err "Error: $1 is required but not installed." + exit 1 + fi +} + +need git +need bun + +# ── 1. Clone or update fork ──────────────────────────────────────────── +if [ -d "$OPENCODE_SRC/.git" ]; then + info "Updating existing source at $OPENCODE_SRC ..." + git -C "$OPENCODE_SRC" fetch origin "$FORK_BRANCH" + git -C "$OPENCODE_SRC" checkout "$FORK_BRANCH" + git -C "$OPENCODE_SRC" reset --hard "origin/$FORK_BRANCH" +else + info "Cloning fork (shallow) to $OPENCODE_SRC ..." + git clone --depth 1 --branch "$FORK_BRANCH" "$FORK_REPO" "$OPENCODE_SRC" +fi + +# ── 2. Verify the IME fix is present in source ──────────────────────── +PROMPT_FILE="$OPENCODE_SRC/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx" +if [ ! -f "$PROMPT_FILE" ]; then + err "Prompt file not found: $PROMPT_FILE" + exit 1 +fi + +if grep -q "setTimeout(() => setTimeout" "$PROMPT_FILE"; then + ok "IME fix already present in source." +else + warn "IME fix not found. Applying patch ..." + # Apply the fix: replace onSubmit={submit} with double-deferred version + sed -i 's|onSubmit={submit}|onSubmit={() => {\n // IME: double-defer so the last composed character (e.g. Korean\n // hangul) is flushed to plainText before we read it for submission.\n setTimeout(() => setTimeout(() => submit(), 0), 0)\n }}|' "$PROMPT_FILE" + if grep -q "setTimeout(() => setTimeout" "$PROMPT_FILE"; then + ok "Patch applied." + else + err "Failed to apply patch. The source may have changed." + exit 1 + fi +fi + +# ── 3. Install dependencies ──────────────────────────────────────────── +info "Installing dependencies (this may take a minute) ..." +cd "$OPENCODE_SRC" +bun install --frozen-lockfile 2>/dev/null || bun install + +# ── 4. Build (current platform only) ────────────────────────────────── +info "Building opencode for current platform ..." +cd "$OPENCODE_SRC/packages/opencode" +bun run build --single + +# ── 5. Install binary ────────────────────────────────────────────────── +mkdir -p "$OPENCODE_DIR/bin" + +PLATFORM=$(uname -s | tr '[:upper:]' '[:lower:]') +ARCH=$(uname -m) +[ "$ARCH" = "aarch64" ] && ARCH="arm64" +[ "$ARCH" = "x86_64" ] && ARCH="x64" +[ "$PLATFORM" = "darwin" ] && true +[ "$PLATFORM" = "linux" ] && true + +BUILT_BINARY="$OPENCODE_SRC/packages/opencode/dist/opencode-${PLATFORM}-${ARCH}/bin/opencode" + +if [ ! -f "$BUILT_BINARY" ]; then + BUILT_BINARY=$(find "$OPENCODE_SRC/packages/opencode/dist" -name "opencode" -type f -executable 2>/dev/null | head -1) +fi + +if [ -f "$BUILT_BINARY" ]; then + if [ -f "$OPENCODE_DIR/bin/opencode" ]; then + cp "$OPENCODE_DIR/bin/opencode" "$OPENCODE_DIR/bin/opencode.bak.$(date +%Y%m%d%H%M%S)" + fi + cp "$BUILT_BINARY" "$OPENCODE_DIR/bin/opencode" + chmod +x "$OPENCODE_DIR/bin/opencode" + ok "Installed to $OPENCODE_DIR/bin/opencode" +else + err "Build failed - binary not found in dist/" + info "Try running manually:" + echo " cd $OPENCODE_SRC/packages/opencode && bun run build --single" + exit 1 +fi + +echo "" +ok "Done! Korean IME fix is now active." +echo "" +info "To uninstall and revert to the official release:" +echo " curl -fsSL https://opencode.ai/install | bash" +echo "" +info "To update (re-pull and rebuild):" +echo " $0"