@@ -2223,7 +2241,7 @@ export default function Layout(props: ParentProps) {
@@ -2238,9 +2256,7 @@ export default function Layout(props: ParentProps) {
icon="plus-small"
class="w-full"
onClick={() => {
- const item = project()
- if (!item) return
- void createWorkspace(item)
+ void createWorkspace(project)
}}
>
{language.t("workspace.new")}
@@ -2267,7 +2283,7 @@ export default function Layout(props: ParentProps) {
diff --git a/packages/app/src/pages/layout/sidebar-items.tsx b/packages/app/src/pages/layout/sidebar-items.tsx
index f27a9bb7a9..77d9a03d9d 100644
--- a/packages/app/src/pages/layout/sidebar-items.tsx
+++ b/packages/app/src/pages/layout/sidebar-items.tsx
@@ -166,18 +166,7 @@ export const SessionItem = (props: SessionItemProps): JSX.Element => {
})
const isWorking = createMemo(() => {
if (hasPermissions()) return false
- const pending = (sessionStore.message[props.session.id] ?? []).findLast(
- (message) =>
- message.role === "assistant" &&
- typeof (message as { time?: { completed?: unknown } }).time?.completed !== "number",
- )
- const status = sessionStore.session_status[props.session.id]
- return (
- pending !== undefined ||
- status?.type === "busy" ||
- status?.type === "retry" ||
- (status !== undefined && status.type !== "idle")
- )
+ return sessionStore.session_working(props.session.id)
})
const tint = createMemo(() => messageAgentColor(sessionStore.message[props.session.id], sessionStore.agent))
diff --git a/packages/app/src/pages/layout/sidebar-project.tsx b/packages/app/src/pages/layout/sidebar-project.tsx
index 58595c25b9..b910dd2098 100644
--- a/packages/app/src/pages/layout/sidebar-project.tsx
+++ b/packages/app/src/pages/layout/sidebar-project.tsx
@@ -305,7 +305,7 @@ export const SortableProject = (props: {
const isWorking = createMemo(() =>
dirs().some((directory) => {
const [store] = globalSync.child(directory, { bootstrap: false })
- return Object.values(store.session_status).some((status) => status?.type === "busy" || status?.type === "retry")
+ return Object.keys(store.session_status).some((id) => store.session_working(id))
}),
)
const projectSessions = createMemo(() => sortedRootSessions(projectStore(), props.sortNow()))
diff --git a/packages/app/src/pages/layout/sidebar-workspace.tsx b/packages/app/src/pages/layout/sidebar-workspace.tsx
index 9b80adac29..f423c13d1e 100644
--- a/packages/app/src/pages/layout/sidebar-workspace.tsx
+++ b/packages/app/src/pages/layout/sidebar-workspace.tsx
@@ -14,7 +14,7 @@ import { Spinner } from "@opencode-ai/ui/spinner"
import { Tooltip } from "@opencode-ai/ui/tooltip"
import { type Session } from "@opencode-ai/sdk/v2/client"
import { type LocalProject } from "@/context/layout"
-import { loadSessionsQueryKey, useGlobalSync } from "@/context/global-sync"
+import { useGlobalSync, useQueryOptions } from "@/context/global-sync"
import { useLanguage } from "@/context/language"
import { pathKey } from "@/utils/path-key"
import { NewSessionItem, SessionItem, SessionSkeleton } from "./sidebar-items"
@@ -300,6 +300,7 @@ export const SortableWorkspace = (props: {
const navigate = useNavigate()
const params = useParams()
const globalSync = useGlobalSync()
+ const queryOptions = useQueryOptions()
const language = useLanguage()
const sortable = createSortable(props.directory)
const [workspaceStore, setWorkspaceStore] = globalSync.child(props.directory, { bootstrap: false })
@@ -320,7 +321,7 @@ export const SortableWorkspace = (props: {
const boot = createMemo(() => open() || active())
const count = createMemo(() => sessions()?.length ?? 0)
const hasMore = createMemo(() => workspaceStore.sessionTotal > count())
- const fetching = useIsFetching(() => ({ queryKey: loadSessionsQueryKey(props.directory) }))
+ const fetching = useIsFetching(() => queryOptions.sessions(pathKey(props.directory)))
const busy = createMemo(() => props.ctx.isBusy(props.directory))
const loading = () => fetching() > 0 && count() === 0
const touch = createMediaQuery("(hover: none)")
@@ -446,6 +447,7 @@ export const LocalWorkspace = (props: {
mobile?: boolean
}): JSX.Element => {
const globalSync = useGlobalSync()
+ const queryOptions = useQueryOptions()
const language = useLanguage()
const workspace = createMemo(() => {
const [store, setStore] = globalSync.child(props.project.worktree)
@@ -454,7 +456,7 @@ export const LocalWorkspace = (props: {
const slug = createMemo(() => base64Encode(props.project.worktree))
const sessions = createMemo(() => sortedRootSessions(workspace().store, props.sortNow()))
const count = createMemo(() => sessions()?.length ?? 0)
- const fetching = useIsFetching(() => ({ queryKey: loadSessionsQueryKey(props.project.worktree) }))
+ const fetching = useIsFetching(() => queryOptions.sessions(pathKey(props.project.worktree)))
const hasMore = createMemo(() => workspace().store.sessionTotal > count())
const loading = () => fetching() > 0 && count() === 0
const loadMore = async () => {
diff --git a/packages/app/src/pages/session.tsx b/packages/app/src/pages/session.tsx
index 1345e355eb..1e73ed590f 100644
--- a/packages/app/src/pages/session.tsx
+++ b/packages/app/src/pages/session.tsx
@@ -1496,12 +1496,7 @@ export default function Page() {
return out
})
- const busy = (sessionID: string) => {
- if ((sync.data.session_status[sessionID] ?? { type: "idle" as const }).type !== "idle") return true
- return (sync.data.message[sessionID] ?? []).some(
- (item) => item.role === "assistant" && typeof item.time.completed !== "number",
- )
- }
+ const busy = (sessionID: string) => sync.data.session_working(sessionID)
const queuedFollowups = createMemo(() => {
const id = params.id
diff --git a/packages/app/src/pages/session/composer/session-composer-region.tsx b/packages/app/src/pages/session/composer/session-composer-region.tsx
index 60447566ed..e6bfd05ec4 100644
--- a/packages/app/src/pages/session/composer/session-composer-region.tsx
+++ b/packages/app/src/pages/session/composer/session-composer-region.tsx
@@ -2,6 +2,7 @@ import { Show, createEffect, createMemo, onCleanup } from "solid-js"
import { createStore } from "solid-js/store"
import { useNavigate } from "@solidjs/router"
import { useSpring } from "@opencode-ai/ui/motion-spring"
+import { useLayout } from "@/context/layout"
import { PromptInput } from "@/components/prompt-input"
import { useLanguage } from "@/context/language"
import { usePrompt } from "@/context/prompt"
@@ -46,10 +47,12 @@ export function SessionComposerRegion(props: {
setPromptDockRef: (el: HTMLDivElement) => void
}) {
const navigate = useNavigate()
+ const layout = useLayout()
const prompt = usePrompt()
const language = useLanguage()
const route = useSessionKey()
const sync = useSync()
+ const view = layout.view(route.sessionKey)
const handoffPrompt = createMemo(() => getSessionHandoff(route.sessionKey())?.prompt)
const info = createMemo(() => (route.params.id ? sync.session.get(route.params.id) : undefined))
@@ -207,6 +210,8 @@ export function SessionComposerRegion(props: {
view.todoCollapsed.set(!view.todoCollapsed.get())}
collapseLabel={language.t("session.todo.collapse")}
expandLabel={language.t("session.todo.expand")}
dockProgress={value()}
diff --git a/packages/app/src/pages/session/composer/session-composer-state.ts b/packages/app/src/pages/session/composer/session-composer-state.ts
index 525766dcfa..a7213c4a7d 100644
--- a/packages/app/src/pages/session/composer/session-composer-state.ts
+++ b/packages/app/src/pages/session/composer/session-composer-state.ts
@@ -57,14 +57,7 @@ export function createSessionComposerState(options?: { closeMs?: number | (() =>
() => todos().length > 0 && todos().every((todo) => todo.status === "completed" || todo.status === "cancelled"),
)
- const status = createMemo(() => {
- const id = params.id
- if (!id) return idle
- return sync.data.session_status[id] ?? idle
- })
-
- const busy = createMemo(() => status().type !== "idle")
- const live = createMemo(() => busy() || blocked())
+ const live = createMemo(() => sync.data.session_working(params.id ?? "") || blocked())
const [store, setStore] = createStore({
responding: undefined as string | undefined,
diff --git a/packages/app/src/pages/session/composer/session-todo-dock.tsx b/packages/app/src/pages/session/composer/session-todo-dock.tsx
index fa8c177343..fccbeec177 100644
--- a/packages/app/src/pages/session/composer/session-todo-dock.tsx
+++ b/packages/app/src/pages/session/composer/session-todo-dock.tsx
@@ -42,18 +42,17 @@ function dot(status: Todo["status"]) {
export function SessionTodoDock(props: {
sessionID?: string
todos: Todo[]
+ collapsed: boolean
+ onToggle: () => void
collapseLabel: string
expandLabel: string
dockProgress: number
}) {
const language = useLanguage()
const [store, setStore] = createStore({
- collapsed: false,
height: 320,
})
- const toggle = () => setStore("collapsed", (value) => !value)
-
const total = createMemo(() => props.todos.length)
const done = createMemo(() => props.todos.filter((todo) => todo.status === "completed").length)
const label = createMemo(() => language.t("session.todo.progress", { done: done(), total: total() }))
@@ -72,7 +71,7 @@ export function SessionTodoDock(props: {
)
const preview = createMemo(() => active()?.content ?? "")
- const collapse = useSpring(() => (store.collapsed ? 1 : 0), { visualDuration: 0.3, bounce: 0 })
+ const collapse = useSpring(() => (props.collapsed ? 1 : 0), { visualDuration: 0.3, bounce: 0 })
const dock = createMemo(() => Math.max(0, Math.min(1, props.dockProgress)))
const shut = createMemo(() => 1 - dock())
const value = createMemo(() => Math.max(0, Math.min(1, collapse())))
@@ -107,11 +106,11 @@ export function SessionTodoDock(props: {
class="pl-3 pr-2 py-2 flex items-center gap-2 overflow-visible"
role="button"
tabIndex={0}
- onClick={toggle}
+ onClick={props.onToggle}
onKeyDown={(event) => {
if (event.key !== "Enter" && event.key !== " ") return
event.preventDefault()
- toggle()
+ props.onToggle()
}}
>
{
event.stopPropagation()
- toggle()
+ props.onToggle()
}}
- aria-label={store.collapsed ? props.expandLabel : props.collapseLabel}
+ aria-label={props.collapsed ? props.expandLabel : props.collapseLabel}
/>
0.1,
}}
diff --git a/packages/app/src/pages/session/review-tab.tsx b/packages/app/src/pages/session/review-tab.tsx
index 5719fce318..92288c63b0 100644
--- a/packages/app/src/pages/session/review-tab.tsx
+++ b/packages/app/src/pages/session/review-tab.tsx
@@ -32,7 +32,7 @@ export interface SessionReviewTabProps {
focusedComment?: { file: string; id: string } | null
onFocusedCommentChange?: (focus: { file: string; id: string } | null) => void
focusedFile?: string
- onScrollRef?: (el: HTMLDivElement) => void
+ onScrollRef?: (el: HTMLDivElement | undefined) => void
commentMentions?: {
items: (query: string) => string[] | Promise
}
@@ -126,6 +126,7 @@ export function SessionReviewTab(props: SessionReviewTabProps) {
onCleanup(() => {
if (restoreFrame !== undefined) cancelAnimationFrame(restoreFrame)
+ props.onScrollRef?.(undefined)
})
return (
diff --git a/packages/app/src/pages/session/session-side-panel.tsx b/packages/app/src/pages/session/session-side-panel.tsx
index 66f5269bf9..9a745891a3 100644
--- a/packages/app/src/pages/session/session-side-panel.tsx
+++ b/packages/app/src/pages/session/session-side-panel.tsx
@@ -221,239 +221,241 @@ export function SessionSidePanel(props: {
}}
style={{ width: panelWidth() }}
>
-
-
-
-
-
-
-
-
-
{
- const stop = createFileTabListSync({ el, contextOpen })
- onCleanup(stop)
- }}
- >
-
-
-
-
{language.t("session.tab.review")}
-
- {props.reviewCount()}
-
-
-
-
-
-
- tabs().close("context")}
- aria-label={language.t("common.closeTab")}
- />
-
- }
- hideCloseButton
- onMiddleClick={() => tabs().close("context")}
- >
-
-
-
{language.t("session.tab.context")}
-
-
-
-
- {(tab) => }
-
-
-
- {
- void import("@/components/dialog-select-file").then((x) => {
- dialog.show(() => )
- })
- }}
- aria-label={language.t("command.file.open")}
- />
-
-
-
-
-
-
-
- {props.reviewPanel()}
-
-
-
-
-
-
-
-
-
- {language.t("session.files.selectToOpen")}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {(tab) => }
-
-
-
-
- {(tab) => {
- const path = file.pathFromTab(tab)
- return (
-
- {(p) => }
-
- )
- }}
-
-
-
-
-
-
-
+
+
-
-
+
-
-
- {props.reviewCount()}{" "}
- {language.t(
- props.reviewCount() === 1 ? "session.review.change.one" : "session.review.change.other",
- )}
-
-
- {language.t("session.files.all")}
-
-
-
-
-
-
- {language.t("common.loading")}
- {language.t("common.loading.ellipsis")}
+
+
+
+
+
{
+ const stop = createFileTabListSync({ el, contextOpen })
+ onCleanup(stop)
+ }}
+ >
+
+
+
+
{language.t("session.tab.review")}
+
+ {props.reviewCount()}
+
- }
- >
+
+
+
+
+ tabs().close("context")}
+ aria-label={language.t("common.closeTab")}
+ />
+
+ }
+ hideCloseButton
+ onMiddleClick={() => tabs().close("context")}
+ >
+
+
+
{language.t("session.tab.context")}
+
+
+
+
+ {(tab) => }
+
+
+
+ {
+ void import("@/components/dialog-select-file").then((x) => {
+ dialog.show(() => )
+ })
+ }}
+ aria-label={language.t("command.file.open")}
+ />
+
+
+
+
+
+
+
+ {props.reviewPanel()}
+
+
+
+
+
+
+
+
+
+ {language.t("session.files.selectToOpen")}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {(tab) => }
+
+
+
+
+ {(tab) => {
+ const path = file.pathFromTab(tab)
+ return (
+
+ {(p) => }
+
+ )
+ }}
+
+
+
+
+
+
+
+
+
+
+
+
+ {props.reviewCount()}{" "}
+ {language.t(
+ props.reviewCount() === 1 ? "session.review.change.one" : "session.review.change.other",
+ )}
+
+
+ {language.t("session.files.all")}
+
+
+
+
+
+
+ {language.t("common.loading")}
+ {language.t("common.loading.ellipsis")}
+
+ }
+ >
+
props.focusReviewDiff(node.path)}
+ />
+
+
+
+
+
+
+ {empty(language.t("session.files.empty"))}
+
props.focusReviewDiff(node.path)}
+ onFileClick={(node) => openTab(file.tab(node.path))}
/>
-
-
-
-
-
-
- {empty(language.t("session.files.empty"))}
-
- openTab(file.tab(node.path))}
- />
-
-
-
-
-
-
- props.size.start()}>
- {
- props.size.touch()
- layout.fileTree.resize(width)
- }}
- />
+
+
+
+
-
-
-
-
+
+ props.size.start()}>
+ {
+ props.size.touch()
+ layout.fileTree.resize(width)
+ }}
+ />
+
+
+
+
+
+
)
diff --git a/packages/app/src/pages/session/use-session-commands.tsx b/packages/app/src/pages/session/use-session-commands.tsx
index 922299bec1..b45d110b94 100644
--- a/packages/app/src/pages/session/use-session-commands.tsx
+++ b/packages/app/src/pages/session/use-session-commands.tsx
@@ -75,8 +75,6 @@ export const useSessionCommands = (actions: SessionCommandContext) => {
import.meta.env.VITE_OPENCODE_CHANNEL !== "beta" ||
settings.general.showFileTree()
- const idle = { type: "idle" as const }
- const status = () => sync.data.session_status[params.id ?? ""] ?? idle
const messages = () => {
const id = params.id
if (!id) return []
@@ -290,7 +288,7 @@ export const useSessionCommands = (actions: SessionCommandContext) => {
const sessionID = params.id
if (!sessionID) return
- if (status().type !== "idle") {
+ if (sync.data.session_working(params.id ?? "")) {
await sdk.client.session.abort({ sessionID }).catch(() => {})
}
diff --git a/packages/app/src/utils/id.ts b/packages/app/src/utils/id.ts
index fa27cf4c5f..dba7a8d951 100644
--- a/packages/app/src/utils/id.ts
+++ b/packages/app/src/utils/id.ts
@@ -1,5 +1,3 @@
-import z from "zod"
-
const prefixes = {
session: "ses",
message: "msg",
@@ -15,10 +13,6 @@ let counter = 0
type Prefix = keyof typeof prefixes
export namespace Identifier {
- export function schema(prefix: Prefix) {
- return z.string().startsWith(prefixes[prefix])
- }
-
export function ascending(prefix: Prefix, given?: string) {
return generateID(prefix, false, given)
}
diff --git a/packages/app/src/utils/server-errors.test.ts b/packages/app/src/utils/server-errors.test.ts
index 1f53bb8cf6..84f7c07d60 100644
--- a/packages/app/src/utils/server-errors.test.ts
+++ b/packages/app/src/utils/server-errors.test.ts
@@ -128,4 +128,17 @@ describe("formatServerError", () => {
["Modelo nao encontrado: x/y", "Voce quis dizer: x/y2, x/y3", "Revise provider/model no config"].join("\n"),
)
})
+
+ test("unwraps SDK-wrapped errors from cause.body", () => {
+ const body = {
+ name: "ConfigInvalidError",
+ data: {
+ message: "Missing host",
+ },
+ } satisfies ConfigInvalidError
+
+ const wrapped = new Error("ConfigInvalidError", { cause: { body, status: 400 } })
+
+ expect(formatServerError(wrapped, language.t)).toBe("Arquivo de config em config invalido: Missing host")
+ })
})
diff --git a/packages/app/src/utils/server-errors.ts b/packages/app/src/utils/server-errors.ts
index 2c3a8c54db..8a8db17811 100644
--- a/packages/app/src/utils/server-errors.ts
+++ b/packages/app/src/utils/server-errors.ts
@@ -26,14 +26,22 @@ function tr(translator: Translator | undefined, key: string, text: string, vars?
}
export function formatServerError(error: unknown, translate?: Translator, fallback?: string) {
- if (isConfigInvalidErrorLike(error)) return parseReadableConfigInvalidError(error, translate)
- if (isProviderModelNotFoundErrorLike(error)) return parseReadableProviderModelNotFoundError(error, translate)
+ const unwrapped = unwrapNamedError(error)
+ if (isConfigInvalidErrorLike(unwrapped)) return parseReadableConfigInvalidError(unwrapped, translate)
+ if (isProviderModelNotFoundErrorLike(unwrapped)) return parseReadableProviderModelNotFoundError(unwrapped, translate)
if (error instanceof Error && error.message) return error.message
if (typeof error === "string" && error) return error
if (fallback) return fallback
return tr(translate, "error.chain.unknown", "Unknown error")
}
+function unwrapNamedError(error: unknown): unknown {
+ if (error instanceof Error && error.cause && typeof error.cause === "object" && "body" in error.cause) {
+ return (error.cause as Record).body
+ }
+ return error
+}
+
function isConfigInvalidErrorLike(error: unknown): error is ConfigInvalidError {
if (typeof error !== "object" || error === null) return false
const o = error as Record
diff --git a/packages/console/app/package.json b/packages/console/app/package.json
index 7e736ca775..00446e5f24 100644
--- a/packages/console/app/package.json
+++ b/packages/console/app/package.json
@@ -1,6 +1,6 @@
{
"name": "@opencode-ai/console-app",
- "version": "1.14.48",
+ "version": "1.15.3",
"type": "module",
"license": "MIT",
"scripts": {
diff --git a/packages/console/app/src/config.ts b/packages/console/app/src/config.ts
index 829da5751e..2cd039fef7 100644
--- a/packages/console/app/src/config.ts
+++ b/packages/console/app/src/config.ts
@@ -9,8 +9,8 @@ export const config = {
github: {
repoUrl: "https://github.com/anomalyco/opencode",
starsFormatted: {
- compact: "150K",
- full: "150,000",
+ compact: "160K",
+ full: "160,000",
},
},
@@ -22,8 +22,8 @@ export const config = {
// Static stats (used on landing page)
stats: {
- contributors: "850",
- commits: "11,000",
- monthlyUsers: "6.5M",
+ contributors: "900",
+ commits: "13,000",
+ monthlyUsers: "7.5M",
},
} as const
diff --git a/packages/console/app/src/routes/honeycomb/webhook.ts b/packages/console/app/src/routes/honeycomb/webhook.ts
index 367a93aeb0..05be683535 100644
--- a/packages/console/app/src/routes/honeycomb/webhook.ts
+++ b/packages/console/app/src/routes/honeycomb/webhook.ts
@@ -12,13 +12,22 @@ const basePayload = z.object({
url: z.string(),
})
-const groups = z.object({ group: z.object({ key: z.string(), value: z.string() }).array() }).array()
+const groups = z
+ .object({
+ result: z.union([z.number(), z.string()]).nullish(),
+ group: z.object({ key: z.string(), value: z.string() }).array(),
+ })
+ .array()
const honeycombWebhookPayload = z.discriminatedUnion("type", [
basePayload.extend({
type: z.literal("model_http_errors"),
groups,
}),
+ basePayload.extend({
+ type: z.literal("model_low_tps"),
+ groups,
+ }),
basePayload.extend({
type: z.literal("provider_http_errors"),
groups,
@@ -29,14 +38,25 @@ const honeycombWebhookPayload = z.discriminatedUnion("type", [
])
const postDiscordMessage = async (payload: z.infer) => {
- const group =
- payload.type === "model_http_errors" ? "model" : payload.type === "provider_http_errors" ? "provider" : undefined
- const names = payload.type === "custom" ? [] : payload.groups.flatMap((item) => item.group.map((g) => g.value))
+ const names =
+ payload.type === "custom"
+ ? []
+ : payload.groups.flatMap((item) =>
+ item.group.map((g) => {
+ const result = item.result == null ? undefined : Number(item.result)
+ return `- ${g.value}${
+ result !== undefined && Number.isFinite(result)
+ ? payload.type === "model_low_tps"
+ ? ` (${Math.round(result)} TPS)`
+ : ` (${Math.round(result * 100)}% errors)`
+ : ""
+ }`
+ }),
+ )
const content = [
`[**${payload.isTest ? "[TEST] " : ""}${payload.name ?? "Honeycomb alert"}**](${payload.url})`,
- group && names.length > 0 ? `Affected ${group}s:` : undefined,
- ...names.map((name) => `- ${name}`),
+ ...names,
"",
`<@&${DISCORD_ALERT_ROLE_ID}>`,
]
diff --git a/packages/console/app/src/routes/zen/util/handler.ts b/packages/console/app/src/routes/zen/util/handler.ts
index dad65807d3..3af36ad77a 100644
--- a/packages/console/app/src/routes/zen/util/handler.ts
+++ b/packages/console/app/src/routes/zen/util/handler.ts
@@ -47,6 +47,7 @@ import { Resource } from "@opencode-ai/console-resource"
import { i18n, type Key } from "~/i18n"
import { localeFromRequest } from "~/lib/language"
import { createModelTpmLimiter } from "./modelTpmLimiter"
+import { createModelTpsLimiter } from "./modelTpsLimiter"
type ZenData = Awaited>
type RetryOptions = {
@@ -122,13 +123,15 @@ export async function handler(
? createIpRateLimiter(modelInfo.id, modelInfo.rateLimit, ip, input.request)
: createKeyRateLimiter(modelInfo.id, modelInfo.rateLimit, zenApiKey, input.request)
await rateLimiter?.check()
- const stickyTracker = createStickyTracker(modelInfo.stickyProvider, sessionId)
+ const stickyTracker = createStickyTracker(modelInfo.id, modelInfo.stickyProvider, sessionId)
const stickyProvider = await stickyTracker?.get()
const authInfo = await authenticate(modelInfo, zenApiKey)
const billingSource = validateBilling(authInfo, modelInfo)
logger.metric({ source: billingSource })
const modelTpmLimiter = createModelTpmLimiter(modelInfo.providers)
const modelTpmLimits = await modelTpmLimiter?.check()
+ const modelTpsLimiter = createModelTpsLimiter(modelInfo.providers)
+ const modelTpsLimits = await modelTpsLimiter?.check()
const retriableRequest = async (retry: RetryOptions = { excludeProviders: [], retryCount: 0 }) => {
const providerInfo = selectProvider(
@@ -142,6 +145,7 @@ export async function handler(
retry,
stickyProvider,
modelTpmLimits,
+ modelTpsLimits,
)
validateModelSettings(billingSource, authInfo)
updateProviderKey(authInfo, providerInfo)
@@ -212,7 +216,7 @@ export async function handler(
// ie. 400 error is usually provider error like malformed request
res.status !== 400 &&
// ie. openai 404 error: Item with id 'msg_0ead8b004a3b165d0069436a6b6834819896da85b63b196a3f' not found.
- res.status !== 404 &&
+ !(modelInfo.id.startsWith("gpt-") && res.status === 404) &&
// ie. cannot change codex model providers mid-session
modelInfo.stickyProvider !== "strict" &&
modelInfo.fallbackProvider &&
@@ -234,7 +238,7 @@ export async function handler(
dataDumper?.provideRequest(reqBody)
// Store sticky provider
- await stickyTracker?.set(providerInfo.id)
+ if (res.status === 200) await stickyTracker?.set(providerInfo.id)
// Temporarily change 404 to 400 status code b/c solid start automatically override 404 response
const resStatus = res.status === 404 ? 400 : res.status
@@ -294,14 +298,16 @@ export async function handler(
let buffer = ""
let responseLength = 0
+ let timestampFirstByte = 0
function pump(): Promise {
return (
reader?.read().then(async ({ done, value: rawValue }) => {
if (done) {
+ const timestampLastByte = Date.now()
logger.metric({
response_length: responseLength,
- "timestamp.last_byte": Date.now(),
+ "timestamp.last_byte": timestampLastByte,
})
dataDumper?.flush()
await rateLimiter?.track()
@@ -311,6 +317,14 @@ export async function handler(
const costInfo = calculateCost(modelInfo, usageInfo)
await trialLimiter?.track(usageInfo)
await modelTpmLimiter?.track(providerInfo.id, providerInfo.model, usageInfo)
+ await modelTpsLimiter?.track(
+ providerInfo.id,
+ providerInfo.model,
+ providerInfo.tpsGoal,
+ timestampFirstByte,
+ timestampLastByte,
+ usageInfo,
+ )
await trackUsage(sessionId, billingSource, authInfo, modelInfo, providerInfo, usageInfo, costInfo)
await reload(billingSource, authInfo, costInfo)
const cost = calculateOccurredCost(billingSource, costInfo)
@@ -321,10 +335,10 @@ export async function handler(
}
if (responseLength === 0) {
- const now = Date.now()
+ timestampFirstByte = Date.now()
logger.metric({
- time_to_first_byte: now - startTimestamp,
- "timestamp.first_byte": now,
+ time_to_first_byte: timestampFirstByte - startTimestamp,
+ "timestamp.first_byte": timestampFirstByte,
})
}
@@ -478,6 +492,7 @@ export async function handler(
retry: RetryOptions,
stickyProvider: string | undefined,
modelTpmLimits: Record | undefined,
+ modelTpsLimits: Record | undefined,
) {
const modelProvider = (() => {
// Byok is top priority b/c if user set their own API key, we should use it
@@ -509,6 +524,11 @@ export async function handler(
const usage = modelTpmLimits?.[`${provider.id}/${provider.model}`] ?? 0
return usage < provider.tpmLimit * 1_000_000
})
+ .filter((provider) => {
+ if (!provider.tpsGoal) return true
+ const isLowTps = modelTpsLimits?.[`${provider.id}/${provider.model}/${provider.tpsGoal}`] ?? false
+ return !isLowTps
+ })
.map((provider) => {
topPriority = Math.min(topPriority, provider.priority)
return provider
diff --git a/packages/console/app/src/routes/zen/util/modelTpsLimiter.ts b/packages/console/app/src/routes/zen/util/modelTpsLimiter.ts
new file mode 100644
index 0000000000..477d08ce68
--- /dev/null
+++ b/packages/console/app/src/routes/zen/util/modelTpsLimiter.ts
@@ -0,0 +1,95 @@
+import { and, Database, inArray, sql } from "@opencode-ai/console-core/drizzle/index.js"
+import { ModelTpsRateLimitTable } from "@opencode-ai/console-core/schema/ip.sql.js"
+import { UsageInfo } from "./provider/provider"
+
+export function createModelTpsLimiter(providers: { id: string; model: string; tpsGoal?: number }[]) {
+ const tpsGoals = Object.fromEntries(
+ providers.flatMap((p) => {
+ return p.tpsGoal ? [[`${p.id}/${p.model}/${p.tpsGoal}`, p.tpsGoal]] : []
+ }),
+ )
+ const ids = Object.keys(tpsGoals)
+ if (ids.length === 0) return
+
+ const toInterval = (date: Date) =>
+ parseInt(
+ date
+ .toISOString()
+ .replace(/[^0-9]/g, "")
+ .substring(0, 12),
+ )
+ const now = Date.now()
+ const currInterval = toInterval(new Date(now))
+ const prevInterval = toInterval(new Date(now - 60 * 1000))
+
+ return {
+ check: async () => {
+ const data = await Database.use((tx) =>
+ tx
+ .select()
+ .from(ModelTpsRateLimitTable)
+ .where(
+ and(
+ inArray(ModelTpsRateLimitTable.id, ids),
+ inArray(ModelTpsRateLimitTable.interval, [currInterval, prevInterval]),
+ ),
+ ),
+ )
+
+ // convert to map of model to summed count across current and previous intervals
+ const result = data.reduce(
+ (acc, curr) => {
+ const existing = acc[curr.id] ?? { qualify: 0, unqualify: 0 }
+ acc[curr.id] = {
+ qualify: existing.qualify + curr.qualify,
+ unqualify: existing.unqualify + curr.unqualify,
+ }
+ return acc
+ },
+ {} as Record,
+ )
+
+ return Object.fromEntries(
+ Object.entries(result).map(([id, { qualify, unqualify }]) => {
+ const isLowTps = qualify + unqualify > 10 && qualify < unqualify
+ return [id, isLowTps]
+ }),
+ )
+ },
+ track: async (
+ provider: string,
+ model: string,
+ tpsGoal: number | undefined,
+ tsFirstByte: number,
+ tsLastByte: number,
+ usageInfo: UsageInfo,
+ ) => {
+ if (!tpsGoal) return
+ const id = `${provider}/${model}/${tpsGoal}`
+ if (!ids.includes(id)) return
+ if (tsFirstByte <= 0 || tsLastByte <= 0) return
+ const tokens = usageInfo.outputTokens
+ if (tokens <= 10) return
+
+ const tps = (tokens / (tsLastByte - tsFirstByte)) * 1000
+ const qualify = tps >= tpsGoal ? 1 : 0
+ const unqualify = tps < tpsGoal ? 1 : 0
+ await Database.use((tx) =>
+ tx
+ .insert(ModelTpsRateLimitTable)
+ .values({
+ id,
+ interval: currInterval,
+ qualify,
+ unqualify,
+ })
+ .onDuplicateKeyUpdate({
+ set: {
+ qualify: sql`${ModelTpsRateLimitTable.qualify} + ${qualify}`,
+ unqualify: sql`${ModelTpsRateLimitTable.unqualify} + ${unqualify}`,
+ },
+ }),
+ )
+ },
+ }
+}
diff --git a/packages/console/app/src/routes/zen/util/stickyProviderTracker.ts b/packages/console/app/src/routes/zen/util/stickyProviderTracker.ts
index 8029757c5b..fae0cdf03c 100644
--- a/packages/console/app/src/routes/zen/util/stickyProviderTracker.ts
+++ b/packages/console/app/src/routes/zen/util/stickyProviderTracker.ts
@@ -1,16 +1,42 @@
-import { Resource } from "@opencode-ai/console-resource"
+import { Database, eq } from "@opencode-ai/console-core/drizzle/index.js"
+import { ModelStickyProviderTable } from "@opencode-ai/console-core/schema/ip.sql.js"
-export function createStickyTracker(stickyProvider: "strict" | "prefer" | undefined, session: string) {
+export function createStickyTracker(modelId: string, stickyProvider: "strict" | "prefer" | undefined, session: string) {
if (!stickyProvider) return
if (!session) return
- const key = `sticky:${session}`
+ const id = `${modelId}/${session}`
+ let _providerId: string | undefined
return {
get: async () => {
- return await Resource.GatewayKv.get(key)
+ const data = await Database.use((tx) =>
+ tx
+ .select({
+ providerId: ModelStickyProviderTable.providerId,
+ })
+ .from(ModelStickyProviderTable)
+ .where(eq(ModelStickyProviderTable.id, id))
+ .limit(1),
+ )
+ _providerId = data[0]?.providerId
+ return _providerId
},
set: async (providerId: string) => {
- await Resource.GatewayKv.put(key, providerId, { expirationTtl: 86400 })
+ if (_providerId === providerId) return
+
+ await Database.use((tx) =>
+ tx
+ .insert(ModelStickyProviderTable)
+ .values({
+ id,
+ providerId,
+ })
+ .onDuplicateKeyUpdate({
+ set: {
+ providerId,
+ },
+ }),
+ )
},
}
}
diff --git a/packages/console/core/migrations/20260511220522_fine_shaman/migration.sql b/packages/console/core/migrations/20260511220522_fine_shaman/migration.sql
new file mode 100644
index 0000000000..3af8255a17
--- /dev/null
+++ b/packages/console/core/migrations/20260511220522_fine_shaman/migration.sql
@@ -0,0 +1,7 @@
+CREATE TABLE `model_tps_rate_limit` (
+ `id` varchar(255) NOT NULL,
+ `interval` bigint NOT NULL,
+ `qualify` int NOT NULL,
+ `unqualify` int NOT NULL,
+ CONSTRAINT PRIMARY KEY(`id`,`interval`)
+);
diff --git a/packages/console/core/migrations/20260511220522_fine_shaman/snapshot.json b/packages/console/core/migrations/20260511220522_fine_shaman/snapshot.json
new file mode 100644
index 0000000000..b175f6d4b6
--- /dev/null
+++ b/packages/console/core/migrations/20260511220522_fine_shaman/snapshot.json
@@ -0,0 +1,2685 @@
+{
+ "version": "6",
+ "dialect": "mysql",
+ "id": "c742e0f2-5d89-4216-b843-059d00680f13",
+ "prevIds": ["b3b243c0-8097-4d8a-a439-243d5a7d543f"],
+ "ddl": [
+ {
+ "name": "account",
+ "entityType": "tables"
+ },
+ {
+ "name": "auth",
+ "entityType": "tables"
+ },
+ {
+ "name": "benchmark",
+ "entityType": "tables"
+ },
+ {
+ "name": "billing",
+ "entityType": "tables"
+ },
+ {
+ "name": "coupon",
+ "entityType": "tables"
+ },
+ {
+ "name": "lite",
+ "entityType": "tables"
+ },
+ {
+ "name": "payment",
+ "entityType": "tables"
+ },
+ {
+ "name": "subscription",
+ "entityType": "tables"
+ },
+ {
+ "name": "usage",
+ "entityType": "tables"
+ },
+ {
+ "name": "ip_rate_limit",
+ "entityType": "tables"
+ },
+ {
+ "name": "ip",
+ "entityType": "tables"
+ },
+ {
+ "name": "key_rate_limit",
+ "entityType": "tables"
+ },
+ {
+ "name": "model_tpm_rate_limit",
+ "entityType": "tables"
+ },
+ {
+ "name": "model_tps_rate_limit",
+ "entityType": "tables"
+ },
+ {
+ "name": "key",
+ "entityType": "tables"
+ },
+ {
+ "name": "model",
+ "entityType": "tables"
+ },
+ {
+ "name": "provider",
+ "entityType": "tables"
+ },
+ {
+ "name": "user",
+ "entityType": "tables"
+ },
+ {
+ "name": "workspace",
+ "entityType": "tables"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "account"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(now())",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_created",
+ "entityType": "columns",
+ "table": "account"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3))",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_updated",
+ "entityType": "columns",
+ "table": "account"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_deleted",
+ "entityType": "columns",
+ "table": "account"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "auth"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(now())",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_created",
+ "entityType": "columns",
+ "table": "auth"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3))",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_updated",
+ "entityType": "columns",
+ "table": "auth"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_deleted",
+ "entityType": "columns",
+ "table": "auth"
+ },
+ {
+ "type": "enum('email','github','google')",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "provider",
+ "entityType": "columns",
+ "table": "auth"
+ },
+ {
+ "type": "varchar(255)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "subject",
+ "entityType": "columns",
+ "table": "auth"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "account_id",
+ "entityType": "columns",
+ "table": "auth"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "benchmark"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(now())",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_created",
+ "entityType": "columns",
+ "table": "benchmark"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3))",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_updated",
+ "entityType": "columns",
+ "table": "benchmark"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_deleted",
+ "entityType": "columns",
+ "table": "benchmark"
+ },
+ {
+ "type": "varchar(64)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "model",
+ "entityType": "columns",
+ "table": "benchmark"
+ },
+ {
+ "type": "varchar(64)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "agent",
+ "entityType": "columns",
+ "table": "benchmark"
+ },
+ {
+ "type": "mediumtext",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "result",
+ "entityType": "columns",
+ "table": "benchmark"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "billing"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "workspace_id",
+ "entityType": "columns",
+ "table": "billing"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(now())",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_created",
+ "entityType": "columns",
+ "table": "billing"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3))",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_updated",
+ "entityType": "columns",
+ "table": "billing"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_deleted",
+ "entityType": "columns",
+ "table": "billing"
+ },
+ {
+ "type": "varchar(255)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "customer_id",
+ "entityType": "columns",
+ "table": "billing"
+ },
+ {
+ "type": "varchar(255)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "payment_method_id",
+ "entityType": "columns",
+ "table": "billing"
+ },
+ {
+ "type": "varchar(32)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "payment_method_type",
+ "entityType": "columns",
+ "table": "billing"
+ },
+ {
+ "type": "varchar(4)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "payment_method_last4",
+ "entityType": "columns",
+ "table": "billing"
+ },
+ {
+ "type": "bigint",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "balance",
+ "entityType": "columns",
+ "table": "billing"
+ },
+ {
+ "type": "int",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "monthly_limit",
+ "entityType": "columns",
+ "table": "billing"
+ },
+ {
+ "type": "bigint",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "monthly_usage",
+ "entityType": "columns",
+ "table": "billing"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_monthly_usage_updated",
+ "entityType": "columns",
+ "table": "billing"
+ },
+ {
+ "type": "boolean",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "reload",
+ "entityType": "columns",
+ "table": "billing"
+ },
+ {
+ "type": "int",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "reload_trigger",
+ "entityType": "columns",
+ "table": "billing"
+ },
+ {
+ "type": "int",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "reload_amount",
+ "entityType": "columns",
+ "table": "billing"
+ },
+ {
+ "type": "varchar(255)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "reload_error",
+ "entityType": "columns",
+ "table": "billing"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_reload_error",
+ "entityType": "columns",
+ "table": "billing"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_reload_locked_till",
+ "entityType": "columns",
+ "table": "billing"
+ },
+ {
+ "type": "json",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "subscription",
+ "entityType": "columns",
+ "table": "billing"
+ },
+ {
+ "type": "varchar(28)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "subscription_id",
+ "entityType": "columns",
+ "table": "billing"
+ },
+ {
+ "type": "enum('20','100','200')",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "subscription_plan",
+ "entityType": "columns",
+ "table": "billing"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_subscription_booked",
+ "entityType": "columns",
+ "table": "billing"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_subscription_selected",
+ "entityType": "columns",
+ "table": "billing"
+ },
+ {
+ "type": "varchar(28)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "lite_subscription_id",
+ "entityType": "columns",
+ "table": "billing"
+ },
+ {
+ "type": "json",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "lite",
+ "entityType": "columns",
+ "table": "billing"
+ },
+ {
+ "type": "varchar(255)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "email",
+ "entityType": "columns",
+ "table": "coupon"
+ },
+ {
+ "type": "enum('BUILDATHON','GOFREEMONTH','GO3MONTHS100','GO6MONTHS100','GO12MONTHS100')",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "type",
+ "entityType": "columns",
+ "table": "coupon"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_redeemed",
+ "entityType": "columns",
+ "table": "coupon"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "lite"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "workspace_id",
+ "entityType": "columns",
+ "table": "lite"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(now())",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_created",
+ "entityType": "columns",
+ "table": "lite"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3))",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_updated",
+ "entityType": "columns",
+ "table": "lite"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_deleted",
+ "entityType": "columns",
+ "table": "lite"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "user_id",
+ "entityType": "columns",
+ "table": "lite"
+ },
+ {
+ "type": "bigint",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "rolling_usage",
+ "entityType": "columns",
+ "table": "lite"
+ },
+ {
+ "type": "bigint",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "weekly_usage",
+ "entityType": "columns",
+ "table": "lite"
+ },
+ {
+ "type": "bigint",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "monthly_usage",
+ "entityType": "columns",
+ "table": "lite"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_rolling_updated",
+ "entityType": "columns",
+ "table": "lite"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_weekly_updated",
+ "entityType": "columns",
+ "table": "lite"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_monthly_updated",
+ "entityType": "columns",
+ "table": "lite"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "payment"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "workspace_id",
+ "entityType": "columns",
+ "table": "payment"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(now())",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_created",
+ "entityType": "columns",
+ "table": "payment"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3))",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_updated",
+ "entityType": "columns",
+ "table": "payment"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_deleted",
+ "entityType": "columns",
+ "table": "payment"
+ },
+ {
+ "type": "varchar(255)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "customer_id",
+ "entityType": "columns",
+ "table": "payment"
+ },
+ {
+ "type": "varchar(255)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "invoice_id",
+ "entityType": "columns",
+ "table": "payment"
+ },
+ {
+ "type": "varchar(255)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "payment_id",
+ "entityType": "columns",
+ "table": "payment"
+ },
+ {
+ "type": "bigint",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "amount",
+ "entityType": "columns",
+ "table": "payment"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_refunded",
+ "entityType": "columns",
+ "table": "payment"
+ },
+ {
+ "type": "json",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "enrichment",
+ "entityType": "columns",
+ "table": "payment"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "subscription"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "workspace_id",
+ "entityType": "columns",
+ "table": "subscription"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(now())",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_created",
+ "entityType": "columns",
+ "table": "subscription"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3))",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_updated",
+ "entityType": "columns",
+ "table": "subscription"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_deleted",
+ "entityType": "columns",
+ "table": "subscription"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "user_id",
+ "entityType": "columns",
+ "table": "subscription"
+ },
+ {
+ "type": "bigint",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "rolling_usage",
+ "entityType": "columns",
+ "table": "subscription"
+ },
+ {
+ "type": "bigint",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "fixed_usage",
+ "entityType": "columns",
+ "table": "subscription"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_rolling_updated",
+ "entityType": "columns",
+ "table": "subscription"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_fixed_updated",
+ "entityType": "columns",
+ "table": "subscription"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "usage"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "workspace_id",
+ "entityType": "columns",
+ "table": "usage"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(now())",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_created",
+ "entityType": "columns",
+ "table": "usage"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3))",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_updated",
+ "entityType": "columns",
+ "table": "usage"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_deleted",
+ "entityType": "columns",
+ "table": "usage"
+ },
+ {
+ "type": "varchar(255)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "model",
+ "entityType": "columns",
+ "table": "usage"
+ },
+ {
+ "type": "varchar(255)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "provider",
+ "entityType": "columns",
+ "table": "usage"
+ },
+ {
+ "type": "int",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "input_tokens",
+ "entityType": "columns",
+ "table": "usage"
+ },
+ {
+ "type": "int",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "output_tokens",
+ "entityType": "columns",
+ "table": "usage"
+ },
+ {
+ "type": "int",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "reasoning_tokens",
+ "entityType": "columns",
+ "table": "usage"
+ },
+ {
+ "type": "int",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "cache_read_tokens",
+ "entityType": "columns",
+ "table": "usage"
+ },
+ {
+ "type": "int",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "cache_write_5m_tokens",
+ "entityType": "columns",
+ "table": "usage"
+ },
+ {
+ "type": "int",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "cache_write_1h_tokens",
+ "entityType": "columns",
+ "table": "usage"
+ },
+ {
+ "type": "bigint",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "cost",
+ "entityType": "columns",
+ "table": "usage"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "key_id",
+ "entityType": "columns",
+ "table": "usage"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "session_id",
+ "entityType": "columns",
+ "table": "usage"
+ },
+ {
+ "type": "json",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "enrichment",
+ "entityType": "columns",
+ "table": "usage"
+ },
+ {
+ "type": "varchar(45)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "ip",
+ "entityType": "columns",
+ "table": "ip_rate_limit"
+ },
+ {
+ "type": "varchar(10)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "interval",
+ "entityType": "columns",
+ "table": "ip_rate_limit"
+ },
+ {
+ "type": "int",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "count",
+ "entityType": "columns",
+ "table": "ip_rate_limit"
+ },
+ {
+ "type": "varchar(45)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "ip",
+ "entityType": "columns",
+ "table": "ip"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(now())",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_created",
+ "entityType": "columns",
+ "table": "ip"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3))",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_updated",
+ "entityType": "columns",
+ "table": "ip"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_deleted",
+ "entityType": "columns",
+ "table": "ip"
+ },
+ {
+ "type": "int",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "usage",
+ "entityType": "columns",
+ "table": "ip"
+ },
+ {
+ "type": "varchar(255)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "key",
+ "entityType": "columns",
+ "table": "key_rate_limit"
+ },
+ {
+ "type": "varchar(40)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "interval",
+ "entityType": "columns",
+ "table": "key_rate_limit"
+ },
+ {
+ "type": "int",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "count",
+ "entityType": "columns",
+ "table": "key_rate_limit"
+ },
+ {
+ "type": "varchar(255)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "model_tpm_rate_limit"
+ },
+ {
+ "type": "bigint",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "interval",
+ "entityType": "columns",
+ "table": "model_tpm_rate_limit"
+ },
+ {
+ "type": "int",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "count",
+ "entityType": "columns",
+ "table": "model_tpm_rate_limit"
+ },
+ {
+ "type": "varchar(255)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "model_tps_rate_limit"
+ },
+ {
+ "type": "bigint",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "interval",
+ "entityType": "columns",
+ "table": "model_tps_rate_limit"
+ },
+ {
+ "type": "int",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "qualify",
+ "entityType": "columns",
+ "table": "model_tps_rate_limit"
+ },
+ {
+ "type": "int",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "unqualify",
+ "entityType": "columns",
+ "table": "model_tps_rate_limit"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "key"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "workspace_id",
+ "entityType": "columns",
+ "table": "key"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(now())",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_created",
+ "entityType": "columns",
+ "table": "key"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3))",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_updated",
+ "entityType": "columns",
+ "table": "key"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_deleted",
+ "entityType": "columns",
+ "table": "key"
+ },
+ {
+ "type": "varchar(255)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "name",
+ "entityType": "columns",
+ "table": "key"
+ },
+ {
+ "type": "varchar(255)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "key",
+ "entityType": "columns",
+ "table": "key"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "user_id",
+ "entityType": "columns",
+ "table": "key"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_used",
+ "entityType": "columns",
+ "table": "key"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "model"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "workspace_id",
+ "entityType": "columns",
+ "table": "model"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(now())",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_created",
+ "entityType": "columns",
+ "table": "model"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3))",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_updated",
+ "entityType": "columns",
+ "table": "model"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_deleted",
+ "entityType": "columns",
+ "table": "model"
+ },
+ {
+ "type": "varchar(64)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "model",
+ "entityType": "columns",
+ "table": "model"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "provider"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "workspace_id",
+ "entityType": "columns",
+ "table": "provider"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(now())",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_created",
+ "entityType": "columns",
+ "table": "provider"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3))",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_updated",
+ "entityType": "columns",
+ "table": "provider"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_deleted",
+ "entityType": "columns",
+ "table": "provider"
+ },
+ {
+ "type": "varchar(64)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "provider",
+ "entityType": "columns",
+ "table": "provider"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "credentials",
+ "entityType": "columns",
+ "table": "provider"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "user"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "workspace_id",
+ "entityType": "columns",
+ "table": "user"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(now())",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_created",
+ "entityType": "columns",
+ "table": "user"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3))",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_updated",
+ "entityType": "columns",
+ "table": "user"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_deleted",
+ "entityType": "columns",
+ "table": "user"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "account_id",
+ "entityType": "columns",
+ "table": "user"
+ },
+ {
+ "type": "varchar(255)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "email",
+ "entityType": "columns",
+ "table": "user"
+ },
+ {
+ "type": "varchar(255)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "name",
+ "entityType": "columns",
+ "table": "user"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_seen",
+ "entityType": "columns",
+ "table": "user"
+ },
+ {
+ "type": "int",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "color",
+ "entityType": "columns",
+ "table": "user"
+ },
+ {
+ "type": "enum('admin','member')",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "role",
+ "entityType": "columns",
+ "table": "user"
+ },
+ {
+ "type": "int",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "monthly_limit",
+ "entityType": "columns",
+ "table": "user"
+ },
+ {
+ "type": "bigint",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "monthly_usage",
+ "entityType": "columns",
+ "table": "user"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_monthly_usage_updated",
+ "entityType": "columns",
+ "table": "user"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "workspace"
+ },
+ {
+ "type": "varchar(255)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "slug",
+ "entityType": "columns",
+ "table": "workspace"
+ },
+ {
+ "type": "varchar(255)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "name",
+ "entityType": "columns",
+ "table": "workspace"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(now())",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_created",
+ "entityType": "columns",
+ "table": "workspace"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3))",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_updated",
+ "entityType": "columns",
+ "table": "workspace"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_deleted",
+ "entityType": "columns",
+ "table": "workspace"
+ },
+ {
+ "columns": ["id"],
+ "name": "PRIMARY",
+ "table": "account",
+ "entityType": "pks"
+ },
+ {
+ "columns": ["id"],
+ "name": "PRIMARY",
+ "table": "auth",
+ "entityType": "pks"
+ },
+ {
+ "columns": ["id"],
+ "name": "PRIMARY",
+ "table": "benchmark",
+ "entityType": "pks"
+ },
+ {
+ "columns": ["workspace_id", "id"],
+ "name": "PRIMARY",
+ "table": "billing",
+ "entityType": "pks"
+ },
+ {
+ "columns": ["email", "type"],
+ "name": "PRIMARY",
+ "table": "coupon",
+ "entityType": "pks"
+ },
+ {
+ "columns": ["workspace_id", "id"],
+ "name": "PRIMARY",
+ "table": "lite",
+ "entityType": "pks"
+ },
+ {
+ "columns": ["workspace_id", "id"],
+ "name": "PRIMARY",
+ "table": "payment",
+ "entityType": "pks"
+ },
+ {
+ "columns": ["workspace_id", "id"],
+ "name": "PRIMARY",
+ "table": "subscription",
+ "entityType": "pks"
+ },
+ {
+ "columns": ["workspace_id", "id"],
+ "name": "PRIMARY",
+ "table": "usage",
+ "entityType": "pks"
+ },
+ {
+ "columns": ["ip", "interval"],
+ "name": "PRIMARY",
+ "table": "ip_rate_limit",
+ "entityType": "pks"
+ },
+ {
+ "columns": ["ip"],
+ "name": "PRIMARY",
+ "table": "ip",
+ "entityType": "pks"
+ },
+ {
+ "columns": ["key", "interval"],
+ "name": "PRIMARY",
+ "table": "key_rate_limit",
+ "entityType": "pks"
+ },
+ {
+ "columns": ["id", "interval"],
+ "name": "PRIMARY",
+ "table": "model_tpm_rate_limit",
+ "entityType": "pks"
+ },
+ {
+ "columns": ["id", "interval"],
+ "name": "PRIMARY",
+ "table": "model_tps_rate_limit",
+ "entityType": "pks"
+ },
+ {
+ "columns": ["workspace_id", "id"],
+ "name": "PRIMARY",
+ "table": "key",
+ "entityType": "pks"
+ },
+ {
+ "columns": ["workspace_id", "id"],
+ "name": "PRIMARY",
+ "table": "model",
+ "entityType": "pks"
+ },
+ {
+ "columns": ["workspace_id", "id"],
+ "name": "PRIMARY",
+ "table": "provider",
+ "entityType": "pks"
+ },
+ {
+ "columns": ["workspace_id", "id"],
+ "name": "PRIMARY",
+ "table": "user",
+ "entityType": "pks"
+ },
+ {
+ "columns": ["id"],
+ "name": "PRIMARY",
+ "table": "workspace",
+ "entityType": "pks"
+ },
+ {
+ "columns": [
+ {
+ "value": "provider",
+ "isExpression": false
+ },
+ {
+ "value": "subject",
+ "isExpression": false
+ }
+ ],
+ "isUnique": true,
+ "using": null,
+ "algorithm": null,
+ "lock": null,
+ "nameExplicit": true,
+ "name": "provider",
+ "entityType": "indexes",
+ "table": "auth"
+ },
+ {
+ "columns": [
+ {
+ "value": "account_id",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "using": null,
+ "algorithm": null,
+ "lock": null,
+ "nameExplicit": true,
+ "name": "account_id",
+ "entityType": "indexes",
+ "table": "auth"
+ },
+ {
+ "columns": [
+ {
+ "value": "time_created",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "using": null,
+ "algorithm": null,
+ "lock": null,
+ "nameExplicit": true,
+ "name": "time_created",
+ "entityType": "indexes",
+ "table": "benchmark"
+ },
+ {
+ "columns": [
+ {
+ "value": "customer_id",
+ "isExpression": false
+ }
+ ],
+ "isUnique": true,
+ "using": null,
+ "algorithm": null,
+ "lock": null,
+ "nameExplicit": true,
+ "name": "global_customer_id",
+ "entityType": "indexes",
+ "table": "billing"
+ },
+ {
+ "columns": [
+ {
+ "value": "subscription_id",
+ "isExpression": false
+ }
+ ],
+ "isUnique": true,
+ "using": null,
+ "algorithm": null,
+ "lock": null,
+ "nameExplicit": true,
+ "name": "global_subscription_id",
+ "entityType": "indexes",
+ "table": "billing"
+ },
+ {
+ "columns": [
+ {
+ "value": "workspace_id",
+ "isExpression": false
+ },
+ {
+ "value": "user_id",
+ "isExpression": false
+ }
+ ],
+ "isUnique": true,
+ "using": null,
+ "algorithm": null,
+ "lock": null,
+ "nameExplicit": true,
+ "name": "workspace_user_id",
+ "entityType": "indexes",
+ "table": "lite"
+ },
+ {
+ "columns": [
+ {
+ "value": "workspace_id",
+ "isExpression": false
+ },
+ {
+ "value": "user_id",
+ "isExpression": false
+ }
+ ],
+ "isUnique": true,
+ "using": null,
+ "algorithm": null,
+ "lock": null,
+ "nameExplicit": true,
+ "name": "workspace_user_id",
+ "entityType": "indexes",
+ "table": "subscription"
+ },
+ {
+ "columns": [
+ {
+ "value": "workspace_id",
+ "isExpression": false
+ },
+ {
+ "value": "time_created",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "using": null,
+ "algorithm": null,
+ "lock": null,
+ "nameExplicit": true,
+ "name": "usage_time_created",
+ "entityType": "indexes",
+ "table": "usage"
+ },
+ {
+ "columns": [
+ {
+ "value": "key",
+ "isExpression": false
+ }
+ ],
+ "isUnique": true,
+ "using": null,
+ "algorithm": null,
+ "lock": null,
+ "nameExplicit": true,
+ "name": "global_key",
+ "entityType": "indexes",
+ "table": "key"
+ },
+ {
+ "columns": [
+ {
+ "value": "workspace_id",
+ "isExpression": false
+ },
+ {
+ "value": "model",
+ "isExpression": false
+ }
+ ],
+ "isUnique": true,
+ "using": null,
+ "algorithm": null,
+ "lock": null,
+ "nameExplicit": true,
+ "name": "model_workspace_model",
+ "entityType": "indexes",
+ "table": "model"
+ },
+ {
+ "columns": [
+ {
+ "value": "workspace_id",
+ "isExpression": false
+ },
+ {
+ "value": "provider",
+ "isExpression": false
+ }
+ ],
+ "isUnique": true,
+ "using": null,
+ "algorithm": null,
+ "lock": null,
+ "nameExplicit": true,
+ "name": "workspace_provider",
+ "entityType": "indexes",
+ "table": "provider"
+ },
+ {
+ "columns": [
+ {
+ "value": "workspace_id",
+ "isExpression": false
+ },
+ {
+ "value": "account_id",
+ "isExpression": false
+ }
+ ],
+ "isUnique": true,
+ "using": null,
+ "algorithm": null,
+ "lock": null,
+ "nameExplicit": true,
+ "name": "user_account_id",
+ "entityType": "indexes",
+ "table": "user"
+ },
+ {
+ "columns": [
+ {
+ "value": "workspace_id",
+ "isExpression": false
+ },
+ {
+ "value": "email",
+ "isExpression": false
+ }
+ ],
+ "isUnique": true,
+ "using": null,
+ "algorithm": null,
+ "lock": null,
+ "nameExplicit": true,
+ "name": "user_email",
+ "entityType": "indexes",
+ "table": "user"
+ },
+ {
+ "columns": [
+ {
+ "value": "account_id",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "using": null,
+ "algorithm": null,
+ "lock": null,
+ "nameExplicit": true,
+ "name": "global_account_id",
+ "entityType": "indexes",
+ "table": "user"
+ },
+ {
+ "columns": [
+ {
+ "value": "email",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "using": null,
+ "algorithm": null,
+ "lock": null,
+ "nameExplicit": true,
+ "name": "global_email",
+ "entityType": "indexes",
+ "table": "user"
+ },
+ {
+ "columns": [
+ {
+ "value": "slug",
+ "isExpression": false
+ }
+ ],
+ "isUnique": true,
+ "using": null,
+ "algorithm": null,
+ "lock": null,
+ "nameExplicit": true,
+ "name": "slug",
+ "entityType": "indexes",
+ "table": "workspace"
+ }
+ ],
+ "renames": []
+}
diff --git a/packages/console/core/migrations/20260513163955_tearful_whistler/migration.sql b/packages/console/core/migrations/20260513163955_tearful_whistler/migration.sql
new file mode 100644
index 0000000000..a2bcc164ca
--- /dev/null
+++ b/packages/console/core/migrations/20260513163955_tearful_whistler/migration.sql
@@ -0,0 +1,7 @@
+CREATE TABLE `model_sticky_provider` (
+ `id` varchar(255) PRIMARY KEY,
+ `time_created` timestamp(3) NOT NULL DEFAULT (now()),
+ `time_updated` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
+ `time_deleted` timestamp(3),
+ `provider_id` varchar(255) NOT NULL
+);
diff --git a/packages/console/core/migrations/20260513163955_tearful_whistler/snapshot.json b/packages/console/core/migrations/20260513163955_tearful_whistler/snapshot.json
new file mode 100644
index 0000000000..b791735228
--- /dev/null
+++ b/packages/console/core/migrations/20260513163955_tearful_whistler/snapshot.json
@@ -0,0 +1,2765 @@
+{
+ "version": "6",
+ "dialect": "mysql",
+ "id": "1f04bd59-35b0-493b-9d55-cfa08207ba8e",
+ "prevIds": ["c742e0f2-5d89-4216-b843-059d00680f13"],
+ "ddl": [
+ {
+ "name": "account",
+ "entityType": "tables"
+ },
+ {
+ "name": "auth",
+ "entityType": "tables"
+ },
+ {
+ "name": "benchmark",
+ "entityType": "tables"
+ },
+ {
+ "name": "billing",
+ "entityType": "tables"
+ },
+ {
+ "name": "coupon",
+ "entityType": "tables"
+ },
+ {
+ "name": "lite",
+ "entityType": "tables"
+ },
+ {
+ "name": "payment",
+ "entityType": "tables"
+ },
+ {
+ "name": "subscription",
+ "entityType": "tables"
+ },
+ {
+ "name": "usage",
+ "entityType": "tables"
+ },
+ {
+ "name": "ip_rate_limit",
+ "entityType": "tables"
+ },
+ {
+ "name": "ip",
+ "entityType": "tables"
+ },
+ {
+ "name": "key_rate_limit",
+ "entityType": "tables"
+ },
+ {
+ "name": "model_sticky_provider",
+ "entityType": "tables"
+ },
+ {
+ "name": "model_tpm_rate_limit",
+ "entityType": "tables"
+ },
+ {
+ "name": "model_tps_rate_limit",
+ "entityType": "tables"
+ },
+ {
+ "name": "key",
+ "entityType": "tables"
+ },
+ {
+ "name": "model",
+ "entityType": "tables"
+ },
+ {
+ "name": "provider",
+ "entityType": "tables"
+ },
+ {
+ "name": "user",
+ "entityType": "tables"
+ },
+ {
+ "name": "workspace",
+ "entityType": "tables"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "account"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(now())",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_created",
+ "entityType": "columns",
+ "table": "account"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3))",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_updated",
+ "entityType": "columns",
+ "table": "account"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_deleted",
+ "entityType": "columns",
+ "table": "account"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "auth"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(now())",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_created",
+ "entityType": "columns",
+ "table": "auth"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3))",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_updated",
+ "entityType": "columns",
+ "table": "auth"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_deleted",
+ "entityType": "columns",
+ "table": "auth"
+ },
+ {
+ "type": "enum('email','github','google')",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "provider",
+ "entityType": "columns",
+ "table": "auth"
+ },
+ {
+ "type": "varchar(255)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "subject",
+ "entityType": "columns",
+ "table": "auth"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "account_id",
+ "entityType": "columns",
+ "table": "auth"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "benchmark"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(now())",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_created",
+ "entityType": "columns",
+ "table": "benchmark"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3))",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_updated",
+ "entityType": "columns",
+ "table": "benchmark"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_deleted",
+ "entityType": "columns",
+ "table": "benchmark"
+ },
+ {
+ "type": "varchar(64)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "model",
+ "entityType": "columns",
+ "table": "benchmark"
+ },
+ {
+ "type": "varchar(64)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "agent",
+ "entityType": "columns",
+ "table": "benchmark"
+ },
+ {
+ "type": "mediumtext",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "result",
+ "entityType": "columns",
+ "table": "benchmark"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "billing"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "workspace_id",
+ "entityType": "columns",
+ "table": "billing"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(now())",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_created",
+ "entityType": "columns",
+ "table": "billing"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3))",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_updated",
+ "entityType": "columns",
+ "table": "billing"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_deleted",
+ "entityType": "columns",
+ "table": "billing"
+ },
+ {
+ "type": "varchar(255)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "customer_id",
+ "entityType": "columns",
+ "table": "billing"
+ },
+ {
+ "type": "varchar(255)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "payment_method_id",
+ "entityType": "columns",
+ "table": "billing"
+ },
+ {
+ "type": "varchar(32)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "payment_method_type",
+ "entityType": "columns",
+ "table": "billing"
+ },
+ {
+ "type": "varchar(4)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "payment_method_last4",
+ "entityType": "columns",
+ "table": "billing"
+ },
+ {
+ "type": "bigint",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "balance",
+ "entityType": "columns",
+ "table": "billing"
+ },
+ {
+ "type": "int",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "monthly_limit",
+ "entityType": "columns",
+ "table": "billing"
+ },
+ {
+ "type": "bigint",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "monthly_usage",
+ "entityType": "columns",
+ "table": "billing"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_monthly_usage_updated",
+ "entityType": "columns",
+ "table": "billing"
+ },
+ {
+ "type": "boolean",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "reload",
+ "entityType": "columns",
+ "table": "billing"
+ },
+ {
+ "type": "int",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "reload_trigger",
+ "entityType": "columns",
+ "table": "billing"
+ },
+ {
+ "type": "int",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "reload_amount",
+ "entityType": "columns",
+ "table": "billing"
+ },
+ {
+ "type": "varchar(255)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "reload_error",
+ "entityType": "columns",
+ "table": "billing"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_reload_error",
+ "entityType": "columns",
+ "table": "billing"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_reload_locked_till",
+ "entityType": "columns",
+ "table": "billing"
+ },
+ {
+ "type": "json",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "subscription",
+ "entityType": "columns",
+ "table": "billing"
+ },
+ {
+ "type": "varchar(28)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "subscription_id",
+ "entityType": "columns",
+ "table": "billing"
+ },
+ {
+ "type": "enum('20','100','200')",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "subscription_plan",
+ "entityType": "columns",
+ "table": "billing"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_subscription_booked",
+ "entityType": "columns",
+ "table": "billing"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_subscription_selected",
+ "entityType": "columns",
+ "table": "billing"
+ },
+ {
+ "type": "varchar(28)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "lite_subscription_id",
+ "entityType": "columns",
+ "table": "billing"
+ },
+ {
+ "type": "json",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "lite",
+ "entityType": "columns",
+ "table": "billing"
+ },
+ {
+ "type": "varchar(255)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "email",
+ "entityType": "columns",
+ "table": "coupon"
+ },
+ {
+ "type": "enum('BUILDATHON','GOFREEMONTH','GO3MONTHS100','GO6MONTHS100','GO12MONTHS100')",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "type",
+ "entityType": "columns",
+ "table": "coupon"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_redeemed",
+ "entityType": "columns",
+ "table": "coupon"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "lite"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "workspace_id",
+ "entityType": "columns",
+ "table": "lite"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(now())",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_created",
+ "entityType": "columns",
+ "table": "lite"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3))",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_updated",
+ "entityType": "columns",
+ "table": "lite"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_deleted",
+ "entityType": "columns",
+ "table": "lite"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "user_id",
+ "entityType": "columns",
+ "table": "lite"
+ },
+ {
+ "type": "bigint",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "rolling_usage",
+ "entityType": "columns",
+ "table": "lite"
+ },
+ {
+ "type": "bigint",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "weekly_usage",
+ "entityType": "columns",
+ "table": "lite"
+ },
+ {
+ "type": "bigint",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "monthly_usage",
+ "entityType": "columns",
+ "table": "lite"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_rolling_updated",
+ "entityType": "columns",
+ "table": "lite"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_weekly_updated",
+ "entityType": "columns",
+ "table": "lite"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_monthly_updated",
+ "entityType": "columns",
+ "table": "lite"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "payment"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "workspace_id",
+ "entityType": "columns",
+ "table": "payment"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(now())",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_created",
+ "entityType": "columns",
+ "table": "payment"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3))",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_updated",
+ "entityType": "columns",
+ "table": "payment"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_deleted",
+ "entityType": "columns",
+ "table": "payment"
+ },
+ {
+ "type": "varchar(255)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "customer_id",
+ "entityType": "columns",
+ "table": "payment"
+ },
+ {
+ "type": "varchar(255)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "invoice_id",
+ "entityType": "columns",
+ "table": "payment"
+ },
+ {
+ "type": "varchar(255)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "payment_id",
+ "entityType": "columns",
+ "table": "payment"
+ },
+ {
+ "type": "bigint",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "amount",
+ "entityType": "columns",
+ "table": "payment"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_refunded",
+ "entityType": "columns",
+ "table": "payment"
+ },
+ {
+ "type": "json",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "enrichment",
+ "entityType": "columns",
+ "table": "payment"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "subscription"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "workspace_id",
+ "entityType": "columns",
+ "table": "subscription"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(now())",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_created",
+ "entityType": "columns",
+ "table": "subscription"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3))",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_updated",
+ "entityType": "columns",
+ "table": "subscription"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_deleted",
+ "entityType": "columns",
+ "table": "subscription"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "user_id",
+ "entityType": "columns",
+ "table": "subscription"
+ },
+ {
+ "type": "bigint",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "rolling_usage",
+ "entityType": "columns",
+ "table": "subscription"
+ },
+ {
+ "type": "bigint",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "fixed_usage",
+ "entityType": "columns",
+ "table": "subscription"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_rolling_updated",
+ "entityType": "columns",
+ "table": "subscription"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_fixed_updated",
+ "entityType": "columns",
+ "table": "subscription"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "usage"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "workspace_id",
+ "entityType": "columns",
+ "table": "usage"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(now())",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_created",
+ "entityType": "columns",
+ "table": "usage"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3))",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_updated",
+ "entityType": "columns",
+ "table": "usage"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_deleted",
+ "entityType": "columns",
+ "table": "usage"
+ },
+ {
+ "type": "varchar(255)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "model",
+ "entityType": "columns",
+ "table": "usage"
+ },
+ {
+ "type": "varchar(255)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "provider",
+ "entityType": "columns",
+ "table": "usage"
+ },
+ {
+ "type": "int",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "input_tokens",
+ "entityType": "columns",
+ "table": "usage"
+ },
+ {
+ "type": "int",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "output_tokens",
+ "entityType": "columns",
+ "table": "usage"
+ },
+ {
+ "type": "int",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "reasoning_tokens",
+ "entityType": "columns",
+ "table": "usage"
+ },
+ {
+ "type": "int",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "cache_read_tokens",
+ "entityType": "columns",
+ "table": "usage"
+ },
+ {
+ "type": "int",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "cache_write_5m_tokens",
+ "entityType": "columns",
+ "table": "usage"
+ },
+ {
+ "type": "int",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "cache_write_1h_tokens",
+ "entityType": "columns",
+ "table": "usage"
+ },
+ {
+ "type": "bigint",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "cost",
+ "entityType": "columns",
+ "table": "usage"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "key_id",
+ "entityType": "columns",
+ "table": "usage"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "session_id",
+ "entityType": "columns",
+ "table": "usage"
+ },
+ {
+ "type": "json",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "enrichment",
+ "entityType": "columns",
+ "table": "usage"
+ },
+ {
+ "type": "varchar(45)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "ip",
+ "entityType": "columns",
+ "table": "ip_rate_limit"
+ },
+ {
+ "type": "varchar(10)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "interval",
+ "entityType": "columns",
+ "table": "ip_rate_limit"
+ },
+ {
+ "type": "int",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "count",
+ "entityType": "columns",
+ "table": "ip_rate_limit"
+ },
+ {
+ "type": "varchar(45)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "ip",
+ "entityType": "columns",
+ "table": "ip"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(now())",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_created",
+ "entityType": "columns",
+ "table": "ip"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3))",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_updated",
+ "entityType": "columns",
+ "table": "ip"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_deleted",
+ "entityType": "columns",
+ "table": "ip"
+ },
+ {
+ "type": "int",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "usage",
+ "entityType": "columns",
+ "table": "ip"
+ },
+ {
+ "type": "varchar(255)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "key",
+ "entityType": "columns",
+ "table": "key_rate_limit"
+ },
+ {
+ "type": "varchar(40)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "interval",
+ "entityType": "columns",
+ "table": "key_rate_limit"
+ },
+ {
+ "type": "int",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "count",
+ "entityType": "columns",
+ "table": "key_rate_limit"
+ },
+ {
+ "type": "varchar(255)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "model_sticky_provider"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(now())",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_created",
+ "entityType": "columns",
+ "table": "model_sticky_provider"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3))",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_updated",
+ "entityType": "columns",
+ "table": "model_sticky_provider"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_deleted",
+ "entityType": "columns",
+ "table": "model_sticky_provider"
+ },
+ {
+ "type": "varchar(255)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "provider_id",
+ "entityType": "columns",
+ "table": "model_sticky_provider"
+ },
+ {
+ "type": "varchar(255)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "model_tpm_rate_limit"
+ },
+ {
+ "type": "bigint",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "interval",
+ "entityType": "columns",
+ "table": "model_tpm_rate_limit"
+ },
+ {
+ "type": "int",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "count",
+ "entityType": "columns",
+ "table": "model_tpm_rate_limit"
+ },
+ {
+ "type": "varchar(255)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "model_tps_rate_limit"
+ },
+ {
+ "type": "bigint",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "interval",
+ "entityType": "columns",
+ "table": "model_tps_rate_limit"
+ },
+ {
+ "type": "int",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "qualify",
+ "entityType": "columns",
+ "table": "model_tps_rate_limit"
+ },
+ {
+ "type": "int",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "unqualify",
+ "entityType": "columns",
+ "table": "model_tps_rate_limit"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "key"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "workspace_id",
+ "entityType": "columns",
+ "table": "key"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(now())",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_created",
+ "entityType": "columns",
+ "table": "key"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3))",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_updated",
+ "entityType": "columns",
+ "table": "key"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_deleted",
+ "entityType": "columns",
+ "table": "key"
+ },
+ {
+ "type": "varchar(255)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "name",
+ "entityType": "columns",
+ "table": "key"
+ },
+ {
+ "type": "varchar(255)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "key",
+ "entityType": "columns",
+ "table": "key"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "user_id",
+ "entityType": "columns",
+ "table": "key"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_used",
+ "entityType": "columns",
+ "table": "key"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "model"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "workspace_id",
+ "entityType": "columns",
+ "table": "model"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(now())",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_created",
+ "entityType": "columns",
+ "table": "model"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3))",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_updated",
+ "entityType": "columns",
+ "table": "model"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_deleted",
+ "entityType": "columns",
+ "table": "model"
+ },
+ {
+ "type": "varchar(64)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "model",
+ "entityType": "columns",
+ "table": "model"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "provider"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "workspace_id",
+ "entityType": "columns",
+ "table": "provider"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(now())",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_created",
+ "entityType": "columns",
+ "table": "provider"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3))",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_updated",
+ "entityType": "columns",
+ "table": "provider"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_deleted",
+ "entityType": "columns",
+ "table": "provider"
+ },
+ {
+ "type": "varchar(64)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "provider",
+ "entityType": "columns",
+ "table": "provider"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "credentials",
+ "entityType": "columns",
+ "table": "provider"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "user"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "workspace_id",
+ "entityType": "columns",
+ "table": "user"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(now())",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_created",
+ "entityType": "columns",
+ "table": "user"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3))",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_updated",
+ "entityType": "columns",
+ "table": "user"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_deleted",
+ "entityType": "columns",
+ "table": "user"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "account_id",
+ "entityType": "columns",
+ "table": "user"
+ },
+ {
+ "type": "varchar(255)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "email",
+ "entityType": "columns",
+ "table": "user"
+ },
+ {
+ "type": "varchar(255)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "name",
+ "entityType": "columns",
+ "table": "user"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_seen",
+ "entityType": "columns",
+ "table": "user"
+ },
+ {
+ "type": "int",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "color",
+ "entityType": "columns",
+ "table": "user"
+ },
+ {
+ "type": "enum('admin','member')",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "role",
+ "entityType": "columns",
+ "table": "user"
+ },
+ {
+ "type": "int",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "monthly_limit",
+ "entityType": "columns",
+ "table": "user"
+ },
+ {
+ "type": "bigint",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "monthly_usage",
+ "entityType": "columns",
+ "table": "user"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_monthly_usage_updated",
+ "entityType": "columns",
+ "table": "user"
+ },
+ {
+ "type": "varchar(30)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "workspace"
+ },
+ {
+ "type": "varchar(255)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "slug",
+ "entityType": "columns",
+ "table": "workspace"
+ },
+ {
+ "type": "varchar(255)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "name",
+ "entityType": "columns",
+ "table": "workspace"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(now())",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_created",
+ "entityType": "columns",
+ "table": "workspace"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": true,
+ "autoIncrement": false,
+ "default": "(CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3))",
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_updated",
+ "entityType": "columns",
+ "table": "workspace"
+ },
+ {
+ "type": "timestamp(3)",
+ "notNull": false,
+ "autoIncrement": false,
+ "default": null,
+ "onUpdateNow": false,
+ "onUpdateNowFsp": null,
+ "charSet": null,
+ "collation": null,
+ "generated": null,
+ "name": "time_deleted",
+ "entityType": "columns",
+ "table": "workspace"
+ },
+ {
+ "columns": ["id"],
+ "name": "PRIMARY",
+ "table": "account",
+ "entityType": "pks"
+ },
+ {
+ "columns": ["id"],
+ "name": "PRIMARY",
+ "table": "auth",
+ "entityType": "pks"
+ },
+ {
+ "columns": ["id"],
+ "name": "PRIMARY",
+ "table": "benchmark",
+ "entityType": "pks"
+ },
+ {
+ "columns": ["workspace_id", "id"],
+ "name": "PRIMARY",
+ "table": "billing",
+ "entityType": "pks"
+ },
+ {
+ "columns": ["email", "type"],
+ "name": "PRIMARY",
+ "table": "coupon",
+ "entityType": "pks"
+ },
+ {
+ "columns": ["workspace_id", "id"],
+ "name": "PRIMARY",
+ "table": "lite",
+ "entityType": "pks"
+ },
+ {
+ "columns": ["workspace_id", "id"],
+ "name": "PRIMARY",
+ "table": "payment",
+ "entityType": "pks"
+ },
+ {
+ "columns": ["workspace_id", "id"],
+ "name": "PRIMARY",
+ "table": "subscription",
+ "entityType": "pks"
+ },
+ {
+ "columns": ["workspace_id", "id"],
+ "name": "PRIMARY",
+ "table": "usage",
+ "entityType": "pks"
+ },
+ {
+ "columns": ["ip", "interval"],
+ "name": "PRIMARY",
+ "table": "ip_rate_limit",
+ "entityType": "pks"
+ },
+ {
+ "columns": ["ip"],
+ "name": "PRIMARY",
+ "table": "ip",
+ "entityType": "pks"
+ },
+ {
+ "columns": ["key", "interval"],
+ "name": "PRIMARY",
+ "table": "key_rate_limit",
+ "entityType": "pks"
+ },
+ {
+ "columns": ["id"],
+ "name": "PRIMARY",
+ "table": "model_sticky_provider",
+ "entityType": "pks"
+ },
+ {
+ "columns": ["id", "interval"],
+ "name": "PRIMARY",
+ "table": "model_tpm_rate_limit",
+ "entityType": "pks"
+ },
+ {
+ "columns": ["id", "interval"],
+ "name": "PRIMARY",
+ "table": "model_tps_rate_limit",
+ "entityType": "pks"
+ },
+ {
+ "columns": ["workspace_id", "id"],
+ "name": "PRIMARY",
+ "table": "key",
+ "entityType": "pks"
+ },
+ {
+ "columns": ["workspace_id", "id"],
+ "name": "PRIMARY",
+ "table": "model",
+ "entityType": "pks"
+ },
+ {
+ "columns": ["workspace_id", "id"],
+ "name": "PRIMARY",
+ "table": "provider",
+ "entityType": "pks"
+ },
+ {
+ "columns": ["workspace_id", "id"],
+ "name": "PRIMARY",
+ "table": "user",
+ "entityType": "pks"
+ },
+ {
+ "columns": ["id"],
+ "name": "PRIMARY",
+ "table": "workspace",
+ "entityType": "pks"
+ },
+ {
+ "columns": [
+ {
+ "value": "provider",
+ "isExpression": false
+ },
+ {
+ "value": "subject",
+ "isExpression": false
+ }
+ ],
+ "isUnique": true,
+ "using": null,
+ "algorithm": null,
+ "lock": null,
+ "nameExplicit": true,
+ "name": "provider",
+ "entityType": "indexes",
+ "table": "auth"
+ },
+ {
+ "columns": [
+ {
+ "value": "account_id",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "using": null,
+ "algorithm": null,
+ "lock": null,
+ "nameExplicit": true,
+ "name": "account_id",
+ "entityType": "indexes",
+ "table": "auth"
+ },
+ {
+ "columns": [
+ {
+ "value": "time_created",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "using": null,
+ "algorithm": null,
+ "lock": null,
+ "nameExplicit": true,
+ "name": "time_created",
+ "entityType": "indexes",
+ "table": "benchmark"
+ },
+ {
+ "columns": [
+ {
+ "value": "customer_id",
+ "isExpression": false
+ }
+ ],
+ "isUnique": true,
+ "using": null,
+ "algorithm": null,
+ "lock": null,
+ "nameExplicit": true,
+ "name": "global_customer_id",
+ "entityType": "indexes",
+ "table": "billing"
+ },
+ {
+ "columns": [
+ {
+ "value": "subscription_id",
+ "isExpression": false
+ }
+ ],
+ "isUnique": true,
+ "using": null,
+ "algorithm": null,
+ "lock": null,
+ "nameExplicit": true,
+ "name": "global_subscription_id",
+ "entityType": "indexes",
+ "table": "billing"
+ },
+ {
+ "columns": [
+ {
+ "value": "workspace_id",
+ "isExpression": false
+ },
+ {
+ "value": "user_id",
+ "isExpression": false
+ }
+ ],
+ "isUnique": true,
+ "using": null,
+ "algorithm": null,
+ "lock": null,
+ "nameExplicit": true,
+ "name": "workspace_user_id",
+ "entityType": "indexes",
+ "table": "lite"
+ },
+ {
+ "columns": [
+ {
+ "value": "workspace_id",
+ "isExpression": false
+ },
+ {
+ "value": "user_id",
+ "isExpression": false
+ }
+ ],
+ "isUnique": true,
+ "using": null,
+ "algorithm": null,
+ "lock": null,
+ "nameExplicit": true,
+ "name": "workspace_user_id",
+ "entityType": "indexes",
+ "table": "subscription"
+ },
+ {
+ "columns": [
+ {
+ "value": "workspace_id",
+ "isExpression": false
+ },
+ {
+ "value": "time_created",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "using": null,
+ "algorithm": null,
+ "lock": null,
+ "nameExplicit": true,
+ "name": "usage_time_created",
+ "entityType": "indexes",
+ "table": "usage"
+ },
+ {
+ "columns": [
+ {
+ "value": "key",
+ "isExpression": false
+ }
+ ],
+ "isUnique": true,
+ "using": null,
+ "algorithm": null,
+ "lock": null,
+ "nameExplicit": true,
+ "name": "global_key",
+ "entityType": "indexes",
+ "table": "key"
+ },
+ {
+ "columns": [
+ {
+ "value": "workspace_id",
+ "isExpression": false
+ },
+ {
+ "value": "model",
+ "isExpression": false
+ }
+ ],
+ "isUnique": true,
+ "using": null,
+ "algorithm": null,
+ "lock": null,
+ "nameExplicit": true,
+ "name": "model_workspace_model",
+ "entityType": "indexes",
+ "table": "model"
+ },
+ {
+ "columns": [
+ {
+ "value": "workspace_id",
+ "isExpression": false
+ },
+ {
+ "value": "provider",
+ "isExpression": false
+ }
+ ],
+ "isUnique": true,
+ "using": null,
+ "algorithm": null,
+ "lock": null,
+ "nameExplicit": true,
+ "name": "workspace_provider",
+ "entityType": "indexes",
+ "table": "provider"
+ },
+ {
+ "columns": [
+ {
+ "value": "workspace_id",
+ "isExpression": false
+ },
+ {
+ "value": "account_id",
+ "isExpression": false
+ }
+ ],
+ "isUnique": true,
+ "using": null,
+ "algorithm": null,
+ "lock": null,
+ "nameExplicit": true,
+ "name": "user_account_id",
+ "entityType": "indexes",
+ "table": "user"
+ },
+ {
+ "columns": [
+ {
+ "value": "workspace_id",
+ "isExpression": false
+ },
+ {
+ "value": "email",
+ "isExpression": false
+ }
+ ],
+ "isUnique": true,
+ "using": null,
+ "algorithm": null,
+ "lock": null,
+ "nameExplicit": true,
+ "name": "user_email",
+ "entityType": "indexes",
+ "table": "user"
+ },
+ {
+ "columns": [
+ {
+ "value": "account_id",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "using": null,
+ "algorithm": null,
+ "lock": null,
+ "nameExplicit": true,
+ "name": "global_account_id",
+ "entityType": "indexes",
+ "table": "user"
+ },
+ {
+ "columns": [
+ {
+ "value": "email",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "using": null,
+ "algorithm": null,
+ "lock": null,
+ "nameExplicit": true,
+ "name": "global_email",
+ "entityType": "indexes",
+ "table": "user"
+ },
+ {
+ "columns": [
+ {
+ "value": "slug",
+ "isExpression": false
+ }
+ ],
+ "isUnique": true,
+ "using": null,
+ "algorithm": null,
+ "lock": null,
+ "nameExplicit": true,
+ "name": "slug",
+ "entityType": "indexes",
+ "table": "workspace"
+ }
+ ],
+ "renames": []
+}
diff --git a/packages/console/core/package.json b/packages/console/core/package.json
index 986103ece3..c656037711 100644
--- a/packages/console/core/package.json
+++ b/packages/console/core/package.json
@@ -1,7 +1,7 @@
{
"$schema": "https://json.schemastore.org/package.json",
"name": "@opencode-ai/console-core",
- "version": "1.14.48",
+ "version": "1.15.3",
"private": true,
"type": "module",
"license": "MIT",
diff --git a/packages/console/core/src/model.ts b/packages/console/core/src/model.ts
index dc3febe055..b0851c49fb 100644
--- a/packages/console/core/src/model.ts
+++ b/packages/console/core/src/model.ts
@@ -36,6 +36,7 @@ export namespace ZenData {
model: z.string(),
priority: z.number().optional(),
tpmLimit: z.number().optional(),
+ tpsGoal: z.number().optional(),
weight: z.number().optional(),
disabled: z.boolean().optional(),
storeModel: z.string().optional(),
diff --git a/packages/console/core/src/schema/ip.sql.ts b/packages/console/core/src/schema/ip.sql.ts
index 94087abe52..a80fa474ca 100644
--- a/packages/console/core/src/schema/ip.sql.ts
+++ b/packages/console/core/src/schema/ip.sql.ts
@@ -40,3 +40,24 @@ export const ModelTpmRateLimitTable = mysqlTable(
},
(table) => [primaryKey({ columns: [table.id, table.interval] })],
)
+
+export const ModelTpsRateLimitTable = mysqlTable(
+ "model_tps_rate_limit",
+ {
+ id: varchar("id", { length: 255 }).notNull(),
+ interval: bigint("interval", { mode: "number" }).notNull(),
+ qualify: int("qualify").notNull(),
+ unqualify: int("unqualify").notNull(),
+ },
+ (table) => [primaryKey({ columns: [table.id, table.interval] })],
+)
+
+export const ModelStickyProviderTable = mysqlTable(
+ "model_sticky_provider",
+ {
+ id: varchar("id", { length: 255 }).notNull(),
+ ...timestamps,
+ providerId: varchar("provider_id", { length: 255 }).notNull(),
+ },
+ (table) => [primaryKey({ columns: [table.id] })],
+)
diff --git a/packages/console/core/sst-env.d.ts b/packages/console/core/sst-env.d.ts
index 9680a53aab..088db5be2c 100644
--- a/packages/console/core/sst-env.d.ts
+++ b/packages/console/core/sst-env.d.ts
@@ -298,6 +298,7 @@ declare module "sst" {
"EnterpriseStorage": cloudflare.R2Bucket
"GatewayKv": cloudflare.KVNamespace
"LogProcessor": cloudflare.Service
+ "Stat": cloudflare.Service
"ZenData": cloudflare.R2Bucket
"ZenDataNew": cloudflare.R2Bucket
}
diff --git a/packages/console/function/package.json b/packages/console/function/package.json
index 41487f845a..faede48e70 100644
--- a/packages/console/function/package.json
+++ b/packages/console/function/package.json
@@ -1,6 +1,6 @@
{
"name": "@opencode-ai/console-function",
- "version": "1.14.48",
+ "version": "1.15.3",
"$schema": "https://json.schemastore.org/package.json",
"private": true,
"type": "module",
@@ -20,12 +20,10 @@
"@ai-sdk/anthropic": "3.0.64",
"@ai-sdk/openai": "3.0.48",
"@ai-sdk/openai-compatible": "2.0.37",
- "@hono/zod-validator": "catalog:",
"@opencode-ai/console-core": "workspace:*",
"@opencode-ai/console-resource": "workspace:*",
"@openauthjs/openauth": "0.0.0-20250322224806",
"ai": "catalog:",
- "hono": "catalog:",
"zod": "catalog:"
}
}
diff --git a/packages/console/function/src/stat.ts b/packages/console/function/src/stat.ts
new file mode 100644
index 0000000000..957adf491a
--- /dev/null
+++ b/packages/console/function/src/stat.ts
@@ -0,0 +1,43 @@
+import { and, Database, inArray } from "@opencode-ai/console-core/drizzle/index.js"
+import { ModelTpsRateLimitTable } from "@opencode-ai/console-core/schema/ip.sql.js"
+
+type Result = Record
+
+export default {
+ async fetch(request: Request) {
+ if (request.method !== "POST") return new Response("Method Not Allowed", { status: 405 })
+
+ const body = (await request.json()) as { ids: string[] }
+ const ids = body.ids
+ if (ids.length === 0) return Response.json({} satisfies Result)
+
+ const toInterval = (date: Date) =>
+ parseInt(
+ date
+ .toISOString()
+ .replace(/[^0-9]/g, "")
+ .substring(0, 12),
+ )
+ const now = Date.now()
+ const intervals = Array.from({ length: 30 }, (_, i) => toInterval(new Date(now - i * 60 * 1000)))
+
+ const rows = await Database.use((tx) =>
+ tx
+ .select()
+ .from(ModelTpsRateLimitTable)
+ .where(and(inArray(ModelTpsRateLimitTable.id, ids), inArray(ModelTpsRateLimitTable.interval, intervals))),
+ )
+
+ const rowsByKey = new Map(rows.map((row) => [`${row.id}:${row.interval}`, row]))
+ const result: Result = Object.fromEntries(
+ ids.map((id) => [
+ id,
+ intervals.map((interval) => {
+ const row = rowsByKey.get(`${id}:${interval}`)
+ return { interval, qualify: row?.qualify ?? 0, unqualify: row?.unqualify ?? 0 }
+ }),
+ ]),
+ )
+ return Response.json(result)
+ },
+}
diff --git a/packages/console/function/sst-env.d.ts b/packages/console/function/sst-env.d.ts
index 9680a53aab..088db5be2c 100644
--- a/packages/console/function/sst-env.d.ts
+++ b/packages/console/function/sst-env.d.ts
@@ -298,6 +298,7 @@ declare module "sst" {
"EnterpriseStorage": cloudflare.R2Bucket
"GatewayKv": cloudflare.KVNamespace
"LogProcessor": cloudflare.Service
+ "Stat": cloudflare.Service
"ZenData": cloudflare.R2Bucket
"ZenDataNew": cloudflare.R2Bucket
}
diff --git a/packages/console/mail/package.json b/packages/console/mail/package.json
index 6c101f051e..b60eb4f8ea 100644
--- a/packages/console/mail/package.json
+++ b/packages/console/mail/package.json
@@ -1,6 +1,6 @@
{
"name": "@opencode-ai/console-mail",
- "version": "1.14.48",
+ "version": "1.15.3",
"dependencies": {
"@jsx-email/all": "2.2.3",
"@jsx-email/cli": "1.4.3",
diff --git a/packages/console/resource/sst-env.d.ts b/packages/console/resource/sst-env.d.ts
index 9680a53aab..088db5be2c 100644
--- a/packages/console/resource/sst-env.d.ts
+++ b/packages/console/resource/sst-env.d.ts
@@ -298,6 +298,7 @@ declare module "sst" {
"EnterpriseStorage": cloudflare.R2Bucket
"GatewayKv": cloudflare.KVNamespace
"LogProcessor": cloudflare.Service
+ "Stat": cloudflare.Service
"ZenData": cloudflare.R2Bucket
"ZenDataNew": cloudflare.R2Bucket
}
diff --git a/packages/core/package.json b/packages/core/package.json
index e2ffa31d8d..edf3ce8ba3 100644
--- a/packages/core/package.json
+++ b/packages/core/package.json
@@ -1,6 +1,6 @@
{
"$schema": "https://json.schemastore.org/package.json",
- "version": "1.14.48",
+ "version": "1.15.3",
"name": "@opencode-ai/core",
"type": "module",
"license": "MIT",
@@ -26,6 +26,27 @@
"@types/semver": "catalog:"
},
"dependencies": {
+ "@ai-sdk/alibaba": "1.0.17",
+ "@ai-sdk/amazon-bedrock": "4.0.96",
+ "@ai-sdk/anthropic": "3.0.71",
+ "@ai-sdk/azure": "3.0.49",
+ "@ai-sdk/cerebras": "2.0.41",
+ "@ai-sdk/cohere": "3.0.27",
+ "@ai-sdk/deepinfra": "2.0.41",
+ "@ai-sdk/gateway": "3.0.104",
+ "@ai-sdk/google": "3.0.63",
+ "@ai-sdk/google-vertex": "4.0.112",
+ "@ai-sdk/groq": "3.0.31",
+ "@ai-sdk/mistral": "3.0.27",
+ "@ai-sdk/openai": "3.0.53",
+ "@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",
+ "@ai-sdk/togetherai": "2.0.41",
+ "@ai-sdk/vercel": "2.0.39",
+ "@ai-sdk/xai": "3.0.82",
+ "@aws-sdk/credential-providers": "3.993.0",
"@effect/opentelemetry": "catalog:",
"@effect/platform-node": "catalog:",
"@npmcli/arborist": "9.4.0",
@@ -34,13 +55,19 @@
"@opentelemetry/context-async-hooks": "2.6.1",
"@opentelemetry/exporter-trace-otlp-http": "0.214.0",
"@opentelemetry/sdk-trace-base": "2.6.1",
- "effect": "catalog:",
+ "@openrouter/ai-sdk-provider": "2.8.1",
+ "ai-gateway-provider": "3.1.2",
"cross-spawn": "catalog:",
+ "effect": "catalog:",
+ "gitlab-ai-provider": "6.6.0",
"glob": "13.0.5",
+ "google-auth-library": "10.5.0",
+ "immer": "11.1.4",
"mime-types": "3.0.2",
"minimatch": "10.2.5",
"npm-package-arg": "13.0.2",
"semver": "^7.6.3",
+ "venice-ai-sdk-provider": "2.0.1",
"xdg-basedir": "5.1.0",
"zod": "catalog:"
},
diff --git a/packages/core/src/aisdk.ts b/packages/core/src/aisdk.ts
new file mode 100644
index 0000000000..5fa2294309
--- /dev/null
+++ b/packages/core/src/aisdk.ts
@@ -0,0 +1,172 @@
+export * as AISDK from "./aisdk"
+
+import type { LanguageModelV3 } from "@ai-sdk/provider"
+import { Cause, Context, Effect, Layer, Schema } from "effect"
+import { ModelV2 } from "./model"
+import { PluginV2 } from "./plugin"
+import { ProviderV2 } from "./provider"
+
+type SDK = any
+
+function wrapSSE(res: Response, ms: number, ctl: AbortController) {
+ if (typeof ms !== "number" || ms <= 0) return res
+ if (!res.body) return res
+ if (!res.headers.get("content-type")?.includes("text/event-stream")) return res
+
+ const reader = res.body.getReader()
+ const body = new ReadableStream({
+ async pull(ctrl) {
+ const part = await new Promise>>((resolve, reject) => {
+ const id = setTimeout(() => {
+ const err = new Error("SSE read timed out")
+ ctl.abort(err)
+ void reader.cancel(err)
+ reject(err)
+ }, ms)
+
+ reader.read().then(
+ (part) => {
+ clearTimeout(id)
+ resolve(part)
+ },
+ (err) => {
+ clearTimeout(id)
+ reject(err)
+ },
+ )
+ })
+
+ if (part.done) {
+ ctrl.close()
+ return
+ }
+
+ ctrl.enqueue(part.value)
+ },
+ async cancel(reason) {
+ ctl.abort(reason)
+ await reader.cancel(reason)
+ },
+ })
+
+ return new Response(body, {
+ headers: new Headers(res.headers),
+ status: res.status,
+ statusText: res.statusText,
+ })
+}
+
+function prepareOptions(model: ModelV2.Info, pkg: string) {
+ const options: Record = { name: model.providerID, ...model.options.aisdk.provider }
+ if (model.endpoint.type === "aisdk" && model.endpoint.url) options.baseURL = model.endpoint.url
+
+ const customFetch = options.fetch
+ const chunkTimeout = options.chunkTimeout
+ delete options.chunkTimeout
+ options.fetch = async (input: Parameters[0], init?: RequestInit) => {
+ const opts = { ...(init ?? {}) }
+ const signals = [
+ opts.signal,
+ typeof chunkTimeout === "number" && chunkTimeout > 0 ? new AbortController() : undefined,
+ options.timeout !== undefined && options.timeout !== null && options.timeout !== false
+ ? AbortSignal.timeout(options.timeout)
+ : undefined,
+ ].filter((item): item is AbortSignal | AbortController => Boolean(item))
+ const chunkAbortCtl = signals.find((item): item is AbortController => item instanceof AbortController)
+ const abortSignals = signals.map((item) => (item instanceof AbortController ? item.signal : item))
+ if (abortSignals.length === 1) opts.signal = abortSignals[0]
+ if (abortSignals.length > 1) opts.signal = AbortSignal.any(abortSignals)
+
+ if ((pkg === "@ai-sdk/openai" || pkg === "@ai-sdk/azure") && opts.body && opts.method === "POST") {
+ const body = JSON.parse(opts.body as string)
+ if (body.store !== true && Array.isArray(body.input)) {
+ for (const item of body.input) {
+ if ("id" in item) delete item.id
+ }
+ opts.body = JSON.stringify(body)
+ }
+ }
+
+ const res = await (typeof customFetch === "function" ? customFetch : fetch)(input, {
+ ...opts,
+ timeout: false,
+ })
+ if (!chunkAbortCtl || typeof chunkTimeout !== "number") return res
+ return wrapSSE(res, chunkTimeout, chunkAbortCtl)
+ }
+
+ return options
+}
+
+export class InitError extends Schema.TaggedErrorClass()("AISDK.InitError", {
+ providerID: ProviderV2.ID,
+ cause: Schema.Defect,
+}) {}
+
+function initError(providerID: ProviderV2.ID) {
+ return Effect.catchCause((cause) => Effect.fail(new InitError({ providerID, cause: Cause.squash(cause) })))
+}
+
+export interface Interface {
+ readonly language: (model: ModelV2.Info) => Effect.Effect
+}
+
+export class Service extends Context.Service()("@opencode/v2/AISDK") {}
+
+export const layer = Layer.effect(
+ Service,
+ Effect.gen(function* () {
+ const plugin = yield* PluginV2.Service
+ const languages = new Map()
+ const sdks = new Map()
+
+ return Service.of({
+ language: Effect.fn("AISDK.language")(function* (model) {
+ const key = `${model.providerID}/${model.id}/${model.options.variant ?? "default"}`
+ const existing = languages.get(key)
+ if (existing) return existing
+ if (model.endpoint.type !== "aisdk")
+ return yield* new InitError({
+ providerID: model.providerID,
+ cause: new Error(`Unsupported endpoint ${model.endpoint.type}`),
+ })
+
+ const options = prepareOptions(model, model.endpoint.package)
+ const sdkKey = JSON.stringify({
+ providerID: model.providerID,
+ endpoint: model.endpoint,
+ options,
+ })
+ const sdk =
+ sdks.get(sdkKey) ??
+ (yield* plugin
+ .trigger("aisdk.sdk", { model, package: model.endpoint.package, options }, {})
+ .pipe(initError(model.providerID))).sdk
+ if (!sdk)
+ return yield* new InitError({
+ providerID: model.providerID,
+ cause: new Error("No AISDK provider plugin returned an SDK"),
+ })
+ sdks.set(sdkKey, sdk)
+ const result = yield* plugin
+ .trigger(
+ "aisdk.language",
+ {
+ model,
+ sdk,
+ options,
+ },
+ {},
+ )
+ .pipe(initError(model.providerID))
+ const language = yield* Effect.sync(() => result.language ?? sdk.languageModel(model.apiID)).pipe(
+ initError(model.providerID),
+ )
+ languages.set(key, language)
+ return language
+ }),
+ })
+ }),
+)
+
+export const defaultLayer = layer.pipe(Layer.provide(PluginV2.defaultLayer))
diff --git a/packages/opencode/src/v2/auth.ts b/packages/core/src/auth.ts
similarity index 86%
rename from packages/opencode/src/v2/auth.ts
rename to packages/core/src/auth.ts
index 0ac6223a66..843c9504b4 100644
--- a/packages/opencode/src/v2/auth.ts
+++ b/packages/core/src/auth.ts
@@ -1,9 +1,9 @@
import path from "path"
import { Effect, Layer, Option, Schema, Context, SynchronizedRef } from "effect"
-import { Identifier } from "@opencode-ai/core/util/identifier"
-import { NonNegativeInt, withStatics } from "@opencode-ai/core/schema"
-import { Global } from "@opencode-ai/core/global"
-import { AppFileSystem } from "@opencode-ai/core/filesystem"
+import { Identifier } from "./util/identifier"
+import { NonNegativeInt, withStatics } from "./schema"
+import { Global } from "./global"
+import { AppFileSystem } from "./filesystem"
export const OAUTH_DUMMY_KEY = "opencode-oauth-dummy-key"
@@ -106,27 +106,45 @@ export const layer = Layer.effect(
const fsys = yield* AppFileSystem.Service
const global = yield* Global.Service
const file = path.join(global.data, "auth-v2.json")
+ const legacyFile = path.join(global.data, "auth.json")
- const load: () => Effect.Effect = Effect.fnUntraced(function* () {
- if (process.env.OPENCODE_AUTH_CONTENT) {
- try {
- return JSON.parse(process.env.OPENCODE_AUTH_CONTENT)
- } catch {}
- }
-
- const raw = yield* fsys.readJson(file).pipe(Effect.orElseSucceed(() => null))
-
- if (!raw || typeof raw !== "object") return { version: 2, accounts: {}, active: {} }
-
- if ("version" in raw && raw.version === 2) return raw as Writable
-
- const migrated = migrate(raw as Record)
+ const writeMigrated = Effect.fnUntraced(function* (raw: Record) {
+ const migrated = migrate(raw)
yield* fsys
.writeJson(file, migrated, 0o600)
.pipe(Effect.mapError((cause) => new AuthFileWriteError({ operation: "migrate", cause })))
return migrated
})
+ const parseAuthContent = () => {
+ try {
+ return JSON.parse(process.env.OPENCODE_AUTH_CONTENT ?? "")
+ } catch {}
+ }
+
+ const load: () => Effect.Effect = Effect.fnUntraced(function* () {
+ if (process.env.OPENCODE_AUTH_CONTENT) {
+ const raw = parseAuthContent()
+ if (raw && typeof raw === "object") {
+ if ("version" in raw && raw.version === 2) return raw as Writable
+ return yield* writeMigrated(raw as Record)
+ }
+ return { version: 2, accounts: {}, active: {} }
+ }
+
+ const legacy = yield* fsys.readJson(legacyFile).pipe(Effect.orElseSucceed(() => null))
+ if (legacy && typeof legacy === "object") return yield* writeMigrated(legacy as Record)
+
+ const raw = yield* fsys.readJson(file).pipe(Effect.orElseSucceed(() => null))
+
+ if (raw && typeof raw === "object") {
+ if ("version" in raw && raw.version === 2) return raw as Writable
+ return yield* writeMigrated(raw as Record)
+ }
+
+ return { version: 2, accounts: {}, active: {} }
+ })
+
const write = (data: Writable) =>
fsys
.writeJson(file, data, 0o600)
diff --git a/packages/core/src/catalog.ts b/packages/core/src/catalog.ts
new file mode 100644
index 0000000000..d27f17bfb8
--- /dev/null
+++ b/packages/core/src/catalog.ts
@@ -0,0 +1,269 @@
+export * as Catalog from "./catalog"
+
+import { Context, Effect, HashMap, Layer, Option, Order, pipe, Schema, Array } from "effect"
+import { produce, type Draft } from "immer"
+import { ModelV2 } from "./model"
+import { PluginV2 } from "./plugin"
+import { ProviderV2 } from "./provider"
+import { Location } from "./location"
+import { EventV2 } from "./event"
+
+type ProviderRecord = {
+ provider: ProviderV2.Info
+ models: HashMap.HashMap
+}
+
+export class ProviderNotFoundError extends Schema.TaggedErrorClass()(
+ "CatalogV2.ProviderNotFound",
+ {
+ providerID: ProviderV2.ID,
+ },
+) {}
+
+export class ModelNotFoundError extends Schema.TaggedErrorClass()("CatalogV2.ModelNotFound", {
+ providerID: ProviderV2.ID,
+ modelID: ModelV2.ID,
+}) {}
+
+export const Event = {
+ ModelUpdated: EventV2.define({
+ type: "catalog.model.updated",
+ schema: {
+ model: ModelV2.Info,
+ },
+ }),
+}
+
+export interface Interface {
+ readonly provider: {
+ readonly get: (providerID: ProviderV2.ID) => Effect.Effect
+ readonly update: (providerID: ProviderV2.ID, fn: (provider: Draft) => void) => Effect.Effect
+ readonly all: () => Effect.Effect
+ readonly available: () => Effect.Effect
+ }
+ readonly model: {
+ readonly get: (
+ providerID: ProviderV2.ID,
+ modelID: ModelV2.ID,
+ ) => Effect.Effect
+ readonly update: (
+ providerID: ProviderV2.ID,
+ modelID: ModelV2.ID,
+ fn: (model: Draft) => void,
+ ) => Effect.Effect
+ readonly all: () => Effect.Effect
+ readonly available: () => Effect.Effect
+ readonly default: () => Effect.Effect>
+ readonly setDefault: (
+ providerID: ProviderV2.ID,
+ modelID: ModelV2.ID,
+ ) => Effect.Effect
+ readonly small: (providerID: ProviderV2.ID) => Effect.Effect>
+ }
+}
+
+export class Service extends Context.Service()("@opencode/v2/Catalog") {}
+
+export const layer = Layer.effect(
+ Service,
+ Effect.gen(function* () {
+ yield* Location.Service
+ let records = HashMap.empty()
+ let defaultModel: { providerID: ProviderV2.ID; modelID: ModelV2.ID } | undefined
+ const plugin = yield* PluginV2.Service
+ const events = yield* EventV2.Service
+
+ const resolve = (model: ModelV2.Info) => {
+ const provider = Option.getOrThrow(HashMap.get(records, model.providerID)).provider
+ const endpoint =
+ model.endpoint.type === "unknown"
+ ? provider.endpoint
+ : model.endpoint.type === "aisdk" && provider.endpoint.type === "aisdk" && !model.endpoint.url
+ ? { ...model.endpoint, url: provider.endpoint.url }
+ : model.endpoint
+ const options = {
+ headers: {
+ ...provider.options.headers,
+ ...model.options.headers,
+ },
+ body: {
+ ...provider.options.body,
+ ...model.options.body,
+ },
+ aisdk: {
+ provider: {
+ ...provider.options.aisdk.provider,
+ ...model.options.aisdk.provider,
+ },
+ request: model.options.aisdk.request,
+ },
+ variant: model.options.variant,
+ }
+ return new ModelV2.Info({
+ ...model,
+ endpoint,
+ options,
+ })
+ }
+
+ function* getRecord(providerID: ProviderV2.ID) {
+ const match = HashMap.get(records, providerID)
+ if (!match.valueOrUndefined) return yield* new ProviderNotFoundError({ providerID })
+ return match.value
+ }
+
+ const result: Interface = {
+ provider: {
+ get: Effect.fn("CatalogV2.provider.get")(function* (providerID) {
+ const record = yield* getRecord(providerID)
+ return record.provider
+ }),
+
+ update: Effect.fnUntraced(function* (providerID, fn) {
+ const current = Option.getOrUndefined(HashMap.get(records, providerID))
+ const provider = produce(current?.provider ?? ProviderV2.Info.empty(providerID), (draft) => {
+ fn(draft)
+ if (draft.endpoint.type === "aisdk" && typeof draft.options.aisdk.provider.baseURL === "string") {
+ draft.endpoint.url = draft.options.aisdk.provider.baseURL
+ delete draft.options.aisdk.provider.baseURL
+ }
+ })
+ const updated = yield* plugin.trigger("provider.update", {}, { provider, cancel: false })
+ records = HashMap.set(records, providerID, {
+ provider: updated.provider,
+ models: current?.models ?? HashMap.empty(),
+ })
+ }),
+
+ all: Effect.fn("CatalogV2.provider.all")(function* () {
+ return globalThis.Array.from(HashMap.values(records)).map((record) => record.provider)
+ }),
+
+ available: Effect.fn("CatalogV2.provider.available")(function* () {
+ return globalThis.Array.from(HashMap.values(records))
+ .map((record) => record.provider)
+ .filter((provider) => provider.enabled)
+ }),
+ },
+
+ model: {
+ get: Effect.fn("CatalogV2.model.get")(function* (providerID, modelID) {
+ const record = yield* getRecord(providerID)
+ const model = Option.getOrUndefined(HashMap.get(record.models, modelID))
+ if (!model) return yield* new ModelNotFoundError({ providerID, modelID })
+ return resolve(model)
+ }),
+
+ update: Effect.fnUntraced(function* (providerID, modelID, fn) {
+ const record = yield* getRecord(providerID)
+ const model = produce(
+ HashMap.get(record.models, modelID).pipe(Option.getOrElse(() => ModelV2.Info.empty(providerID, modelID))),
+ (draft) => {
+ fn(draft)
+ if (draft.endpoint.type === "aisdk" && typeof draft.options.aisdk.provider.baseURL === "string") {
+ draft.endpoint.url = draft.options.aisdk.provider.baseURL
+ delete draft.options.aisdk.provider.baseURL
+ }
+ },
+ )
+ const updated = yield* plugin.trigger("model.update", {}, { model, cancel: false })
+ if (updated.cancel) return
+ const next = new ModelV2.Info({ ...updated.model, id: modelID, providerID })
+ records = HashMap.set(records, providerID, {
+ provider: record.provider,
+ models: HashMap.set(record.models, modelID, next),
+ })
+ yield* events.publish(Event.ModelUpdated, { model: resolve(next) })
+ return
+ }),
+
+ all: Effect.fn("CatalogV2.model.all")(function* () {
+ return pipe(
+ records,
+ HashMap.toValues,
+ Array.flatMap((record) => HashMap.toValues(record.models)),
+ Array.map(resolve),
+ Array.sortWith((item) => item.time.released.epochMilliseconds, Order.flip(Order.Number)),
+ )
+ }),
+
+ available: Effect.fn("CatalogV2.model.available")(function* () {
+ return (yield* result.model.all()).filter((model) => {
+ const record = Option.getOrUndefined(HashMap.get(records, model.providerID))
+ return record?.provider.enabled !== false && model.enabled
+ })
+ }),
+
+ default: Effect.fn("CatalogV2.model.default")(function* () {
+ if (defaultModel) {
+ const model = yield* result.model.get(defaultModel.providerID, defaultModel.modelID).pipe(Effect.option)
+ if (Option.isSome(model) && model.value.enabled) return model
+ }
+
+ return pipe(
+ yield* result.model.available(),
+ Array.sortWith((item) => item.time.released.epochMilliseconds, Order.flip(Order.Number)),
+ Array.head,
+ )
+ }),
+
+ setDefault: Effect.fn("CatalogV2.model.setDefault")(function* (providerID, modelID) {
+ yield* result.model.get(providerID, modelID)
+ defaultModel = { providerID, modelID }
+ }),
+
+ small: Effect.fn("CatalogV2.model.small")(function* (providerID) {
+ const record = Option.getOrUndefined(HashMap.get(records, providerID))
+ if (!record) return Option.none()
+
+ if (providerID === ProviderV2.ID.opencode) {
+ const gpt5Nano = Option.getOrUndefined(HashMap.get(record.models, ModelV2.ID.make("gpt-5-nano")))
+ if (gpt5Nano?.enabled && gpt5Nano.status === "active") return Option.some(resolve(gpt5Nano))
+ }
+
+ const candidates = pipe(
+ HashMap.toValues(record.models),
+ Array.filter(
+ (model) =>
+ model.providerID === providerID &&
+ model.enabled &&
+ model.status === "active" &&
+ model.capabilities.input.some((item) => item.startsWith("text")) &&
+ model.capabilities.output.some((item) => item.startsWith("text")),
+ ),
+ Array.map((model) => ({
+ model,
+ cost: model.cost[0] ? model.cost[0].input + model.cost[0].output : 999,
+ age: (Date.now() - model.time.released.epochMilliseconds) / (1000 * 60 * 60 * 24 * 30),
+ small: SMALL_MODEL_RE.test(`${model.id} ${model.family ?? ""} ${model.name}`.toLowerCase()),
+ })),
+ Array.filter((item) => item.cost > 0 && item.age <= 18),
+ )
+
+ const pick = (items: typeof candidates) => {
+ const maxCost = Math.max(...items.map((item) => item.cost), 0.01)
+ const maxAge = Math.max(...items.map((item) => item.age), 0.01)
+ return pipe(
+ items,
+ Array.sortWith((item) => (item.cost / maxCost) * 0.8 + (item.age / maxAge) * 0.2, Order.Number),
+ Array.map((item) => resolve(item.model)),
+ Array.head,
+ )
+ }
+
+ return pipe(
+ candidates,
+ Array.filter((item) => item.small),
+ (items) => (items.length > 0 ? pick(items) : pick(candidates)),
+ )
+ }),
+ },
+ }
+
+ return Service.of(result)
+ }),
+)
+
+const SMALL_MODEL_RE = /\b(nano|flash|lite|mini|haiku|small|fast)\b/
+
+export const defaultLayer = layer.pipe(Layer.provideMerge(EventV2.defaultLayer), Layer.provide(PluginV2.defaultLayer))
diff --git a/packages/core/src/effect-zod.ts b/packages/core/src/effect-zod.ts
deleted file mode 100644
index 42d89ec7d5..0000000000
--- a/packages/core/src/effect-zod.ts
+++ /dev/null
@@ -1,370 +0,0 @@
-import { Effect, Option, Schema, SchemaAST } from "effect"
-import z from "zod"
-
-/**
- * Annotation key for providing a hand-crafted Zod schema that the walker
- * should use instead of re-deriving from the AST. Attach it via
- * `Schema.String.annotate({ [ZodOverride]: z.string().startsWith("per") })`.
- */
-export const ZodOverride: unique symbol = Symbol.for("effect-zod/override")
-
-// AST nodes are immutable and frequently shared across schemas (e.g. a single
-// Schema.Class embedded in multiple parents). Memoizing by node identity
-// avoids rebuilding equivalent Zod subtrees and keeps derived children stable
-// by reference across callers.
-const walkCache = new WeakMap()
-
-// Shared empty ParseOptions for the rare callers that need one — avoids
-// allocating a fresh object per parse inside refinements and transforms.
-const EMPTY_PARSE_OPTIONS = {} as SchemaAST.ParseOptions
-
-export function zod(schema: S): z.ZodType> {
- return walk(schema.ast) as z.ZodType>
-}
-
-/**
- * Derive a Zod value from an Effect Schema (or a Schema-backed export with a
- * `.zod` static) and narrow the result to `z.ZodObject` so `.shape`,
- * `.omit`, `.extend`, and friends are accessible.
- *
- * The `zod()` walker returns `z.ZodType` because not every AST node decodes
- * to an object; this helper keeps the "I started from a `Schema.Struct`" cast
- * in one place instead of sprinkling `as unknown as z.ZodObject` across
- * call sites.
- *
- * The return is intentionally loose — carrying Schema field types through the
- * mapped `.omit()` / `.extend()` surface triggers brand-intersection
- * explosions for branded primitives (`string & Brand<"SessionID">` extends
- * `object` via the brand and gets walked into the prototype by `DeepPartial`,
- * mapped-schema helpers, and zod's inference through `z.ZodType`
- * wrappers also can't reconstruct `T` cleanly. Consumers that care about the
- * post-`.omit()` shape should cast `c.req.valid(...)` to the expected type.
- */
-export function zodObject(schema: S): z.ZodObject {
- const derived: z.ZodTypeAny = "zod" in schema && isZodType(schema.zod) ? schema.zod : walk(schema.ast)
- return derived as unknown as z.ZodObject
-}
-
-function isZodType(value: unknown): value is z.ZodTypeAny {
- return typeof value === "object" && value !== null && "_zod" in value
-}
-
-/**
- * Emit a JSON Schema for a tool/route parameter schema — derives the zod form
- * via the walker so Effect Schema inputs flow through the same zod-openapi
- * pipeline the LLM/SDK layer already depends on. `io: "input"` mirrors what
- * `session/prompt.ts` has always passed to `ai`'s `jsonSchema()` helper.
- */
-export function toJsonSchema(schema: S) {
- return z.toJSONSchema(zod(schema), { io: "input" })
-}
-
-function walk(ast: SchemaAST.AST): z.ZodTypeAny {
- const cached = walkCache.get(ast)
- if (cached) return cached
- const result = walkUncached(ast)
- walkCache.set(ast, result)
- return result
-}
-
-function walkUncached(ast: SchemaAST.AST): z.ZodTypeAny {
- const override = (ast.annotations as any)?.[ZodOverride] as z.ZodTypeAny | undefined
- // `description` annotations layer on top of an override so callers can
- // reuse a shared override schema (e.g. `SessionID`) and still add a
- // per-field description on the outer wrapper.
- const base = override ?? bodyWithChecks(ast)
- const desc = SchemaAST.resolveDescription(ast)
- const ref = SchemaAST.resolveIdentifier(ast)
- const described = desc ? base.describe(desc) : base
- return ref ? described.meta({ ref }) : described
-}
-
-function bodyWithChecks(ast: SchemaAST.AST): z.ZodTypeAny {
- // Schema.Class wraps its fields in a Declaration AST plus an encoding that
- // constructs the class instance. For the Zod derivation we want the plain
- // field shape (the decoded/consumer view), not the class instance — so
- // Declarations fall through to body(), not encoded(). User-level
- // Schema.decodeTo / Schema.transform attach encoding to non-Declaration
- // nodes, where we do apply the transform.
- //
- // Schema.withDecodingDefault also attaches encoding, but we want `.default(v)`
- // on the inner Zod rather than a transform wrapper — so optional ASTs whose
- // encoding resolves a default from Option.none() route through body()/opt().
- const hasEncoding = ast.encoding?.length && (ast._tag !== "Declaration" || ast.typeParameters.length === 0)
- const hasTransform = hasEncoding && !(SchemaAST.isOptional(ast) && extractDefault(ast) !== undefined)
- const base = hasTransform ? encoded(ast) : body(ast)
- return ast.checks?.length ? applyChecks(base, ast.checks, ast) : base
-}
-
-// Walk the encoded side and apply each link's decode to produce the decoded
-// shape. A node `Target` produced by `from.decodeTo(Target)` carries
-// `Target.encoding = [Link(from, transformation)]`. Chained decodeTo calls
-// nest the encoding via `Link.to` so walking it recursively threads all
-// prior transforms — typical encoding.length is 1.
-function encoded(ast: SchemaAST.AST): z.ZodTypeAny {
- const encoding = ast.encoding!
- return encoding.reduce(
- (acc, link) => acc.transform((v) => decode(link.transformation, v)),
- walk(encoding[0].to),
- )
-}
-
-// Transformations built via pure `SchemaGetter.transform(fn)` (the common
-// decodeTo case) resolve synchronously, so running with no services is safe.
-// Effectful / middleware-based transforms will surface as Effect defects.
-function decode(transformation: SchemaAST.Link["transformation"], value: unknown): unknown {
- const exit = Effect.runSyncExit(
- (transformation.decode as any).run(Option.some(value), EMPTY_PARSE_OPTIONS) as Effect.Effect<
- Option.Option
- >,
- )
- if (exit._tag === "Failure") throw new Error(`effect-zod: transform failed: ${String(exit.cause)}`)
- return Option.getOrElse(exit.value, () => value)
-}
-
-// Flatten FilterGroups and any nested variants into a linear list of Filters.
-// Well-known filters (Schema.isInt, isGreaterThan, isPattern, …) are
-// translated into native Zod methods so their JSON Schema output includes
-// the corresponding constraint (type: integer, exclusiveMinimum, pattern, …).
-// Anything else falls back to a single .superRefine layer — runtime-only,
-// emits no JSON Schema constraint.
-function applyChecks(out: z.ZodTypeAny, checks: SchemaAST.Checks, ast: SchemaAST.AST): z.ZodTypeAny {
- const filters: SchemaAST.Filter[] = []
- const collect = (c: SchemaAST.Check) => {
- if (c._tag === "FilterGroup") c.checks.forEach(collect)
- else filters.push(c)
- }
- checks.forEach(collect)
-
- const unhandled: SchemaAST.Filter[] = []
- const translated = filters.reduce((acc, filter) => {
- const next = translateFilter(acc, filter)
- if (next) return next
- unhandled.push(filter)
- return acc
- }, out)
-
- if (unhandled.length === 0) return translated
-
- return translated.superRefine((value, ctx) => {
- for (const filter of unhandled) {
- const issue = filter.run(value, ast, EMPTY_PARSE_OPTIONS)
- if (!issue) continue
- const message = issueMessage(issue) ?? (filter.annotations as any)?.message ?? "Validation failed"
- ctx.addIssue({ code: "custom", message })
- }
- })
-}
-
-// Translate a well-known Effect Schema filter into a native Zod method call on
-// `out`. Dispatch is keyed on `filter.annotations.meta._tag`, which every
-// built-in check factory (isInt, isGreaterThan, isPattern, …) attaches at
-// construction time. Returns `undefined` for unrecognised filters so the
-// caller can fall back to the generic .superRefine path.
-function translateFilter(out: z.ZodTypeAny, filter: SchemaAST.Filter): z.ZodTypeAny | undefined {
- const meta = (filter.annotations as { meta?: Record } | undefined)?.meta
- if (!meta || typeof meta._tag !== "string") return undefined
- switch (meta._tag) {
- case "isInt":
- return call(out, "int")
- case "isFinite":
- return call(out, "finite")
- case "isGreaterThan":
- return call(out, "gt", meta.exclusiveMinimum)
- case "isGreaterThanOrEqualTo":
- return call(out, "gte", meta.minimum)
- case "isLessThan":
- return call(out, "lt", meta.exclusiveMaximum)
- case "isLessThanOrEqualTo":
- return call(out, "lte", meta.maximum)
- case "isBetween": {
- const lo = meta.exclusiveMinimum ? call(out, "gt", meta.minimum) : call(out, "gte", meta.minimum)
- if (!lo) return undefined
- return meta.exclusiveMaximum ? call(lo, "lt", meta.maximum) : call(lo, "lte", meta.maximum)
- }
- case "isMultipleOf":
- return call(out, "multipleOf", meta.divisor)
- case "isMinLength":
- return call(out, "min", meta.minLength)
- case "isMaxLength":
- return call(out, "max", meta.maxLength)
- case "isLengthBetween": {
- const lo = call(out, "min", meta.minimum)
- if (!lo) return undefined
- return call(lo, "max", meta.maximum)
- }
- case "isPattern":
- return call(out, "regex", meta.regExp)
- case "isStartsWith":
- return call(out, "startsWith", meta.startsWith)
- case "isEndsWith":
- return call(out, "endsWith", meta.endsWith)
- case "isIncludes":
- return call(out, "includes", meta.includes)
- case "isUUID":
- return call(out, "uuid")
- case "isULID":
- return call(out, "ulid")
- case "isBase64":
- return call(out, "base64")
- case "isBase64Url":
- return call(out, "base64url")
- }
- return undefined
-}
-
-// Invoke a named Zod method on `target` if it exists, otherwise return
-// undefined so the caller can fall back. Using this helper instead of a
-// typed cast keeps `translateFilter` free of per-case narrowing noise.
-function call(target: z.ZodTypeAny, method: string, ...args: unknown[]): z.ZodTypeAny | undefined {
- const fn = (target as unknown as Record z.ZodTypeAny) | undefined>)[method]
- return typeof fn === "function" ? fn.apply(target, args) : undefined
-}
-
-function issueMessage(issue: any): string | undefined {
- if (typeof issue?.annotations?.message === "string") return issue.annotations.message
- if (typeof issue?.message === "string") return issue.message
- return undefined
-}
-
-function body(ast: SchemaAST.AST): z.ZodTypeAny {
- if (SchemaAST.isOptional(ast)) return opt(ast)
-
- switch (ast._tag) {
- case "String":
- return z.string()
- case "Number":
- return z.number()
- case "Boolean":
- return z.boolean()
- case "Null":
- return z.null()
- case "Undefined":
- return z.undefined()
- case "Any":
- case "Unknown":
- return z.unknown()
- case "Never":
- return z.never()
- case "Literal":
- return z.literal(ast.literal)
- case "Union":
- return union(ast)
- case "Objects":
- return object(ast)
- case "Arrays":
- return array(ast)
- case "Declaration":
- return decl(ast)
- default:
- return fail(ast)
- }
-}
-
-function opt(ast: SchemaAST.AST): z.ZodTypeAny {
- if (ast._tag !== "Union") return fail(ast)
- const items = ast.types.filter((item) => item._tag !== "Undefined")
- const inner =
- items.length === 1
- ? walk(items[0])
- : items.length > 1
- ? z.union(items.map(walk) as [z.ZodTypeAny, z.ZodTypeAny, ...Array])
- : z.undefined()
- // Schema.withDecodingDefault attaches an encoding `Link` whose transformation
- // decode Getter resolves `Option.none()` to `Option.some(default)`. Invoke
- // it to extract the default and emit `.default(...)` instead of `.optional()`.
- const fallback = extractDefault(ast)
- if (fallback !== undefined) return inner.default(fallback.value)
- return inner.optional()
-}
-
-type DecodeLink = {
- readonly transformation: {
- readonly decode: {
- readonly run: (
- input: Option.Option,
- options: SchemaAST.ParseOptions,
- ) => Effect.Effect, unknown>
- }
- }
-}
-
-function extractDefault(ast: SchemaAST.AST): { value: unknown } | undefined {
- const encoding = (ast as { encoding?: ReadonlyArray }).encoding
- if (!encoding?.length) return undefined
- // Walk the chain of encoding Links in order; the first Getter that produces
- // a value from Option.none wins. withDecodingDefault always puts its
- // defaulting Link adjacent to the optional Union.
- for (const link of encoding) {
- const probe = Effect.runSyncExit(link.transformation.decode.run(Option.none(), {}))
- if (probe._tag !== "Success") continue
- if (Option.isSome(probe.value)) return { value: probe.value.value }
- }
- return undefined
-}
-
-function union(ast: SchemaAST.Union): z.ZodTypeAny {
- // When every member is a string literal, emit z.enum() so that
- // JSON Schema produces { "enum": [...] } instead of { "anyOf": [{ "const": ... }] }.
- if (ast.types.length >= 2 && ast.types.every((t) => t._tag === "Literal" && typeof t.literal === "string")) {
- return z.enum(ast.types.map((t) => (t as SchemaAST.Literal).literal as string) as [string, ...string[]])
- }
-
- const items = ast.types.map(walk)
- if (items.length === 1) return items[0]
- if (items.length < 2) return fail(ast)
-
- const discriminator = ast.annotations?.discriminator
- if (typeof discriminator === "string") {
- return z.discriminatedUnion(discriminator, items as [z.ZodObject, z.ZodObject, ...z.ZodObject[]])
- }
-
- return z.union(items as [z.ZodTypeAny, z.ZodTypeAny, ...Array])
-}
-
-function object(ast: SchemaAST.Objects): z.ZodTypeAny {
- // Pure record: { [k: string]: V }
- if (ast.propertySignatures.length === 0 && ast.indexSignatures.length === 1) {
- const sig = ast.indexSignatures[0]
- if (sig.parameter._tag !== "String") return fail(ast)
- return z.record(z.string(), walk(sig.type))
- }
-
- // Pure object with known fields and no index signatures.
- if (ast.indexSignatures.length === 0) {
- return z.object(Object.fromEntries(ast.propertySignatures.map((sig) => [String(sig.name), walk(sig.type)])))
- }
-
- // Struct with a catchall (StructWithRest): known fields + index signature.
- // Only supports a single string-keyed index signature; multi-signature or
- // symbol/number keys fall through to fail.
- if (ast.indexSignatures.length !== 1) return fail(ast)
- const sig = ast.indexSignatures[0]
- if (sig.parameter._tag !== "String") return fail(ast)
- return z
- .object(Object.fromEntries(ast.propertySignatures.map((p) => [String(p.name), walk(p.type)])))
- .catchall(walk(sig.type))
-}
-
-function array(ast: SchemaAST.Arrays): z.ZodTypeAny {
- // Pure variadic arrays: { elements: [], rest: [item] }
- if (ast.elements.length === 0) {
- if (ast.rest.length !== 1) return fail(ast)
- return z.array(walk(ast.rest[0]))
- }
- // Fixed-length tuples: { elements: [a, b, ...], rest: [] }
- // Tuples with a variadic tail (...rest) are not yet supported.
- if (ast.rest.length > 0) return fail(ast)
- const items = ast.elements.map(walk)
- return z.tuple(items as [z.ZodTypeAny, ...Array])
-}
-
-function decl(ast: SchemaAST.Declaration): z.ZodTypeAny {
- if (ast.typeParameters.length !== 1) return fail(ast)
- return walk(ast.typeParameters[0])
-}
-
-function fail(ast: SchemaAST.AST): never {
- const ref = SchemaAST.resolveIdentifier(ast)
- throw new Error(`unsupported effect schema: ${ref ?? ast._tag}`)
-}
diff --git a/packages/core/src/event.ts b/packages/core/src/event.ts
new file mode 100644
index 0000000000..e01dc5b0d6
--- /dev/null
+++ b/packages/core/src/event.ts
@@ -0,0 +1,157 @@
+import { Context, Effect, Layer, Option, PubSub, Schema, Stream } from "effect"
+import { Location } from "./location"
+import { withStatics } from "./schema"
+import { Identifier } from "./util/identifier"
+
+export const ID = Schema.String.pipe(
+ Schema.brand("Event.ID"),
+ withStatics((schema) => ({ create: () => schema.make("evt_" + Identifier.ascending()) })),
+)
+export type ID = typeof ID.Type
+
+export type Definition = {
+ readonly type: Type
+ readonly version?: number
+ readonly aggregate?: string
+ readonly data: DataSchema
+}
+
+export type Data = Schema.Schema.Type
+
+export type Payload = {
+ readonly id: ID
+ readonly type: D["type"]
+ readonly data: Data
+ readonly version?: number
+ readonly location?: Location.Ref
+ readonly metadata?: Record
+}
+
+export type Sync = (event: Payload) => Effect.Effect
+
+export const registry = new Map()
+
+export function define(input: {
+ readonly type: Type
+ readonly version?: number
+ readonly aggregate?: string
+ readonly schema: Fields
+}): Schema.Schema>>> & Definition> {
+ const Data = Schema.Struct(input.schema)
+ const Payload = Schema.Struct({
+ id: ID,
+ metadata: Schema.optional(Schema.Record(Schema.String, Schema.Unknown)),
+ type: Schema.Literal(input.type),
+ version: Schema.optional(Schema.Number),
+ location: Schema.optional(Location.Ref),
+ data: Data,
+ }).annotate({ identifier: input.type })
+
+ const definition = Object.assign(Payload, {
+ type: input.type,
+ ...(input.version === undefined ? {} : { version: input.version }),
+ ...(input.aggregate === undefined ? {} : { aggregate: input.aggregate }),
+ data: Data,
+ })
+ registry.set(input.type, definition)
+ return definition as Schema.Schema>>> &
+ Definition>
+}
+
+export function definitions() {
+ return registry.values().toArray()
+}
+
+export interface PublishOptions {
+ readonly id?: ID
+ readonly metadata?: Record
+}
+
+export type Unsubscribe = Effect.Effect
+
+export interface Interface {
+ readonly publish: (
+ definition: D,
+ data: Data,
+ options?: PublishOptions,
+ ) => Effect.Effect>
+ readonly publishEvent: (event: Payload) => Effect.Effect>
+ readonly subscribe: (definition: D) => Stream.Stream>
+ readonly all: () => Stream.Stream
+ readonly sync: (handler: Sync) => Effect.Effect
+}
+
+export class Service extends Context.Service()("@opencode/Event") {}
+
+export const layer = Layer.effect(
+ Service,
+ Effect.gen(function* () {
+ const all = yield* PubSub.unbounded()
+ const typed = new Map>()
+ const syncHandlers = new Array()
+
+ const getOrCreate = (definition: Definition) =>
+ Effect.gen(function* () {
+ const existing = typed.get(definition.type)
+ if (existing) return existing
+ const pubsub = yield* PubSub.unbounded()
+ typed.set(definition.type, pubsub)
+ return pubsub
+ })
+
+ yield* Effect.addFinalizer(() =>
+ Effect.gen(function* () {
+ yield* PubSub.shutdown(all)
+ yield* Effect.forEach(typed.values(), PubSub.shutdown, { discard: true })
+ }),
+ )
+
+ function publishEvent(event: Payload) {
+ return Effect.gen(function* () {
+ for (const sync of syncHandlers) {
+ yield* sync(event as Payload)
+ }
+ const pubsub = typed.get(event.type)
+ if (pubsub) yield* PubSub.publish(pubsub, event as Payload)
+ yield* PubSub.publish(all, event as Payload)
+ return event
+ })
+ }
+
+ function publish(definition: D, data: Data, options?: PublishOptions) {
+ return Effect.gen(function* () {
+ const location = Option.getOrUndefined(yield* Effect.serviceOption(Location.Service))
+ const event = {
+ id: options?.id ?? ID.create(),
+ ...(options?.metadata ? { metadata: options.metadata } : {}),
+ type: definition.type,
+ ...(definition.version === undefined ? {} : { version: definition.version }),
+ ...(location ? { location } : {}),
+ data,
+ } as Payload
+ return yield* publishEvent(event)
+ })
+ }
+
+ const subscribe = (definition: D): Stream.Stream> =>
+ Stream.unwrap(getOrCreate(definition).pipe(Effect.map((pubsub) => Stream.fromPubSub(pubsub)))).pipe(
+ Stream.map((event) => event as Payload),
+ )
+
+ const streamAll = (): Stream.Stream => Stream.fromPubSub(all)
+ const sync = (handler: Sync): Effect.Effect =>
+ Effect.sync(() => {
+ syncHandlers.push(handler)
+ return Effect.sync(() => {
+ const index = syncHandlers.indexOf(handler)
+ if (index >= 0) syncHandlers.splice(index, 1)
+ })
+ })
+
+ return Service.of({ publish, publishEvent, subscribe, all: streamAll, sync })
+ }),
+)
+
+export const defaultLayer = layer
+
+export * as EventV2 from "./event"
diff --git a/packages/core/src/flag/flag.ts b/packages/core/src/flag/flag.ts
index 3fe7655759..3ed67bb785 100644
--- a/packages/core/src/flag/flag.ts
+++ b/packages/core/src/flag/flag.ts
@@ -1,41 +1,17 @@
import { Config } from "effect"
-import { InstallationChannel } from "../installation/version"
function truthy(key: string) {
const value = process.env[key]?.toLowerCase()
return value === "true" || value === "1"
}
-function falsy(key: string) {
- const value = process.env[key]?.toLowerCase()
- return value === "false" || value === "0"
-}
-
-// Channels where new experiments default to ON (unstable / internal users).
-// Stable channels (`prod`, `latest`) stay opt-in.
-const UNSTABLE_CHANNELS = new Set(["dev", "beta", "local"])
-function unstableDefault(key: string) {
- return truthy(key) || (!falsy(key) && UNSTABLE_CHANNELS.has(InstallationChannel))
-}
-
-function number(key: string) {
- const value = process.env[key]
- if (!value) return undefined
- const parsed = Number(value)
- return Number.isInteger(parsed) && parsed > 0 ? parsed : undefined
-}
-
const OPENCODE_EXPERIMENTAL = truthy("OPENCODE_EXPERIMENTAL")
-const OPENCODE_DISABLE_CLAUDE_CODE = truthy("OPENCODE_DISABLE_CLAUDE_CODE")
-const OPENCODE_DISABLE_CLAUDE_CODE_SKILLS =
- OPENCODE_DISABLE_CLAUDE_CODE || truthy("OPENCODE_DISABLE_CLAUDE_CODE_SKILLS")
const copy = process.env["OPENCODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT"]
export const Flag = {
OTEL_EXPORTER_OTLP_ENDPOINT: process.env["OTEL_EXPORTER_OTLP_ENDPOINT"],
OTEL_EXPORTER_OTLP_HEADERS: process.env["OTEL_EXPORTER_OTLP_HEADERS"],
- OPENCODE_AUTO_SHARE: truthy("OPENCODE_AUTO_SHARE"),
OPENCODE_AUTO_HEAP_SNAPSHOT: truthy("OPENCODE_AUTO_HEAP_SNAPSHOT"),
OPENCODE_GIT_BASH_PATH: process.env["OPENCODE_GIT_BASH_PATH"],
OPENCODE_CONFIG: process.env["OPENCODE_CONFIG"],
@@ -46,56 +22,28 @@ export const Flag = {
OPENCODE_DISABLE_TERMINAL_TITLE: truthy("OPENCODE_DISABLE_TERMINAL_TITLE"),
OPENCODE_SHOW_TTFD: truthy("OPENCODE_SHOW_TTFD"),
OPENCODE_PERMISSION: process.env["OPENCODE_PERMISSION"],
- OPENCODE_DISABLE_DEFAULT_PLUGINS: truthy("OPENCODE_DISABLE_DEFAULT_PLUGINS"),
- OPENCODE_DISABLE_LSP_DOWNLOAD: truthy("OPENCODE_DISABLE_LSP_DOWNLOAD"),
- OPENCODE_ENABLE_EXPERIMENTAL_MODELS: truthy("OPENCODE_ENABLE_EXPERIMENTAL_MODELS"),
OPENCODE_DISABLE_AUTOCOMPACT: truthy("OPENCODE_DISABLE_AUTOCOMPACT"),
OPENCODE_DISABLE_MODELS_FETCH: truthy("OPENCODE_DISABLE_MODELS_FETCH"),
OPENCODE_DISABLE_MOUSE: truthy("OPENCODE_DISABLE_MOUSE"),
- OPENCODE_DISABLE_CLAUDE_CODE,
- OPENCODE_DISABLE_CLAUDE_CODE_PROMPT: OPENCODE_DISABLE_CLAUDE_CODE || truthy("OPENCODE_DISABLE_CLAUDE_CODE_PROMPT"),
- OPENCODE_DISABLE_CLAUDE_CODE_SKILLS,
- OPENCODE_DISABLE_EXTERNAL_SKILLS: truthy("OPENCODE_DISABLE_EXTERNAL_SKILLS"),
- // Default-on for dev/beta/local; opt-in for stable. Set
- // OPENCODE_EXPERIMENTAL_CUSTOMIZE_SKILL=false to force off, =true to force on.
- OPENCODE_EXPERIMENTAL_CUSTOMIZE_SKILL: unstableDefault("OPENCODE_EXPERIMENTAL_CUSTOMIZE_SKILL"),
OPENCODE_FAKE_VCS: process.env["OPENCODE_FAKE_VCS"],
OPENCODE_SERVER_PASSWORD: process.env["OPENCODE_SERVER_PASSWORD"],
OPENCODE_SERVER_USERNAME: process.env["OPENCODE_SERVER_USERNAME"],
- OPENCODE_ENABLE_QUESTION_TOOL: truthy("OPENCODE_ENABLE_QUESTION_TOOL"),
// Experimental
- OPENCODE_EXPERIMENTAL,
OPENCODE_EXPERIMENTAL_FILEWATCHER: Config.boolean("OPENCODE_EXPERIMENTAL_FILEWATCHER").pipe(
Config.withDefault(false),
),
OPENCODE_EXPERIMENTAL_DISABLE_FILEWATCHER: Config.boolean("OPENCODE_EXPERIMENTAL_DISABLE_FILEWATCHER").pipe(
Config.withDefault(false),
),
- OPENCODE_EXPERIMENTAL_ICON_DISCOVERY: OPENCODE_EXPERIMENTAL || truthy("OPENCODE_EXPERIMENTAL_ICON_DISCOVERY"),
OPENCODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT:
copy === undefined ? process.platform === "win32" : truthy("OPENCODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT"),
- OPENCODE_ENABLE_EXA: truthy("OPENCODE_ENABLE_EXA") || OPENCODE_EXPERIMENTAL || truthy("OPENCODE_EXPERIMENTAL_EXA"),
- OPENCODE_EXPERIMENTAL_BASH_DEFAULT_TIMEOUT_MS: number("OPENCODE_EXPERIMENTAL_BASH_DEFAULT_TIMEOUT_MS"),
- OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX: number("OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX"),
- OPENCODE_EXPERIMENTAL_OXFMT: OPENCODE_EXPERIMENTAL || truthy("OPENCODE_EXPERIMENTAL_OXFMT"),
- OPENCODE_EXPERIMENTAL_LSP_TY: truthy("OPENCODE_EXPERIMENTAL_LSP_TY"),
- OPENCODE_EXPERIMENTAL_LSP_TOOL: OPENCODE_EXPERIMENTAL || truthy("OPENCODE_EXPERIMENTAL_LSP_TOOL"),
- OPENCODE_EXPERIMENTAL_PLAN_MODE: OPENCODE_EXPERIMENTAL || truthy("OPENCODE_EXPERIMENTAL_PLAN_MODE"),
- OPENCODE_EXPERIMENTAL_SCOUT: OPENCODE_EXPERIMENTAL || truthy("OPENCODE_EXPERIMENTAL_SCOUT"),
- OPENCODE_EXPERIMENTAL_MARKDOWN: !falsy("OPENCODE_EXPERIMENTAL_MARKDOWN"),
- OPENCODE_ENABLE_PARALLEL: truthy("OPENCODE_ENABLE_PARALLEL") || truthy("OPENCODE_EXPERIMENTAL_PARALLEL"),
OPENCODE_MODELS_URL: process.env["OPENCODE_MODELS_URL"],
OPENCODE_MODELS_PATH: process.env["OPENCODE_MODELS_PATH"],
- OPENCODE_DISABLE_EMBEDDED_WEB_UI: truthy("OPENCODE_DISABLE_EMBEDDED_WEB_UI"),
OPENCODE_DB: process.env["OPENCODE_DB"],
- OPENCODE_DISABLE_CHANNEL_DB: truthy("OPENCODE_DISABLE_CHANNEL_DB"),
- OPENCODE_SKIP_MIGRATIONS: truthy("OPENCODE_SKIP_MIGRATIONS"),
- OPENCODE_STRICT_CONFIG_DEPS: truthy("OPENCODE_STRICT_CONFIG_DEPS"),
OPENCODE_WORKSPACE_ID: process.env["OPENCODE_WORKSPACE_ID"],
OPENCODE_EXPERIMENTAL_WORKSPACES: OPENCODE_EXPERIMENTAL || truthy("OPENCODE_EXPERIMENTAL_WORKSPACES"),
- OPENCODE_EXPERIMENTAL_EVENT_SYSTEM: OPENCODE_EXPERIMENTAL || truthy("OPENCODE_EXPERIMENTAL_EVENT_SYSTEM"),
// Evaluated at access time (not module load) because tests, the CLI, and
// external tooling set these env vars at runtime.
diff --git a/packages/opencode/src/provider/sdk/copilot/README.md b/packages/core/src/github-copilot/README.md
similarity index 100%
rename from packages/opencode/src/provider/sdk/copilot/README.md
rename to packages/core/src/github-copilot/README.md
diff --git a/packages/opencode/src/provider/sdk/copilot/chat/convert-to-openai-compatible-chat-messages.ts b/packages/core/src/github-copilot/chat/convert-to-openai-compatible-chat-messages.ts
similarity index 100%
rename from packages/opencode/src/provider/sdk/copilot/chat/convert-to-openai-compatible-chat-messages.ts
rename to packages/core/src/github-copilot/chat/convert-to-openai-compatible-chat-messages.ts
diff --git a/packages/opencode/src/provider/sdk/copilot/chat/get-response-metadata.ts b/packages/core/src/github-copilot/chat/get-response-metadata.ts
similarity index 100%
rename from packages/opencode/src/provider/sdk/copilot/chat/get-response-metadata.ts
rename to packages/core/src/github-copilot/chat/get-response-metadata.ts
diff --git a/packages/opencode/src/provider/sdk/copilot/chat/map-openai-compatible-finish-reason.ts b/packages/core/src/github-copilot/chat/map-openai-compatible-finish-reason.ts
similarity index 100%
rename from packages/opencode/src/provider/sdk/copilot/chat/map-openai-compatible-finish-reason.ts
rename to packages/core/src/github-copilot/chat/map-openai-compatible-finish-reason.ts
diff --git a/packages/opencode/src/provider/sdk/copilot/chat/openai-compatible-api-types.ts b/packages/core/src/github-copilot/chat/openai-compatible-api-types.ts
similarity index 100%
rename from packages/opencode/src/provider/sdk/copilot/chat/openai-compatible-api-types.ts
rename to packages/core/src/github-copilot/chat/openai-compatible-api-types.ts
diff --git a/packages/opencode/src/provider/sdk/copilot/chat/openai-compatible-chat-language-model.ts b/packages/core/src/github-copilot/chat/openai-compatible-chat-language-model.ts
similarity index 100%
rename from packages/opencode/src/provider/sdk/copilot/chat/openai-compatible-chat-language-model.ts
rename to packages/core/src/github-copilot/chat/openai-compatible-chat-language-model.ts
diff --git a/packages/opencode/src/provider/sdk/copilot/chat/openai-compatible-chat-options.ts b/packages/core/src/github-copilot/chat/openai-compatible-chat-options.ts
similarity index 100%
rename from packages/opencode/src/provider/sdk/copilot/chat/openai-compatible-chat-options.ts
rename to packages/core/src/github-copilot/chat/openai-compatible-chat-options.ts
diff --git a/packages/opencode/src/provider/sdk/copilot/chat/openai-compatible-metadata-extractor.ts b/packages/core/src/github-copilot/chat/openai-compatible-metadata-extractor.ts
similarity index 100%
rename from packages/opencode/src/provider/sdk/copilot/chat/openai-compatible-metadata-extractor.ts
rename to packages/core/src/github-copilot/chat/openai-compatible-metadata-extractor.ts
diff --git a/packages/opencode/src/provider/sdk/copilot/chat/openai-compatible-prepare-tools.ts b/packages/core/src/github-copilot/chat/openai-compatible-prepare-tools.ts
similarity index 100%
rename from packages/opencode/src/provider/sdk/copilot/chat/openai-compatible-prepare-tools.ts
rename to packages/core/src/github-copilot/chat/openai-compatible-prepare-tools.ts
diff --git a/packages/opencode/src/provider/sdk/copilot/copilot-provider.ts b/packages/core/src/github-copilot/copilot-provider.ts
similarity index 100%
rename from packages/opencode/src/provider/sdk/copilot/copilot-provider.ts
rename to packages/core/src/github-copilot/copilot-provider.ts
diff --git a/packages/opencode/src/provider/sdk/copilot/openai-compatible-error.ts b/packages/core/src/github-copilot/openai-compatible-error.ts
similarity index 100%
rename from packages/opencode/src/provider/sdk/copilot/openai-compatible-error.ts
rename to packages/core/src/github-copilot/openai-compatible-error.ts
diff --git a/packages/opencode/src/provider/sdk/copilot/responses/convert-to-openai-responses-input.ts b/packages/core/src/github-copilot/responses/convert-to-openai-responses-input.ts
similarity index 100%
rename from packages/opencode/src/provider/sdk/copilot/responses/convert-to-openai-responses-input.ts
rename to packages/core/src/github-copilot/responses/convert-to-openai-responses-input.ts
diff --git a/packages/opencode/src/provider/sdk/copilot/responses/map-openai-responses-finish-reason.ts b/packages/core/src/github-copilot/responses/map-openai-responses-finish-reason.ts
similarity index 100%
rename from packages/opencode/src/provider/sdk/copilot/responses/map-openai-responses-finish-reason.ts
rename to packages/core/src/github-copilot/responses/map-openai-responses-finish-reason.ts
diff --git a/packages/opencode/src/provider/sdk/copilot/responses/openai-config.ts b/packages/core/src/github-copilot/responses/openai-config.ts
similarity index 100%
rename from packages/opencode/src/provider/sdk/copilot/responses/openai-config.ts
rename to packages/core/src/github-copilot/responses/openai-config.ts
diff --git a/packages/opencode/src/provider/sdk/copilot/responses/openai-error.ts b/packages/core/src/github-copilot/responses/openai-error.ts
similarity index 100%
rename from packages/opencode/src/provider/sdk/copilot/responses/openai-error.ts
rename to packages/core/src/github-copilot/responses/openai-error.ts
diff --git a/packages/opencode/src/provider/sdk/copilot/responses/openai-responses-api-types.ts b/packages/core/src/github-copilot/responses/openai-responses-api-types.ts
similarity index 100%
rename from packages/opencode/src/provider/sdk/copilot/responses/openai-responses-api-types.ts
rename to packages/core/src/github-copilot/responses/openai-responses-api-types.ts
diff --git a/packages/opencode/src/provider/sdk/copilot/responses/openai-responses-language-model.ts b/packages/core/src/github-copilot/responses/openai-responses-language-model.ts
similarity index 100%
rename from packages/opencode/src/provider/sdk/copilot/responses/openai-responses-language-model.ts
rename to packages/core/src/github-copilot/responses/openai-responses-language-model.ts
diff --git a/packages/opencode/src/provider/sdk/copilot/responses/openai-responses-prepare-tools.ts b/packages/core/src/github-copilot/responses/openai-responses-prepare-tools.ts
similarity index 100%
rename from packages/opencode/src/provider/sdk/copilot/responses/openai-responses-prepare-tools.ts
rename to packages/core/src/github-copilot/responses/openai-responses-prepare-tools.ts
diff --git a/packages/opencode/src/provider/sdk/copilot/responses/openai-responses-settings.ts b/packages/core/src/github-copilot/responses/openai-responses-settings.ts
similarity index 100%
rename from packages/opencode/src/provider/sdk/copilot/responses/openai-responses-settings.ts
rename to packages/core/src/github-copilot/responses/openai-responses-settings.ts
diff --git a/packages/opencode/src/provider/sdk/copilot/responses/tool/code-interpreter.ts b/packages/core/src/github-copilot/responses/tool/code-interpreter.ts
similarity index 100%
rename from packages/opencode/src/provider/sdk/copilot/responses/tool/code-interpreter.ts
rename to packages/core/src/github-copilot/responses/tool/code-interpreter.ts
diff --git a/packages/opencode/src/provider/sdk/copilot/responses/tool/file-search.ts b/packages/core/src/github-copilot/responses/tool/file-search.ts
similarity index 100%
rename from packages/opencode/src/provider/sdk/copilot/responses/tool/file-search.ts
rename to packages/core/src/github-copilot/responses/tool/file-search.ts
diff --git a/packages/opencode/src/provider/sdk/copilot/responses/tool/image-generation.ts b/packages/core/src/github-copilot/responses/tool/image-generation.ts
similarity index 100%
rename from packages/opencode/src/provider/sdk/copilot/responses/tool/image-generation.ts
rename to packages/core/src/github-copilot/responses/tool/image-generation.ts
diff --git a/packages/opencode/src/provider/sdk/copilot/responses/tool/local-shell.ts b/packages/core/src/github-copilot/responses/tool/local-shell.ts
similarity index 100%
rename from packages/opencode/src/provider/sdk/copilot/responses/tool/local-shell.ts
rename to packages/core/src/github-copilot/responses/tool/local-shell.ts
diff --git a/packages/opencode/src/provider/sdk/copilot/responses/tool/web-search-preview.ts b/packages/core/src/github-copilot/responses/tool/web-search-preview.ts
similarity index 100%
rename from packages/opencode/src/provider/sdk/copilot/responses/tool/web-search-preview.ts
rename to packages/core/src/github-copilot/responses/tool/web-search-preview.ts
diff --git a/packages/opencode/src/provider/sdk/copilot/responses/tool/web-search.ts b/packages/core/src/github-copilot/responses/tool/web-search.ts
similarity index 100%
rename from packages/opencode/src/provider/sdk/copilot/responses/tool/web-search.ts
rename to packages/core/src/github-copilot/responses/tool/web-search.ts
diff --git a/packages/core/src/location-layer.ts b/packages/core/src/location-layer.ts
new file mode 100644
index 0000000000..84dfb3dfae
--- /dev/null
+++ b/packages/core/src/location-layer.ts
@@ -0,0 +1,12 @@
+import { Layer, LayerMap } from "effect"
+import { Location } from "./location"
+import { Catalog } from "./catalog"
+import { PluginBoot } from "./plugin/boot"
+
+export class LocationServiceMap extends LayerMap.Service()("@opencode/example/LocationServiceMap", {
+ lookup: (ref: Location.Ref) => {
+ const location = Layer.succeed(Location.Service, Location.Service.of(ref))
+ return Layer.mergeAll(Catalog.defaultLayer, PluginBoot.defaultLayer).pipe(Layer.provide(location))
+ },
+ idleTimeToLive: "5 minutes",
+}) {}
diff --git a/packages/core/src/location.ts b/packages/core/src/location.ts
new file mode 100644
index 0000000000..00ff9cd3ea
--- /dev/null
+++ b/packages/core/src/location.ts
@@ -0,0 +1,11 @@
+import { Context, Schema } from "effect"
+
+export * as Location from "./location"
+
+export const Ref = Schema.Struct({
+ directory: Schema.String,
+ workspaceID: Schema.optional(Schema.String),
+}).annotate({ identifier: "Location.Ref" })
+export type Ref = typeof Ref.Type
+
+export class Service extends Context.Service()("@opencode/Location") {}
diff --git a/packages/core/src/model.ts b/packages/core/src/model.ts
new file mode 100644
index 0000000000..77b8c60ebe
--- /dev/null
+++ b/packages/core/src/model.ts
@@ -0,0 +1,116 @@
+import { DateTime, Schema } from "effect"
+import { DateTimeUtcFromMillis } from "effect/Schema"
+import { ProviderV2 } from "./provider"
+
+export const ID = Schema.String.pipe(Schema.brand("ModelV2.ID"))
+export type ID = typeof ID.Type
+
+export const VariantID = Schema.String.pipe(Schema.brand("VariantID"))
+export type VariantID = typeof VariantID.Type
+
+// Grouping of models, eg claude opus, claude sonnet
+export const Family = Schema.String.pipe(Schema.brand("Family"))
+export type Family = typeof Family.Type
+
+export const Capabilities = Schema.Struct({
+ tools: Schema.Boolean,
+ // mime patterns, image, audio, video/*, text/*
+ input: Schema.String.pipe(Schema.Array),
+ output: Schema.String.pipe(Schema.Array),
+})
+export type Capabilities = typeof Capabilities.Type
+
+export const Cost = Schema.Struct({
+ tier: Schema.Struct({
+ type: Schema.Literal("context"),
+ size: Schema.Int,
+ }).pipe(Schema.optional),
+ input: Schema.Finite,
+ output: Schema.Finite,
+ cache: Schema.Struct({
+ read: Schema.Finite,
+ write: Schema.Finite,
+ }),
+})
+
+export const Ref = Schema.Struct({
+ id: ID,
+ providerID: ProviderV2.ID,
+ variant: VariantID,
+})
+export type Ref = typeof Ref.Type
+
+export class Info extends Schema.Class("ModelV2.Info")({
+ id: ID,
+ apiID: ID,
+ providerID: ProviderV2.ID,
+ family: Family.pipe(Schema.optional),
+ name: Schema.String,
+ endpoint: ProviderV2.Endpoint,
+ capabilities: Capabilities,
+ options: Schema.Struct({
+ ...ProviderV2.Options.fields,
+ variant: Schema.String.pipe(Schema.optional),
+ }),
+ variants: Schema.Struct({
+ id: VariantID,
+ ...ProviderV2.Options.fields,
+ }).pipe(Schema.Array),
+ time: Schema.Struct({
+ released: DateTimeUtcFromMillis,
+ }),
+ cost: Cost.pipe(Schema.Array),
+ status: Schema.Literals(["alpha", "beta", "deprecated", "active"]),
+ enabled: Schema.Boolean,
+ limit: Schema.Struct({
+ context: Schema.Int,
+ input: Schema.Int.pipe(Schema.optional),
+ output: Schema.Int,
+ }),
+}) {
+ static empty(providerID: ProviderV2.ID, modelID: ID) {
+ return new Info({
+ id: modelID,
+ apiID: modelID,
+ providerID,
+ name: modelID,
+ endpoint: {
+ type: "unknown",
+ },
+ capabilities: {
+ tools: false,
+ input: [],
+ output: [],
+ },
+ options: {
+ headers: {},
+ body: {},
+ aisdk: {
+ provider: {},
+ request: {},
+ },
+ },
+ variants: [],
+ time: {
+ released: DateTime.makeUnsafe(0),
+ },
+ cost: [],
+ status: "active",
+ enabled: true,
+ limit: {
+ context: 0,
+ output: 0,
+ },
+ })
+ }
+}
+
+export function parse(input: string): { providerID: ProviderV2.ID; modelID: ID } {
+ const [providerID, ...modelID] = input.split("/")
+ return {
+ providerID: ProviderV2.ID.make(providerID),
+ modelID: ID.make(modelID.join("/")),
+ }
+}
+
+export * as ModelV2 from "./model"
diff --git a/packages/core/src/models-snapshot.d.ts b/packages/core/src/models-snapshot.d.ts
new file mode 100644
index 0000000000..839eba6b7d
--- /dev/null
+++ b/packages/core/src/models-snapshot.d.ts
@@ -0,0 +1,2 @@
+// Auto-generated by build.ts - do not edit
+export declare const snapshot: Record
diff --git a/packages/core/src/models-snapshot.js b/packages/core/src/models-snapshot.js
new file mode 100644
index 0000000000..c582a75bdf
--- /dev/null
+++ b/packages/core/src/models-snapshot.js
@@ -0,0 +1,71726 @@
+// @ts-nocheck
+// Auto-generated by build.ts - do not edit
+export const snapshot = {
+ "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": {
+ 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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "grok-4.20-multi-agent-beta-0309": {
+ id: "grok-4.20-multi-agent-beta-0309",
+ name: "grok-4.20-multi-agent-beta-0309",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-03-16",
+ last_updated: "2026-03-16",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 2, output: 6 },
+ limit: { context: 2000000, output: 30000 },
+ },
+ "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 },
+ },
+ "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-16",
+ last_updated: "2025-10-16",
+ modalities: { input: ["text", "image", "pdf"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 1, output: 5 },
+ limit: { context: 200000, output: 64000 },
+ },
+ "claude-opus-4-5-20251101": {
+ id: "claude-opus-4-5-20251101",
+ name: "claude-opus-4-5-20251101",
+ family: "claude-opus",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ knowledge: "2025-03-31",
+ release_date: "2025-11-25",
+ last_updated: "2025-11-25",
+ modalities: { input: ["text", "image", "pdf"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 5, output: 25 },
+ limit: { context: 200000, output: 64000 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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-02",
+ last_updated: "2026-04-02",
+ modalities: { input: ["text", "image", "video", "audio", "pdf"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.72, output: 3.2 },
+ limit: { context: 200000, output: 131072 },
+ },
+ "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.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.286, output: 1.142 },
+ limit: { context: 204800, output: 131072 },
+ },
+ "claude-3-5-haiku-20241022": {
+ id: "claude-3-5-haiku-20241022",
+ name: "claude-3-5-haiku-20241022",
+ 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 },
+ limit: { context: 200000, output: 8192 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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-12",
+ last_updated: "2026-02-12",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.6, output: 2.6 },
+ limit: { context: 204800, output: 131072 },
+ },
+ "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,
+ 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 },
+ },
+ "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-31",
+ release_date: "2026-02-18",
+ last_updated: "2026-03-13",
+ modalities: { input: ["text", "image", "pdf"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 3, output: 15 },
+ limit: { context: 1000000, output: 64000 },
+ },
+ "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 },
+ },
+ "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-20",
+ last_updated: "2026-01-20",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.0715, output: 0.429 },
+ 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 },
+ },
+ "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 },
+ },
+ "grok-4.20-beta-0309-non-reasoning": {
+ id: "grok-4.20-beta-0309-non-reasoning",
+ name: "grok-4.20-beta-0309-non-reasoning",
+ attachment: true,
+ reasoning: false,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-03-16",
+ last_updated: "2026-03-16",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 2, output: 6 },
+ limit: { context: 2000000, output: 30000 },
+ },
+ "claude-opus-4-7": {
+ id: "claude-opus-4-7",
+ name: "claude-opus-4-7",
+ family: "claude-opus",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ knowledge: "2026-01-31",
+ release_date: "2026-04-17",
+ last_updated: "2026-04-17",
+ 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 },
+ },
+ "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-08",
+ last_updated: "2025-08-08",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.25, output: 2 },
+ limit: { context: 400000, input: 272000, 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 },
+ },
+ "MiniMax-M2.7": {
+ id: "MiniMax-M2.7",
+ name: "MiniMax-M2.7",
+ attachment: false,
+ reasoning: false,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-03-19",
+ last_updated: "2026-03-19",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.3, output: 1.2 },
+ limit: { context: 204800, output: 131072 },
+ },
+ "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 },
+ },
+ "claude-sonnet-4-5-20250929": {
+ id: "claude-sonnet-4-5-20250929",
+ name: "claude-sonnet-4-5-20250929",
+ family: "claude-sonnet",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ knowledge: "2025-07-31",
+ release_date: "2025-09-30",
+ last_updated: "2025-09-30",
+ modalities: { input: ["text", "image", "pdf"], 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,
+ 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 },
+ },
+ "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-3-5-haiku-latest": {
+ id: "claude-3-5-haiku-latest",
+ name: "claude-3-5-haiku-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 },
+ limit: { context: 200000, 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 },
+ },
+ "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-12",
+ last_updated: "2025-12-12",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 1.75, output: 14 },
+ 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-19",
+ last_updated: "2026-03-19",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.75, output: 4.5 },
+ limit: { context: 400000, input: 272000, output: 128000 },
+ },
+ "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-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-04-10",
+ last_updated: "2026-04-10",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.86, output: 3.5 },
+ limit: { context: 200000, output: 131072 },
+ },
+ "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 },
+ },
+ "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-19",
+ last_updated: "2026-03-19",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.2, output: 1.25 },
+ limit: { context: 400000, input: 272000, output: 128000 },
+ },
+ "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 },
+ },
+ "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-29",
+ last_updated: "2025-07-29",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.286, output: 1.142 },
+ limit: { context: 131072, output: 98304 },
+ },
+ "gpt-5.4-mini-2026-03-17": {
+ id: "gpt-5.4-mini-2026-03-17",
+ name: "gpt-5.4-mini-2026-03-17",
+ family: "gpt-mini",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: false,
+ knowledge: "2025-08-31",
+ release_date: "2026-03-19",
+ last_updated: "2026-03-19",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.75, output: 4.5 },
+ 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: 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 },
+ },
+ "gpt-5.2-chat-latest": {
+ id: "gpt-5.2-chat-latest",
+ name: "gpt-5.2-chat-latest",
+ family: "gpt-codex",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: false,
+ knowledge: "2025-08-31",
+ 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", "image"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.114, output: 1.143 },
+ limit: { context: 256000, output: 32000 },
+ },
+ "gemini-3.1-flash-image-preview": {
+ id: "gemini-3.1-flash-image-preview",
+ name: "gemini-3.1-flash-image-preview",
+ attachment: true,
+ reasoning: false,
+ tool_call: false,
+ temperature: true,
+ knowledge: "2025-01",
+ release_date: "2026-02-27",
+ last_updated: "2026-02-27",
+ modalities: { input: ["text", "image", "pdf"], output: ["text", "image"] },
+ open_weights: false,
+ cost: { input: 0.5, output: 60 },
+ limit: { context: 131072, output: 32768 },
+ },
+ "MiniMax-M2.7-highspeed": {
+ id: "MiniMax-M2.7-highspeed",
+ name: "MiniMax-M2.7-highspeed",
+ attachment: false,
+ reasoning: false,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-03-19",
+ last_updated: "2026-03-19",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.6, output: 4.8 },
+ limit: { context: 204800, output: 131072 },
+ },
+ "glm-4.5-x": {
+ id: "glm-4.5-x",
+ name: "glm-4.5-x",
+ family: "glm",
+ attachment: false,
+ reasoning: false,
+ tool_call: true,
+ temperature: true,
+ knowledge: "2025-04",
+ release_date: "2025-07-29",
+ last_updated: "2025-07-29",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 1.143, output: 2.29 },
+ limit: { context: 128000, output: 16384 },
+ },
+ "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 },
+ },
+ "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"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 1.25, output: 10 },
+ limit: { context: 400000, input: 272000, output: 128000 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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-29",
+ last_updated: "2025-07-29",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.1143, output: 0.286 },
+ limit: { context: 131072, output: 98304 },
+ },
+ "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, cache_read: 0, cache_write: 0, context_over_200k: { input: 60, output: 270 } },
+ limit: { context: 1050000, input: 922000, output: 128000 },
+ },
+ "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.72, output: 3.2 },
+ limit: { context: 200000, output: 131072 },
+ },
+ "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 },
+ },
+ "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-25",
+ last_updated: "2025-11-25",
+ modalities: { input: ["text", "image", "pdf"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 5, output: 25 },
+ limit: { context: 200000, output: 64000 },
+ },
+ "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-12",
+ last_updated: "2025-08-12",
+ modalities: { input: ["text", "image", "video"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.29, output: 0.86 },
+ 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.286, output: 1.142 },
+ limit: { context: 204800, output: 131072 },
+ },
+ "claude-opus-4-6-thinking": {
+ id: "claude-opus-4-6-thinking",
+ name: "claude-opus-4-6-thinking",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ knowledge: "2025-05",
+ release_date: "2026-02-06",
+ last_updated: "2026-03-13",
+ modalities: { input: ["text", "image", "pdf"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 5, output: 25 },
+ limit: { context: 1000000, output: 128000 },
+ },
+ "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 },
+ },
+ "claude-sonnet-4-6-thinking": {
+ id: "claude-sonnet-4-6-thinking",
+ name: "claude-sonnet-4-6-thinking",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ knowledge: "2025-08",
+ release_date: "2026-02-18",
+ last_updated: "2026-03-13",
+ modalities: { input: ["text", "image", "pdf"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 3, output: 15 },
+ limit: { context: 1000000, output: 64000 },
+ },
+ "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.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",
+ 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 },
+ 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", "pdf"], output: ["text"] },
+ open_weights: false,
+ cost: {
+ input: 2.5,
+ output: 15,
+ cache_read: 0.25,
+ cache_write: 0,
+ context_over_200k: { input: 5, output: 22.5 },
+ },
+ 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-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"], 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",
+ family: "claude-haiku",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ knowledge: "2025-02-28",
+ release_date: "2025-10-16",
+ last_updated: "2025-10-16",
+ modalities: { input: ["text", "image", "pdf"], 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 },
+ },
+ "gpt-5.4-nano-2026-03-17": {
+ id: "gpt-5.4-nano-2026-03-17",
+ name: "gpt-5.4-nano-2026-03-17",
+ family: "gpt-nano",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: false,
+ knowledge: "2025-08-31",
+ release_date: "2026-03-19",
+ last_updated: "2026-03-19",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.2, output: 1.25 },
+ limit: { context: 400000, input: 272000, output: 128000 },
+ },
+ "claude-sonnet-4-20250514": {
+ id: "claude-sonnet-4-20250514",
+ name: "claude-sonnet-4-20250514",
+ 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 },
+ limit: { context: 200000, output: 64000 },
+ },
+ "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 },
+ },
+ "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-06",
+ last_updated: "2026-03-13",
+ modalities: { input: ["text", "image", "pdf"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 5, output: 25 },
+ limit: { context: 1000000, output: 128000 },
+ },
+ "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,
+ 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 },
+ limit: { context: 1047576, 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",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: false,
+ knowledge: "2024-09-30",
+ 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, 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-05-13",
+ modalities: { input: ["text", "image", "pdf"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 2.5, output: 10 },
+ 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-30",
+ last_updated: "2025-09-30",
+ modalities: { input: ["text", "image", "pdf"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 3, output: 15 },
+ 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-08",
+ last_updated: "2025-08-08",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 1.25, output: 10 },
+ limit: { context: 400000, input: 272000, output: 128000 },
+ },
+ "grok-4.20-beta-0309-reasoning": {
+ id: "grok-4.20-beta-0309-reasoning",
+ name: "grok-4.20-beta-0309-reasoning",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-03-16",
+ last_updated: "2026-03-16",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 2, output: 6 },
+ limit: { context: 2000000, output: 30000 },
+ },
+ "claude-opus-4-20250514": {
+ id: "claude-opus-4-20250514",
+ name: "claude-opus-4-20250514",
+ 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 },
+ limit: { context: 200000, output: 32000 },
+ },
+ "glm-for-coding": {
+ id: "glm-for-coding",
+ name: "glm-for-coding",
+ family: "glm",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ release_date: "2025-09-30",
+ last_updated: "2025-09-30",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.086, output: 0.343 },
+ limit: { context: 200000, output: 131072 },
+ },
+ "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", "pdf"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 3, output: 15 },
+ limit: { context: 200000, output: 64000 },
+ },
+ "glm-4.5-airx": {
+ id: "glm-4.5-airx",
+ name: "glm-4.5-airx",
+ family: "glm",
+ attachment: false,
+ reasoning: false,
+ tool_call: true,
+ temperature: true,
+ knowledge: "2025-04",
+ release_date: "2025-07-29",
+ last_updated: "2025-07-29",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.572, output: 1.714 },
+ 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,
+ 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 },
+ limit: { context: 1047576, output: 32768 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ limit: { context: 1047576, 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 },
+ },
+ },
+ },
+ alibaba: {
+ id: "alibaba",
+ env: ["DASHSCOPE_API_KEY"],
+ npm: "@ai-sdk/openai-compatible",
+ api: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
+ name: "Alibaba",
+ doc: "https://www.alibabacloud.com/help/en/model-studio/models",
+ models: {
+ "qwen3-235b-a22b": {
+ id: "qwen3-235b-a22b",
+ name: "Qwen3 235B-A22B",
+ 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 },
+ },
+ "qwen3.5-122b-a10b": {
+ id: "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-23",
+ last_updated: "2026-02-23",
+ modalities: { input: ["text", "image", "video", "audio"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.4, output: 3.2 },
+ limit: { context: 262144, 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 },
+ },
+ "qwen3.6-27b": {
+ id: "qwen3.6-27b",
+ name: "Qwen3.6 27B",
+ family: "qwen",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: true,
+ release_date: "2026-04-22",
+ last_updated: "2026-04-22",
+ modalities: { input: ["text", "image", "video", "audio"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.6, output: 3.6 },
+ limit: { context: 262144, output: 65536 },
+ },
+ "qwen3.5-27b": {
+ id: "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-23",
+ last_updated: "2026-02-23",
+ modalities: { input: ["text", "image", "video", "audio"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.3, output: 2.4 },
+ limit: { context: 262144, output: 65536 },
+ },
+ "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 },
+ },
+ "qwen-omni-turbo-realtime": {
+ id: "qwen-omni-turbo-realtime",
+ name: "Qwen-Omni Turbo Realtime",
+ family: "qwen",
+ attachment: false,
+ reasoning: false,
+ tool_call: true,
+ temperature: true,
+ knowledge: "2024-04",
+ release_date: "2025-05-08",
+ last_updated: "2025-05-08",
+ modalities: { input: ["text", "image", "audio"], output: ["text", "audio"] },
+ open_weights: false,
+ cost: { input: 0.27, output: 1.07, input_audio: 4.44, output_audio: 8.89 },
+ limit: { context: 32768, output: 2048 },
+ },
+ "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.5-397b-a17b": {
+ id: "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-15",
+ last_updated: "2026-02-15",
+ modalities: { input: ["text", "image", "video", "audio"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.6, output: 3.6 },
+ limit: { context: 262144, output: 65536 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "qwen3-livetranslate-flash-realtime": {
+ id: "qwen3-livetranslate-flash-realtime",
+ name: "Qwen3-LiveTranslate Flash Realtime",
+ family: "qwen",
+ attachment: false,
+ reasoning: false,
+ tool_call: false,
+ temperature: true,
+ knowledge: "2024-04",
+ release_date: "2025-09-22",
+ last_updated: "2025-09-22",
+ modalities: { input: ["text", "image", "audio", "video"], output: ["text", "audio"] },
+ open_weights: false,
+ 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",
+ 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.4, output: 1.2, reasoning: 4 },
+ limit: { context: 1000000, output: 32768 },
+ },
+ "qwen3.6-35b-a3b": {
+ id: "qwen3.6-35b-a3b",
+ name: "Qwen3.6 35B-A3B",
+ family: "qwen",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: true,
+ release_date: "2026-04-17",
+ last_updated: "2026-04-17",
+ modalities: { input: ["text", "image", "video", "audio"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.248, output: 1.485 },
+ 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-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,
+ 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 },
+ },
+ "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.276, output: 1.651, cache_read: 0.028, cache_write: 0.344 },
+ limit: { context: 1000000, output: 65536 },
+ },
+ "qwen3-max": {
+ id: "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: 65536 },
+ },
+ "qwen3-omni-flash": {
+ id: "qwen3-omni-flash",
+ name: "Qwen3-Omni Flash",
+ family: "qwen",
+ attachment: false,
+ reasoning: true,
+ 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.43, output: 1.66, input_audio: 3.81, output_audio: 15.11 },
+ limit: { context: 65536, output: 16384 },
+ },
+ "qwen2-5-72b-instruct": {
+ id: "qwen2-5-72b-instruct",
+ name: "Qwen2.5 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: 1.4, output: 5.6 },
+ limit: { context: 131072, output: 8192 },
+ },
+ "qwen3-vl-235b-a22b": {
+ id: "qwen3-vl-235b-a22b",
+ name: "Qwen3-VL 235B-A22B",
+ 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.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)",
+ 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.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",
+ 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.16, output: 0.49 },
+ limit: { context: 16384, output: 8192 },
+ },
+ "qwen3.6-max-preview": {
+ id: "qwen3.6-max-preview",
+ name: "Qwen3.6 Max Preview",
+ family: "qwen",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ knowledge: "2025-04",
+ release_date: "2026-04-20",
+ last_updated: "2026-04-20",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 1.3, output: 7.8, cache_read: 0.13, cache_write: 1.625 },
+ limit: { context: 262144, output: 65536 },
+ },
+ "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 },
+ },
+ "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.4, output: 2.4, reasoning: 2.4 },
+ limit: { context: 1000000, output: 65536 },
+ },
+ "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 },
+ },
+ "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.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.35, output: 1.4, reasoning: 4.2 },
+ limit: { context: 131072, output: 8192 },
+ },
+ "qwen3.5-35b-a3b": {
+ id: "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-23",
+ last_updated: "2026-02-23",
+ modalities: { input: ["text", "image", "video", "audio"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.25, output: 2 },
+ limit: { context: 262144, output: 65536 },
+ },
+ },
+ },
+ 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: {
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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-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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ },
+ },
+ "nano-gpt": {
+ id: "nano-gpt",
+ env: ["NANO_GPT_API_KEY"],
+ npm: "@ai-sdk/openai-compatible",
+ api: "https://nano-gpt.com/api/v1",
+ name: "NanoGPT",
+ doc: "https://docs.nano-gpt.com",
+ models: {
+ "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,
+ 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-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: "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 },
+ },
+ "claude-opus-4-5-20251101": {
+ id: "claude-opus-4-5-20251101",
+ name: "Claude 4.5 Opus",
+ 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 },
+ },
+ "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,
+ 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-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 },
+ },
+ "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,
+ 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-x1-32k": {
+ id: "ernie-x1-32k",
+ name: "Ernie X1 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.33, output: 1.32 },
+ limit: { context: 32000, input: 32000, 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-z1-air": {
+ id: "glm-z1-air",
+ name: "GLM Z1 Air",
+ 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.07, output: 0.07 },
+ limit: { context: 32000, input: 32000, 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 },
+ },
+ "glm-4-air": {
+ id: "glm-4-air",
+ name: "GLM-4 Air",
+ 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: 0.2006, output: 0.2006 },
+ limit: { context: 128000, input: 128000, output: 4096 },
+ },
+ "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,
+ structured_output: false,
+ release_date: "2025-07-26",
+ last_updated: "2025-07-26",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.493, output: 0.493 },
+ limit: { context: 32768, input: 32768, output: 16384 },
+ },
+ "gemini-2.0-flash-thinking-exp-01-21": {
+ id: "gemini-2.0-flash-thinking-exp-01-21",
+ name: "Gemini 2.0 Flash Thinking 0121",
+ attachment: true,
+ reasoning: true,
+ tool_call: false,
+ structured_output: false,
+ release_date: "2025-01-21",
+ last_updated: "2025-01-21",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.306, output: 1.003 },
+ limit: { context: 1000000, input: 1000000, output: 8192 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "venice-uncensored:web": {
+ id: "venice-uncensored:web",
+ name: "Venice Uncensored Web",
+ attachment: false,
+ reasoning: false,
+ tool_call: false,
+ structured_output: false,
+ release_date: "2024-05-01",
+ last_updated: "2024-05-01",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.4, output: 0.4 },
+ limit: { context: 80000, input: 80000, output: 16384 },
+ },
+ "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 },
+ },
+ "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: 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 },
+ },
+ "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: "2025-03-12",
+ last_updated: "2025-03-12",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 1.989, output: 7.99 },
+ limit: { context: 256000, input: 256000, output: 4096 },
+ },
+ "qwen-plus": {
+ id: "qwen-plus",
+ name: "Qwen Plus",
+ attachment: false,
+ reasoning: true,
+ tool_call: false,
+ structured_output: false,
+ 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.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 },
+ },
+ "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: "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-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,
+ 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 },
+ },
+ "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.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 },
+ },
+ "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 },
+ },
+ "qwen3-vl-235b-a22b-thinking": {
+ id: "qwen3-vl-235b-a22b-thinking",
+ name: "Qwen3 VL 235B A22B Thinking",
+ attachment: true,
+ reasoning: true,
+ tool_call: false,
+ structured_output: false,
+ release_date: "2025-08-26",
+ last_updated: "2025-08-26",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.5, output: 6 },
+ limit: { context: 32768, input: 32768, output: 32768 },
+ },
+ "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,
+ 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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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-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-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 },
+ },
+ "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 },
+ },
+ "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: "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-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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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: "2025-02-05",
+ last_updated: "2025-02-05",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 1.989, output: 7.956 },
+ limit: { context: 2097152, input: 2097152, output: 8192 },
+ },
+ "azure-gpt-4o-mini": {
+ id: "azure-gpt-4o-mini",
+ name: "Azure gpt-4o-mini",
+ attachment: true,
+ reasoning: false,
+ tool_call: true,
+ structured_output: true,
+ 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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "qwen-3.6-plus": {
+ id: "qwen-3.6-plus",
+ name: "Qwen 3.6 Plus",
+ family: "qwen3.6",
+ attachment: false,
+ reasoning: false,
+ tool_call: false,
+ structured_output: false,
+ release_date: "2026-04-02",
+ last_updated: "2026-04-02",
+ modalities: { input: ["text", "image", "video"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.45, output: 2.7 },
+ limit: { context: 991800, output: 65536 },
+ },
+ "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",
+ 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 },
+ },
+ "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 },
+ },
+ "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-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: 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",
+ name: "Claude 4 Sonnet",
+ 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: 200000, input: 200000, output: 64000 },
+ },
+ "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 },
+ },
+ "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,
+ 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 },
+ },
+ "venice-uncensored": {
+ id: "venice-uncensored",
+ name: "Venice Uncensored",
+ attachment: false,
+ reasoning: false,
+ tool_call: false,
+ structured_output: false,
+ release_date: "2025-02-24",
+ last_updated: "2025-02-24",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ 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",
+ 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.157, output: 0.157 },
+ limit: { context: 32768, input: 32768, output: 32768 },
+ },
+ "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: "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-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: "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-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 },
+ },
+ "Llama-3.3-70B-Argunaut-1-SFT": {
+ id: "Llama-3.3-70B-Argunaut-1-SFT",
+ name: "Llama 3.3 70B Argunaut 1 SFT",
+ 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-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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "doubao-seed-2-0-code-preview-260215": {
+ id: "doubao-seed-2-0-code-preview-260215",
+ name: "Doubao Seed 2.0 Code Preview",
+ 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.893 },
+ limit: { context: 256000, input: 256000, output: 128000 },
+ },
+ "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 },
+ },
+ "exa-answer": {
+ id: "exa-answer",
+ name: "Exa (Answer)",
+ 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: 4096, input: 4096, output: 4096 },
+ },
+ "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 },
+ },
+ "qwen3.6-max-preview": {
+ id: "qwen3.6-max-preview",
+ name: "Qwen3.6 Max Preview",
+ family: "qwen3.6",
+ attachment: false,
+ reasoning: false,
+ tool_call: false,
+ structured_output: false,
+ release_date: "2026-04-20",
+ last_updated: "2026-04-21",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 1.3, output: 7.8 },
+ limit: { context: 245800, 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 },
+ },
+ "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-05-20",
+ last_updated: "2025-05-20",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: false,
+ 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 },
+ },
+ "alibaba/qwen3.6-flash": {
+ id: "alibaba/qwen3.6-flash",
+ name: "Qwen3.6 Flash",
+ family: "qwen3.6",
+ attachment: false,
+ reasoning: false,
+ tool_call: false,
+ structured_output: false,
+ release_date: "2026-04-17",
+ last_updated: "2026-04-17",
+ modalities: { input: ["text", "image", "video"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.19, output: 1.16 },
+ limit: { context: 991800, output: 65536 },
+ },
+ "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",
+ name: "K2-Think",
+ family: "kimi-thinking",
+ 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: 32768 },
+ },
+ "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-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 },
+ limit: { context: 16384, input: 16384, output: 8192 },
+ },
+ "Envoid/Llama-3.05-Nemotron-Tenyxchat-Storybreaker-70B": {
+ id: "Envoid/Llama-3.05-Nemotron-Tenyxchat-Storybreaker-70B",
+ name: "Nemotron Tenyxchat Storybreaker 70b",
+ family: "nemotron",
+ 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 },
+ limit: { context: 16384, input: 16384, output: 8192 },
+ },
+ "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,
+ 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.7, output: 0.95 },
+ limit: { context: 16384, input: 16384, output: 16384 },
+ },
+ "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 },
+ },
+ "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.49299999999999994, output: 0.49299999999999994 },
+ limit: { context: 32768, input: 32768, output: 8192 },
+ },
+ "allenai/molmo-2-8b": {
+ id: "allenai/molmo-2-8b",
+ name: "Molmo 2 8B",
+ family: "allenai",
+ attachment: true,
+ reasoning: false,
+ tool_call: false,
+ structured_output: false,
+ release_date: "2026-02-14",
+ last_updated: "2026-02-14",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.2, output: 0.2 },
+ limit: { context: 36864, input: 36864, output: 36864 },
+ },
+ "allenai/olmo-3.1-32b-instruct": {
+ id: "allenai/olmo-3.1-32b-instruct",
+ name: "Olmo 3.1 32B Instruct",
+ family: "allenai",
+ attachment: false,
+ reasoning: false,
+ tool_call: false,
+ structured_output: false,
+ release_date: "2026-01-25",
+ last_updated: "2026-01-25",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.2, output: 0.6 },
+ limit: { context: 65536, input: 65536, output: 8192 },
+ },
+ "allenai/olmo-3.1-32b-think": {
+ id: "allenai/olmo-3.1-32b-think",
+ name: "Olmo 3.1 32B Think",
+ family: "allenai",
+ attachment: false,
+ reasoning: true,
+ tool_call: false,
+ structured_output: false,
+ release_date: "2026-01-25",
+ last_updated: "2026-01-25",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.15, output: 0.5 },
+ limit: { context: 65536, input: 65536, output: 8192 },
+ },
+ "allenai/olmo-3-32b-think": {
+ id: "allenai/olmo-3-32b-think",
+ name: "Olmo 3 32B Think",
+ family: "allenai",
+ attachment: false,
+ reasoning: true,
+ tool_call: false,
+ structured_output: false,
+ release_date: "2025-11-01",
+ last_updated: "2025-11-01",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ 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",
+ 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-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",
+ family: "glm-flash",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ structured_output: 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, input: 200000, output: 128000 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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,
+ structured_output: false,
+ release_date: "2025-08-08",
+ last_updated: "2025-08-08",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.1003, output: 0.1003 },
+ limit: { context: 4000, input: 4000, output: 4096 },
+ },
+ "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-09-18",
+ last_updated: "2025-09-18",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ 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",
+ name: "Nvidia Nemotron Ultra 253B",
+ family: "nemotron",
+ 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.4, output: 0.8 },
+ limit: { context: 128000, input: 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: 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.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",
+ 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.05, output: 0.25 },
+ limit: { context: 128000, input: 128000, output: 16384 },
+ },
+ "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.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 },
+ },
+ "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: "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-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 },
+ },
+ "deepseek-ai/DeepSeek-V3.1:thinking": {
+ id: "deepseek-ai/DeepSeek-V3.1:thinking",
+ name: "DeepSeek V3.1 Thinking",
+ family: "deepseek-thinking",
+ 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: 0.2, output: 0.7 },
+ limit: { context: 128000, input: 128000, output: 65536 },
+ },
+ "deepseek-ai/DeepSeek-V3.1": {
+ id: "deepseek-ai/DeepSeek-V3.1",
+ name: "DeepSeek V3.1",
+ family: "deepseek",
+ attachment: true,
+ reasoning: false,
+ tool_call: false,
+ structured_output: false,
+ release_date: "2025-07-26",
+ last_updated: "2025-07-26",
+ modalities: { input: ["text", "pdf"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.2, output: 0.7 },
+ limit: { context: 128000, input: 128000, 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",
+ attachment: false,
+ reasoning: false,
+ tool_call: true,
+ structured_output: true,
+ 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",
+ family: "deepseek",
+ 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: 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 },
+ },
+ "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-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 },
+ },
+ "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-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/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/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,
+ 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.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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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.6-35B-A3B:thinking": {
+ id: "qwen/Qwen3.6-35B-A3B:thinking",
+ name: "Qwen3.6 35B A3B Thinking",
+ family: "qwen3.6",
+ attachment: false,
+ reasoning: true,
+ tool_call: false,
+ structured_output: false,
+ release_date: "2026-04-19",
+ last_updated: "2026-04-21",
+ modalities: { input: ["text", "image", "video"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.29, output: 1.74 },
+ limit: { context: 262144, output: 16384 },
+ },
+ "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 },
+ },
+ "qwen/Qwen3.6-35B-A3B": {
+ id: "qwen/Qwen3.6-35B-A3B",
+ name: "Qwen3.6 35B A3B",
+ family: "qwen3.6",
+ attachment: false,
+ reasoning: false,
+ tool_call: false,
+ structured_output: false,
+ release_date: "2026-04-17",
+ last_updated: "2026-04-21",
+ modalities: { input: ["text", "image", "video"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.29, output: 1.74 },
+ limit: { context: 262144, output: 16384 },
+ },
+ "unsloth/gemma-3-1b-it": {
+ id: "unsloth/gemma-3-1b-it",
+ name: "Gemma 3 1B IT",
+ family: "unsloth",
+ 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.1003, output: 0.1003 },
+ limit: { context: 128000, input: 128000, output: 8192 },
+ },
+ "unsloth/gemma-3-12b-it": {
+ id: "unsloth/gemma-3-12b-it",
+ name: "Gemma 3 12B IT",
+ family: "unsloth",
+ 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.272, output: 0.272 },
+ limit: { context: 128000, input: 128000, output: 131072 },
+ },
+ "unsloth/gemma-3-4b-it": {
+ id: "unsloth/gemma-3-4b-it",
+ name: "Gemma 3 4B IT",
+ family: "unsloth",
+ 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.2006, output: 0.2006 },
+ limit: { context: 128000, input: 128000, output: 8192 },
+ },
+ "unsloth/gemma-3-27b-it": {
+ id: "unsloth/gemma-3-27b-it",
+ name: "Gemma 3 27B IT",
+ family: "unsloth",
+ 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.2992, output: 0.2992 },
+ limit: { context: 128000, input: 128000, output: 96000 },
+ },
+ "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-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-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 },
+ },
+ "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-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 },
+ },
+ "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",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.5, output: 3 },
+ limit: { context: 1048756, input: 1048756, output: 65536 },
+ },
+ "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-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",
+ name: "Kimi K2 Instruct",
+ family: "kimi",
+ attachment: false,
+ reasoning: false,
+ tool_call: true,
+ structured_output: true,
+ release_date: "2025-07-01",
+ last_updated: "2025-07-01",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.1, output: 2 },
+ limit: { context: 256000, input: 256000, output: 8192 },
+ },
+ "moonshotai/kimi-k2-thinking-original": {
+ id: "moonshotai/kimi-k2-thinking-original",
+ name: "Kimi K2 Thinking 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: 0.6, output: 2.5 },
+ limit: { context: 256000, input: 256000, output: 16384 },
+ },
+ "moonshotai/kimi-k2-instruct-0711": {
+ id: "moonshotai/kimi-k2-instruct-0711",
+ name: "Kimi K2 0711",
+ family: "kimi",
+ attachment: false,
+ reasoning: false,
+ tool_call: true,
+ structured_output: true,
+ 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: 8192 },
+ },
+ "moonshotai/Kimi-Dev-72B": {
+ id: "moonshotai/Kimi-Dev-72B",
+ name: "Kimi Dev 72B",
+ family: "kimi",
+ 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.4, output: 0.4 },
+ limit: { context: 128000, input: 128000, output: 131072 },
+ },
+ "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.6": {
+ id: "moonshotai/kimi-k2.6",
+ name: "Kimi K2.6",
+ family: "kimi-k2.6",
+ attachment: true,
+ reasoning: false,
+ tool_call: true,
+ structured_output: false,
+ release_date: "2026-04-16",
+ last_updated: "2026-04-21",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.53, output: 2.73 },
+ limit: { context: 256000, output: 65536 },
+ },
+ "moonshotai/kimi-k2.6:thinking": {
+ id: "moonshotai/kimi-k2.6:thinking",
+ name: "Kimi K2.6 Thinking",
+ family: "kimi-thinking",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: false,
+ release_date: "2026-04-16",
+ last_updated: "2026-04-21",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.53, output: 2.73 },
+ limit: { context: 256000, output: 65536 },
+ },
+ "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-thinking": {
+ id: "moonshotai/kimi-k2-thinking",
+ name: "Kimi K2 Thinking",
+ family: "kimi-thinking",
+ attachment: false,
+ reasoning: false,
+ tool_call: true,
+ structured_output: true,
+ release_date: "2025-11-06",
+ last_updated: "2025-11-06",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.3, output: 1.2 },
+ limit: { context: 256000, input: 256000, output: 262144 },
+ },
+ "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 },
+ },
+ "Tongyi-Zhiwen/QwenLong-L1-32B": {
+ id: "Tongyi-Zhiwen/QwenLong-L1-32B",
+ name: "QwenLong L1 32B",
+ family: "qwen",
+ attachment: false,
+ reasoning: false,
+ tool_call: false,
+ structured_output: false,
+ release_date: "2025-01-25",
+ last_updated: "2025-01-25",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.13999999999999999, output: 0.6 },
+ limit: { context: 128000, input: 128000, output: 40960 },
+ },
+ "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 },
+ },
+ "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-02-01",
+ last_updated: "2025-02-01",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 3.995, output: 7.99 },
+ limit: { context: 65536, input: 65536, output: 8192 },
+ },
+ "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: "2024-07-23",
+ last_updated: "2024-07-23",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.2006, output: 0.2006 },
+ limit: { context: 32768, input: 32768, output: 16384 },
+ },
+ "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-02-20",
+ last_updated: "2025-02-20",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ 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",
+ name: "Tongyi DeepResearch 30B A3B",
+ family: "yi",
+ attachment: false,
+ reasoning: false,
+ tool_call: false,
+ structured_output: false,
+ release_date: "2025-08-26",
+ last_updated: "2025-08-26",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.08, output: 0.24000000000000002 },
+ limit: { context: 128000, input: 128000, 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 },
+ },
+ "anthropic/claude-opus-4.6:thinking:low": {
+ id: "anthropic/claude-opus-4.6:thinking:low",
+ name: "Claude 4.6 Opus Thinking Low",
+ 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",
+ 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: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,
+ 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: 2.992, output: 14.993999999999998 },
+ 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: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,
+ 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: 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: "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: 8192 },
+ },
+ "EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.0": {
+ id: "EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.0",
+ name: "EVA Llama 3.33 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: 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",
+ 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: 2.006, output: 2.006 },
+ limit: { context: 16384, input: 16384, output: 16384 },
+ },
+ "EVA-UNIT-01/EVA-Qwen2.5-32B-v0.2": {
+ id: "EVA-UNIT-01/EVA-Qwen2.5-32B-v0.2",
+ name: "EVA-Qwen2.5-32B-v0.2",
+ family: "qwen",
+ 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.7989999999999999, output: 0.7989999999999999 },
+ limit: { context: 16384, input: 16384, 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/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/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/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/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 },
+ },
+ },
+ },
+ 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.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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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-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 },
+ limit: { context: 200000, 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", "video", "audio", "pdf"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 2, output: 12 },
+ limit: { context: 1048576, output: 65536 },
+ },
+ "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 },
+ },
+ "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,
+ 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-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-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: 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 },
+ },
+ "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,
+ 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: 0.15, output: 8 },
+ limit: { context: 256000, 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 },
+ limit: { context: 200000, output: 128000 },
+ },
+ "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-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 },
+ },
+ 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 },
+ },
+ "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,
+ 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-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,
+ 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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ },
+ },
+ "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: "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: 0.25, output: 2.5 },
+ limit: { context: 1000000, output: 32000 },
+ },
+ "openai/gpt-5.5": {
+ id: "openai/gpt-5.5",
+ name: "GPT-5.5",
+ family: "gpt",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: false,
+ knowledge: "2025-12-01",
+ release_date: "2026-04-23",
+ last_updated: "2026-04-23",
+ modalities: { input: ["text", "image", "pdf"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 5, output: 30, cache_read: 0.5 },
+ 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 },
+ },
+ "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-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 },
+ limit: { context: 200000, output: 64000 },
+ },
+ "anthropic/claude-opus-4-7": {
+ id: "anthropic/claude-opus-4-7",
+ name: "Claude Opus 4.7",
+ family: "claude-opus",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: false,
+ knowledge: "2026-01-31",
+ release_date: "2026-04-16",
+ last_updated: "2026-04-16",
+ modalities: { input: ["text", "image", "pdf"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 5, output: 25, cache_read: 0.5 },
+ 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,
+ 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-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 },
+ 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/Qwen3.6-35B-A3B": {
+ id: "Qwen/Qwen3.6-35B-A3B",
+ name: "Qwen/Qwen3.6-35B-A3B",
+ family: "qwen",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ knowledge: "2025-04",
+ release_date: "2026-04-17",
+ last_updated: "2026-04-17",
+ modalities: { input: ["text", "image", "video"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.23, output: 1.86 },
+ 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.6": {
+ id: "Pro/moonshotai/Kimi-K2.6",
+ name: "Pro/moonshotai/Kimi-K2.6",
+ family: "kimi",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ structured_output: true,
+ temperature: true,
+ release_date: "2026-04-21",
+ last_updated: "2026-04-21",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.95, output: 4, cache_read: 0.16 },
+ 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,
+ interleaved: { field: "reasoning_content" },
+ structured_output: true,
+ temperature: true,
+ 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.25 },
+ 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.14, output: 0.28, cache_read: 0.028 },
+ limit: { context: 1000000, output: 384000 },
+ },
+ "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.14, output: 0.28, cache_read: 0.028 },
+ limit: { context: 1000000, output: 384000 },
+ },
+ "deepseek-v4-flash": {
+ id: "deepseek-v4-flash",
+ name: "DeepSeek V4 Flash",
+ family: "deepseek-flash",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-05",
+ release_date: "2026-04-24",
+ last_updated: "2026-04-24",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.14, output: 0.28, cache_read: 0.028 },
+ limit: { context: 1000000, output: 384000 },
+ },
+ "deepseek-v4-pro": {
+ id: "deepseek-v4-pro",
+ name: "DeepSeek V4 Pro",
+ family: "deepseek-thinking",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-05",
+ release_date: "2026-04-24",
+ last_updated: "2026-04-24",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 1.74, output: 3.48, cache_read: 0.145 },
+ limit: { context: 1000000, output: 384000 },
+ },
+ },
+ },
+ 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-r1": {
+ id: "deepseek/deepseek-r1",
+ name: "DeepSeek: R1",
+ family: "deepseek-thinking",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ structured_output: 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: 0.7, output: 2.5 },
+ limit: { context: 64000, output: 16000 },
+ },
+ "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/owl-alpha": {
+ id: "openrouter/owl-alpha",
+ name: "Owl Alpha",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: true,
+ release_date: "2026-04-28",
+ last_updated: "2026-04-30",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0, output: 0 },
+ limit: { context: 1048756, output: 262144 },
+ status: "alpha",
+ },
+ "openrouter/pareto-code": {
+ id: "openrouter/pareto-code",
+ name: "Pareto Code Router",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: true,
+ release_date: "2026-04-21",
+ last_updated: "2026-04-21",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ limit: { context: 200000, output: 200000 },
+ },
+ "openrouter/elephant-alpha": {
+ id: "openrouter/elephant-alpha",
+ name: "Elephant (free)",
+ family: "elephant",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: true,
+ release_date: "2026-04-13",
+ last_updated: "2026-04-13",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0, output: 0 },
+ limit: { context: 262144, output: 32768 },
+ },
+ "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-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": {
+ 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 },
+ },
+ "tencent/hy3-preview": {
+ id: "tencent/hy3-preview",
+ name: "Hy3 preview",
+ family: "Hy",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-04-20",
+ last_updated: "2026-04-20",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.066, output: 0.26, cache_read: 0.029, cache_write: 0.029 },
+ limit: { context: 256000, output: 64000 },
+ },
+ "poolside/laguna-m.1:free": {
+ id: "poolside/laguna-m.1:free",
+ name: "Laguna M.1",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ temperature: true,
+ release_date: "2026-04-28",
+ last_updated: "2026-04-28",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 },
+ limit: { context: 131072, output: 8192 },
+ },
+ "poolside/laguna-xs.2:free": {
+ id: "poolside/laguna-xs.2:free",
+ name: "Laguna XS.2",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ temperature: true,
+ release_date: "2026-04-28",
+ last_updated: "2026-04-28",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 },
+ 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-omni-30b-a3b-reasoning:free": {
+ id: "nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free",
+ name: "Nemotron 3 Nano Omni (free)",
+ family: "nemotron",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: true,
+ release_date: "2026-04-28",
+ last_updated: "2026-04-28",
+ modalities: { input: ["text", "image", "video", "audio"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0, output: 0 },
+ limit: { context: 256000, output: 65536 },
+ },
+ "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-edit-2": {
+ id: "inception/mercury-edit-2",
+ name: "Mercury Edit 2",
+ attachment: false,
+ reasoning: true,
+ tool_call: false,
+ temperature: true,
+ release_date: "2026-03-30",
+ last_updated: "2026-03-30",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.25, output: 0.75, cache_read: 0.025 },
+ limit: { context: 128000, output: 8192 },
+ },
+ "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 },
+ },
+ "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-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,
+ 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,
+ 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,
+ 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-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.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: 0.75, output: 4.5, cache_read: 0.075 },
+ 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/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-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: 0.2, output: 1.25, cache_read: 0.02 },
+ 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-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-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-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-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 },
+ },
+ "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-coder-plus": {
+ id: "qwen/qwen3-coder-plus",
+ name: "Qwen3 Coder Plus",
+ family: "qwen",
+ attachment: false,
+ reasoning: false,
+ tool_call: true,
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-04",
+ release_date: "2025-09-23",
+ last_updated: "2025-09-23",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.65, output: 3.25, cache_read: 0.13, cache_write: 0.8125 },
+ limit: { context: 1000000, 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,
+ 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/qwen-plus": {
+ id: "qwen/qwen-plus",
+ name: "Qwen: Qwen-Plus",
+ family: "qwen",
+ attachment: false,
+ reasoning: false,
+ tool_call: true,
+ structured_output: false,
+ 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.26, output: 0.78, cache_read: 0.052, cache_write: 0.325 },
+ limit: { context: 1000000, output: 32768 },
+ },
+ "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, cache_read: 0.0325, cache_write: 0.40625 },
+ 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: 1.2, output: 6, cache_read: 0.156, cache_write: 0.975 },
+ limit: { context: 262144, output: 32768 },
+ },
+ "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/qwen-3.6-27b": {
+ id: "qwen/qwen-3.6-27b",
+ name: "Qwen3.6 27B",
+ family: "qwen",
+ attachment: true,
+ reasoning: false,
+ tool_call: true,
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-04",
+ release_date: "2026-04-22",
+ last_updated: "2026-04-22",
+ modalities: { input: ["text", "image", "video"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.195, output: 1.56 },
+ limit: { context: 262144, output: 81920 },
+ },
+ "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-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, cache_read: 0.039, cache_write: 0.24375 },
+ 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/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/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-flash",
+ attachment: true,
+ reasoning: true,
+ tool_call: false,
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-01",
+ release_date: "2026-02-26",
+ last_updated: "2026-02-26",
+ modalities: { input: ["text", "image"], output: ["text", "image"] },
+ open_weights: false,
+ cost: { input: 0.5, output: 3 },
+ limit: { context: 65536, 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.6": {
+ id: "moonshotai/kimi-k2.6",
+ name: "Kimi K2.6",
+ family: "kimi",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_details" },
+ structured_output: true,
+ temperature: true,
+ release_date: "2026-04-20",
+ last_updated: "2026-04-20",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.95, output: 4, cache_read: 0.16 },
+ limit: { context: 262144, output: 262144 },
+ },
+ "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-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-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-opus-4.7": {
+ id: "anthropic/claude-opus-4.7",
+ name: "Claude Opus 4.7",
+ family: "claude-opus",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: false,
+ knowledge: "2026-01-31",
+ release_date: "2026-04-16",
+ last_updated: "2026-04-16",
+ 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-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.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-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,
+ knowledge: "2025-08-31",
+ 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 },
+ },
+ "deepseek/deepseek-v4-flash": {
+ id: "deepseek/deepseek-v4-flash",
+ name: "DeepSeek V4 Flash",
+ family: "deepseek-flash",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-05",
+ release_date: "2026-04-24",
+ last_updated: "2026-04-24",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.14, output: 0.28, cache_read: 0.028 },
+ limit: { context: 1048576, output: 393216 },
+ },
+ "deepseek/deepseek-v4-pro": {
+ id: "deepseek/deepseek-v4-pro",
+ name: "DeepSeek V4 Pro",
+ family: "deepseek-thinking",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-05",
+ release_date: "2026-04-24",
+ last_updated: "2026-04-24",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 1.74, output: 3.48, cache_read: 0.145 },
+ limit: { context: 1048576, output: 393216 },
+ },
+ "x-ai/grok-4.3": {
+ id: "x-ai/grok-4.3",
+ name: "Grok 4.3",
+ family: "grok",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: true,
+ release_date: "2026-05-01",
+ last_updated: "2026-05-01",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: false,
+ cost: {
+ input: 1.25,
+ output: 2.5,
+ cache_read: 0.2,
+ context_over_200k: { input: 2.5, output: 5, cache_read: 0.4 },
+ },
+ limit: { context: 1000000, output: 1000000 },
+ },
+ "openai/gpt-5.5": {
+ id: "openai/gpt-5.5",
+ name: "GPT-5.5",
+ family: "gpt",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: false,
+ knowledge: "2025-12-01",
+ release_date: "2026-04-23",
+ last_updated: "2026-04-23",
+ modalities: { input: ["text", "image", "pdf"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 5, output: 30, cache_read: 0.5, context_over_200k: { input: 10, output: 45, cache_read: 1 } },
+ limit: { context: 1050000, input: 922000, 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.5-pro": {
+ id: "openai/gpt-5.5-pro",
+ name: "GPT-5.5 Pro",
+ family: "gpt-pro",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: false,
+ knowledge: "2025-12-01",
+ release_date: "2026-04-23",
+ last_updated: "2026-04-23",
+ modalities: { input: ["text", "image", "pdf"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 30, output: 180, context_over_200k: { input: 60, output: 270 } },
+ limit: { context: 1050000, input: 922000, output: 128000 },
+ },
+ "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.125,
+ context_over_200k: { input: 2.5, output: 15, cache_read: 0.25 },
+ },
+ limit: { context: 1048576, output: 65536 },
+ },
+ "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 },
+ },
+ "xiaomi/mimo-v2.5-pro": {
+ id: "xiaomi/mimo-v2.5-pro",
+ name: "Xiaomi: MiMo-V2.5-Pro",
+ family: "mimo",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ temperature: true,
+ knowledge: "2024-12",
+ release_date: "2026-04-22",
+ last_updated: "2026-04-22",
+ 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: 131072 },
+ },
+ "xiaomi/mimo-v2-omni": {
+ id: "xiaomi/mimo-v2-omni",
+ name: "Xiaomi: MiMo-V2-Omni",
+ family: "mimo",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_details" },
+ 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: false,
+ cost: { input: 0.4, output: 2, cache_read: 0.08 },
+ limit: { context: 262144, output: 131072 },
+ },
+ "xiaomi/mimo-v2.5": {
+ id: "xiaomi/mimo-v2.5",
+ name: "Xiaomi: MiMo-V2.5",
+ family: "mimo",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_details" },
+ temperature: true,
+ knowledge: "2024-12",
+ release_date: "2026-04-22",
+ last_updated: "2026-04-22",
+ modalities: { input: ["text", "image", "audio", "video"], output: ["text"] },
+ open_weights: true,
+ cost: {
+ input: 0.4,
+ output: 2,
+ cache_read: 0.08,
+ context_over_200k: { input: 0.8, output: 4, cache_read: 0.16 },
+ },
+ limit: { context: 1048576, output: 131072 },
+ },
+ "xiaomi/mimo-v2-pro": {
+ id: "xiaomi/mimo-v2-pro",
+ name: "Xiaomi: MiMo-V2-Pro",
+ family: "mimo",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_details" },
+ temperature: true,
+ knowledge: "2024-12",
+ release_date: "2026-03-18",
+ last_updated: "2026-03-18",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 1, output: 3, cache_read: 0.2, context_over_200k: { input: 2, output: 6, cache_read: 0.4 } },
+ limit: { context: 1048576, output: 131072 },
+ },
+ "xiaomi/mimo-v2-flash": {
+ id: "xiaomi/mimo-v2-flash",
+ name: "Xiaomi: MiMo-V2-Flash",
+ family: "mimo",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_details" },
+ 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: 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,
+ 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/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/kimi-k2p6": {
+ id: "accounts/fireworks/models/kimi-k2p6",
+ name: "Kimi K2.6",
+ family: "kimi-thinking",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ temperature: true,
+ release_date: "2026-04-17",
+ last_updated: "2026-04-17",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.95, output: 4, cache_read: 0.16 },
+ limit: { context: 262000, output: 262000 },
+ },
+ "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/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,
+ 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/minimax-m2p7": {
+ id: "accounts/fireworks/models/minimax-m2p7",
+ name: "MiniMax-M2.7",
+ family: "minimax",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ temperature: true,
+ release_date: "2026-04-12",
+ last_updated: "2026-04-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-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-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",
+ 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/deepseek-v4-pro": {
+ id: "accounts/fireworks/models/deepseek-v4-pro",
+ name: "DeepSeek V4 Pro",
+ family: "deepseek-thinking",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-05",
+ release_date: "2026-04-24",
+ last_updated: "2026-04-24",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 1.74, output: 3.48, cache_read: 0.15 },
+ limit: { context: 1000000, output: 384000 },
+ },
+ },
+ },
+ "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: {
+ k2p6: {
+ id: "k2p6",
+ name: "Kimi K2.6",
+ family: "kimi-thinking",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-01",
+ release_date: "2026-04",
+ last_updated: "2026-04",
+ 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 },
+ },
+ 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 },
+ },
+ },
+ },
+ 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 },
+ },
+ },
+ },
+ "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-k2.5",
+ 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 },
+ },
+ "mimo-v2.5-pro": {
+ id: "mimo-v2.5-pro",
+ name: "MiMo V2.5 Pro",
+ family: "mimo-v2.5-pro",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ temperature: true,
+ knowledge: "2024-12",
+ release_date: "2026-04-22",
+ last_updated: "2026-04-22",
+ 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: 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-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: 32768 },
+ },
+ "mimo-v2-omni": {
+ id: "mimo-v2-omni",
+ name: "MiMo V2 Omni",
+ family: "mimo-v2-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: 128000 },
+ status: "deprecated",
+ },
+ "mimo-v2.5": {
+ id: "mimo-v2.5",
+ name: "MiMo V2.5",
+ family: "mimo-v2.5",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ temperature: true,
+ knowledge: "2024-12",
+ release_date: "2026-04-22",
+ last_updated: "2026-04-22",
+ modalities: { input: ["text", "image", "audio", "video"], output: ["text"] },
+ open_weights: true,
+ cost: {
+ input: 0.4,
+ output: 2,
+ cache_read: 0.08,
+ context_over_200k: { input: 0.8, output: 4, cache_read: 0.16 },
+ },
+ limit: { context: 1000000, output: 128000 },
+ },
+ "qwen3.6-plus": {
+ id: "qwen3.6-plus",
+ name: "Qwen3.6 Plus",
+ family: "qwen3.6",
+ attachment: true,
+ 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.5, output: 3, cache_read: 0.05, cache_write: 0.625 },
+ limit: { context: 262144, output: 65536 },
+ provider: { npm: "@ai-sdk/anthropic" },
+ },
+ "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: 202752, output: 32768 },
+ },
+ "deepseek-v4-flash": {
+ id: "deepseek-v4-flash",
+ name: "DeepSeek V4 Flash",
+ family: "deepseek-flash",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-05",
+ release_date: "2026-04-24",
+ last_updated: "2026-04-24",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.14, output: 0.28, cache_read: 0.0028 },
+ limit: { context: 1000000, output: 384000 },
+ },
+ "kimi-k2.6": {
+ id: "kimi-k2.6",
+ name: "Kimi K2.6",
+ family: "kimi-k2.6",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ temperature: true,
+ knowledge: "2024-10",
+ release_date: "2026-04-21",
+ last_updated: "2026-04-21",
+ modalities: { input: ["text", "image", "video"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.95, output: 4, cache_read: 0.16 },
+ limit: { context: 262144, output: 65536 },
+ },
+ "deepseek-v4-pro": {
+ id: "deepseek-v4-pro",
+ name: "DeepSeek V4 Pro",
+ family: "deepseek-thinking",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-05",
+ release_date: "2026-04-24",
+ last_updated: "2026-04-24",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 1.74, output: 3.48, cache_read: 0.0145 },
+ limit: { context: 1000000, output: 384000 },
+ },
+ "minimax-m2.5": {
+ id: "minimax-m2.5",
+ 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.3, output: 1.2, cache_read: 0.03 },
+ limit: { context: 204800, output: 65536 },
+ },
+ "mimo-v2-pro": {
+ id: "mimo-v2-pro",
+ name: "MiMo V2 Pro",
+ family: "mimo-v2-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: 128000 },
+ status: "deprecated",
+ },
+ "qwen3.5-plus": {
+ id: "qwen3.5-plus",
+ name: "Qwen3.5 Plus",
+ family: "qwen3.5",
+ attachment: true,
+ 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.2, output: 1.2, cache_read: 0.02, cache_write: 0.25 },
+ limit: { context: 262144, output: 65536 },
+ provider: { npm: "@ai-sdk/anthropic" },
+ },
+ },
+ },
+ "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: "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 },
+ },
+ "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 },
+ },
+ "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-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/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: 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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ },
+ },
+ "alibaba-cn": {
+ id: "alibaba-cn",
+ env: ["DASHSCOPE_API_KEY"],
+ npm: "@ai-sdk/openai-compatible",
+ api: "https://dashscope.aliyuncs.com/compatible-mode/v1",
+ name: "Alibaba (China)",
+ doc: "https://www.alibabacloud.com/help/en/model-studio/models",
+ models: {
+ "qwen3-235b-a22b": {
+ id: "qwen3-235b-a22b",
+ name: "Qwen3 235B-A22B",
+ 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.287, output: 1.147, reasoning: 2.868 },
+ limit: { context: 131072, output: 16384 },
+ },
+ "qwen-plus-character": {
+ id: "qwen-plus-character",
+ name: "Qwen Plus Character",
+ 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.115, output: 0.287 },
+ limit: { context: 32768, output: 4096 },
+ },
+ "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 },
+ },
+ "kimi-k2.5": {
+ id: "kimi-k2.5",
+ name: "Moonshot Kimi K2.5",
+ family: "kimi",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ structured_output: false,
+ 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.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",
+ family: "qwen",
+ attachment: false,
+ reasoning: false,
+ tool_call: true,
+ temperature: true,
+ knowledge: "2024-04",
+ release_date: "2025-05-08",
+ last_updated: "2025-05-08",
+ 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: 32768, output: 2048 },
+ },
+ "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,
+ 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.861 },
+ limit: { context: 4096, output: 3072 },
+ },
+ "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,
+ 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 },
+ },
+ "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.287, output: 1.147, reasoning: 2.868 },
+ 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.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: "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 },
+ },
+ "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",
+ 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.058, output: 0.23, input_audio: 3.584, output_audio: 7.168 },
+ 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.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: 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.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.574, output: 2.294 },
+ limit: { context: 131072, output: 16384 },
+ },
+ "qwen3.5-flash": {
+ id: "qwen3.5-flash",
+ name: "Qwen3.5 Flash",
+ family: "qwen",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-04",
+ release_date: "2026-02-23",
+ last_updated: "2026-02-23",
+ modalities: { input: ["text", "image", "video"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.172, output: 1.72, reasoning: 1.72 },
+ limit: { context: 1000000, output: 65536 },
+ },
+ "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.276, output: 1.651, cache_read: 0.028, cache_write: 0.344 },
+ limit: { context: 1000000, output: 65536 },
+ },
+ "qwen3-max": {
+ id: "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: 0.861, output: 3.441 },
+ limit: { context: 262144, output: 65536 },
+ },
+ "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-04-14",
+ last_updated: "2026-04-14",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.87, output: 3.48, cache_read: 0.17 },
+ limit: { context: 202752, output: 128000 },
+ },
+ "qwen3-omni-flash": {
+ id: "qwen3-omni-flash",
+ name: "Qwen3-Omni Flash",
+ family: "qwen",
+ attachment: false,
+ reasoning: true,
+ 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.058, output: 0.23, input_audio: 3.584, output_audio: 7.168 },
+ limit: { context: 65536, output: 16384 },
+ },
+ "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 },
+ },
+ "qwen2-5-72b-instruct": {
+ id: "qwen2-5-72b-instruct",
+ name: "Qwen2.5 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: 131072, output: 8192 },
+ },
+ "qwen3-vl-235b-a22b": {
+ id: "qwen3-vl-235b-a22b",
+ name: "Qwen3-VL 235B-A22B",
+ 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.286705, output: 1.14682, reasoning: 2.867051 },
+ limit: { context: 131072, output: 32768 },
+ },
+ "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 },
+ },
+ "qwen2-5-coder-32b-instruct": {
+ id: "qwen2-5-coder-32b-instruct",
+ name: "Qwen2.5-Coder 32B 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.287, output: 0.861 },
+ limit: { context: 131072, output: 8192 },
+ },
+ "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-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: 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 },
+ },
+ "kimi-k2.6": {
+ id: "kimi-k2.6",
+ name: "Moonshot Kimi K2.6",
+ family: "kimi",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ structured_output: false,
+ temperature: true,
+ knowledge: "2025-01",
+ release_date: "2026-04-21",
+ last_updated: "2026-04-21",
+ modalities: { input: ["text", "image", "video"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.929, output: 3.858 },
+ limit: { context: 262144, 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 },
+ },
+ "qwen3.6-max-preview": {
+ id: "qwen3.6-max-preview",
+ name: "Qwen3.6 Max Preview",
+ family: "qwen",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: true,
+ release_date: "2026-04-20",
+ last_updated: "2026-04-21",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 1.32, output: 7.9, cache_read: 0.132 },
+ limit: { context: 245800, output: 65536 },
+ },
+ "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",
+ name: "kimi/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-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 },
+ },
+ "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 },
+ },
+ "siliconflow/deepseek-v3-0324": {
+ id: "siliconflow/deepseek-v3-0324",
+ name: "siliconflow/deepseek-v3-0324",
+ 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: 163840, output: 163840 },
+ },
+ "siliconflow/deepseek-v3.2": {
+ id: "siliconflow/deepseek-v3.2",
+ name: "siliconflow/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: 163840, output: 65536 },
+ },
+ "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 },
+ },
+ "deepseek-v4-flash": {
+ id: "deepseek-v4-flash",
+ name: "DeepSeek V4 Flash",
+ family: "deepseek-flash",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-05",
+ release_date: "2026-04-24",
+ last_updated: "2026-04-24",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.14, output: 0.28, cache_read: 0.028 },
+ limit: { context: 1000000, output: 384000 },
+ },
+ "deepseek-v4-pro": {
+ id: "deepseek-v4-pro",
+ name: "DeepSeek V4 Pro",
+ family: "deepseek-thinking",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-05",
+ release_date: "2026-04-24",
+ last_updated: "2026-04-24",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 1.74, output: 3.48, cache_read: 0.145 },
+ limit: { context: 1000000, output: 384000 },
+ },
+ },
+ },
+ firepass: {
+ id: "firepass",
+ env: ["FIREPASS_API_KEY"],
+ npm: "@ai-sdk/openai-compatible",
+ api: "https://api.fireworks.ai/inference/v1/",
+ name: "Fireworks (Firepass)",
+ doc: "https://docs.fireworks.ai/firepass",
+ models: {
+ "accounts/fireworks/routers/kimi-k2p6-turbo": {
+ id: "accounts/fireworks/routers/kimi-k2p6-turbo",
+ name: "Kimi K2.6 Turbo",
+ family: "kimi-thinking",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ temperature: true,
+ release_date: "2026-04-17",
+ last_updated: "2026-04-17",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0, output: 0, cache_read: 0 },
+ limit: { context: 262000, output: 262000 },
+ },
+ },
+ },
+ "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,
+ 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 },
+ },
+ },
+ },
+ 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,
+ knowledge: "2025-05-31",
+ 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.6": {
+ id: "moonshotai/Kimi-K2.6",
+ name: "Kimi-K2.6",
+ family: "kimi",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ temperature: true,
+ knowledge: "2025-01",
+ release_date: "2026-04-20",
+ last_updated: "2026-04-20",
+ modalities: { input: ["text", "image", "video"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.95, output: 4, cache_read: 0.16 },
+ 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.7": {
+ id: "MiniMaxAI/MiniMax-M2.7",
+ name: "MiniMax-M2.7",
+ family: "minimax",
+ 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 },
+ },
+ "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-V4-Pro": {
+ id: "deepseek-ai/DeepSeek-V4-Pro",
+ name: "DeepSeek V4 Pro",
+ family: "deepseek-thinking",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-05",
+ release_date: "2026-04-24",
+ last_updated: "2026-04-24",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 1.74, output: 3.48, cache_read: 0.145 },
+ limit: { context: 1048576, output: 393216 },
+ },
+ },
+ },
+ 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.6": {
+ id: "moonshotai/kimi-k2.6",
+ name: "Kimi K2.6",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ temperature: false,
+ knowledge: "2025-01-01",
+ release_date: "2026-04-20",
+ last_updated: "2026-04-20",
+ modalities: { input: ["text", "image", "video"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.95, output: 4, cache_read: 0.16 },
+ limit: { context: 262140, output: 262140 },
+ },
+ "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-05-31",
+ 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-opus-4.7": {
+ id: "anthropic/claude-opus-4.7",
+ name: "Claude Opus 4.7",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: false,
+ knowledge: "2026-01-31",
+ release_date: "2026-04-16",
+ last_updated: "2026-04-16",
+ 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", 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-08-31",
+ 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" },
+ },
+ "deepseek/deepseek-v4-flash": {
+ id: "deepseek/deepseek-v4-flash",
+ name: "DeepSeek V4 Flash",
+ family: "deepseek-flash",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-05",
+ release_date: "2026-04-24",
+ last_updated: "2026-04-24",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.14, output: 0.28, cache_read: 0.028 },
+ limit: { context: 1000000, output: 384000 },
+ },
+ "deepseek/deepseek-v4-pro": {
+ id: "deepseek/deepseek-v4-pro",
+ name: "DeepSeek V4 Pro",
+ family: "deepseek-thinking",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-05",
+ release_date: "2026-04-24",
+ last_updated: "2026-04-24",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 1.74, output: 3.48, cache_read: 0.145 },
+ limit: { context: 1000000, output: 384000 },
+ },
+ "tencent/hy3-preview": {
+ id: "tencent/hy3-preview",
+ name: "Hy3 preview",
+ family: "Hy",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-04-20",
+ last_updated: "2026-04-20",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.172, output: 0.572, cache_read: 0.058, cache_write: 0 },
+ limit: { context: 256000, output: 64000 },
+ },
+ "openai/gpt-5.5": {
+ id: "openai/gpt-5.5",
+ name: "GPT-5.5",
+ family: "gpt",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: false,
+ knowledge: "2025-12-01",
+ release_date: "2026-04-23",
+ last_updated: "2026-04-23",
+ modalities: { input: ["text", "image", "pdf"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 5, output: 30, cache_read: 0.5, context_over_200k: { input: 10, output: 45, cache_read: 1 } },
+ limit: { context: 1050000, input: 922000, output: 128000 },
+ experimental: {
+ modes: {
+ fast: {
+ cost: { input: 12.5, output: 75, cache_read: 1.25 },
+ provider: { body: { service_tier: "priority" } },
+ },
+ },
+ },
+ },
+ "openai/gpt-5.5-pro": {
+ id: "openai/gpt-5.5-pro",
+ name: "GPT-5.5 Pro",
+ family: "gpt-pro",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: false,
+ knowledge: "2025-12-01",
+ release_date: "2026-04-23",
+ last_updated: "2026-04-23",
+ modalities: { input: ["text", "image", "pdf"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 30, output: 180, context_over_200k: { input: 60, output: 270 } },
+ limit: { context: 1050000, input: 922000, output: 128000 },
+ },
+ "xiaomi/mimo-v2.5-pro": {
+ id: "xiaomi/mimo-v2.5-pro",
+ name: "MiMo-V2.5-Pro",
+ family: "mimo",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ temperature: true,
+ knowledge: "2024-12",
+ release_date: "2026-04-22",
+ last_updated: "2026-04-22",
+ 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: 131072 },
+ },
+ "xiaomi/mimo-v2-omni": {
+ id: "xiaomi/mimo-v2-omni",
+ name: "MiMo V2 Omni",
+ family: "mimo",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ 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: false,
+ cost: { input: 0.4, output: 2, cache_read: 0.08 },
+ limit: { context: 265000, output: 265000 },
+ },
+ "xiaomi/mimo-v2.5": {
+ id: "xiaomi/mimo-v2.5",
+ name: "MiMo-V2.5",
+ family: "mimo",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ temperature: true,
+ knowledge: "2024-12",
+ release_date: "2026-04-22",
+ last_updated: "2026-04-22",
+ modalities: { input: ["text", "image", "audio", "video"], output: ["text"] },
+ open_weights: true,
+ cost: {
+ input: 0.4,
+ output: 2,
+ cache_read: 0.08,
+ context_over_200k: { input: 0.8, output: 4, cache_read: 0.16 },
+ },
+ limit: { context: 1048576, output: 131072 },
+ },
+ "xiaomi/mimo-v2-pro": {
+ id: "xiaomi/mimo-v2-pro",
+ name: "MiMo V2 Pro",
+ family: "mimo",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ knowledge: "2024-12",
+ release_date: "2026-03-18",
+ last_updated: "2026-03-18",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 1, output: 3, cache_read: 0.2, context_over_200k: { input: 2, output: 6, cache_read: 0.4 } },
+ limit: { context: 1000000, output: 256000 },
+ },
+ "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-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: 262144, output: 65536 },
+ },
+ },
+ },
+ 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-r1-distill-qwen-32b": {
+ id: "deepseek/deepseek-r1-distill-qwen-32b",
+ name: "DeepSeek R1 Distill Qwen 32B",
+ family: "deepseek-thinking",
+ attachment: false,
+ reasoning: true,
+ tool_call: false,
+ structured_output: true,
+ temperature: true,
+ 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: 64000, 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-distill-qwen-14b": {
+ id: "deepseek/deepseek-r1-distill-qwen-14b",
+ name: "DeepSeek R1 Distill Qwen 14B",
+ family: "deepseek-thinking",
+ attachment: false,
+ reasoning: true,
+ tool_call: false,
+ structured_output: true,
+ temperature: true,
+ release_date: "2025-01-20",
+ last_updated: "2025-01-20",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.15, output: 0.15 },
+ limit: { context: 32768, output: 16384 },
+ },
+ "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 },
+ },
+ "inclusionai/ling-2.6-1t": {
+ id: "inclusionai/ling-2.6-1t",
+ name: "Ling-2.6-1T",
+ family: "ling",
+ attachment: false,
+ reasoning: false,
+ tool_call: true,
+ structured_output: true,
+ temperature: true,
+ release_date: "2026-04-23",
+ last_updated: "2026-04-23",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0, output: 0 },
+ limit: { context: 262144, 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.2-3b-instruct": {
+ id: "meta-llama/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 },
+ },
+ "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.6-27b": {
+ id: "qwen/qwen3.6-27b",
+ name: "Qwen3.6-27B",
+ family: "qwen3.6",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ 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.6, output: 3.6 },
+ 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-12b-it": {
+ id: "google/gemma-3-12b-it",
+ name: "Gemma 3 12B",
+ 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.05, output: 0.1 },
+ limit: { context: 131072, 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,
+ 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.6": {
+ id: "moonshotai/kimi-k2.6",
+ name: "Kimi K2.6",
+ family: "kimi",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-01",
+ release_date: "2026-04-21",
+ last_updated: "2026-04-21",
+ modalities: { input: ["text", "image", "video"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.95, output: 4, cache_read: 0.16 },
+ 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 },
+ },
+ "deepseek/deepseek-v4-flash": {
+ id: "deepseek/deepseek-v4-flash",
+ name: "DeepSeek V4 Flash",
+ family: "deepseek-flash",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-05",
+ release_date: "2026-04-24",
+ last_updated: "2026-04-24",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.14, output: 0.28, cache_read: 0.028 },
+ limit: { context: 1048576, output: 393216 },
+ },
+ "deepseek/deepseek-v4-pro": {
+ id: "deepseek/deepseek-v4-pro",
+ name: "DeepSeek V4 Pro",
+ family: "deepseek-thinking",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-05",
+ release_date: "2026-04-24",
+ last_updated: "2026-04-24",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 1.69, output: 3.38, cache_read: 0.13 },
+ limit: { context: 1048576, output: 393216 },
+ },
+ },
+ },
+ "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-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: 8192, output: 16384 },
+ },
+ "mimo-v2.5-pro": {
+ id: "mimo-v2.5-pro",
+ name: "MiMo-V2.5-Pro",
+ family: "mimo",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ temperature: true,
+ knowledge: "2024-12",
+ release_date: "2026-04-22",
+ last_updated: "2026-04-22",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0, output: 0, cache_read: 0, context_over_200k: { input: 0, output: 0, cache_read: 0 } },
+ limit: { context: 1048576, output: 131072 },
+ },
+ "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: false,
+ cost: { input: 0, output: 0, cache_read: 0 },
+ limit: { context: 262144, output: 131072 },
+ },
+ "mimo-v2.5": {
+ id: "mimo-v2.5",
+ name: "MiMo-V2.5",
+ family: "mimo",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ temperature: true,
+ knowledge: "2024-12",
+ release_date: "2026-04-22",
+ last_updated: "2026-04-22",
+ modalities: { input: ["text", "image", "audio", "video"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0, output: 0, cache_read: 0, context_over_200k: { input: 0, output: 0, cache_read: 0 } },
+ limit: { context: 1048576, output: 131072 },
+ },
+ "mimo-v2-pro": {
+ id: "mimo-v2-pro",
+ name: "MiMo-V2-Pro",
+ family: "mimo",
+ attachment: false,
+ 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: false,
+ cost: { input: 0, output: 0, cache_read: 0, context_over_200k: { input: 2, output: 6, cache_read: 0.4 } },
+ limit: { context: 1048576, output: 131072 },
+ },
+ "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, output: 0, cache_read: 0 },
+ limit: { context: 262144, 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: {
+ "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 },
+ },
+ "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: false,
+ cost: { input: 1.4, output: 4.4, cache_read: 0.26, cache_write: 0 },
+ limit: { context: 200000, output: 131072 },
+ },
+ },
+ },
+ chutes: {
+ id: "chutes",
+ env: ["CHUTES_API_KEY"],
+ npm: "@ai-sdk/openai-compatible",
+ api: "https://llm.chutes.ai/v1",
+ name: "Chutes",
+ doc: "https://llm.chutes.ai/v1/models",
+ models: {
+ "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,
+ 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-Air": {
+ id: "zai-org/GLM-4.5-Air",
+ name: "GLM 4.5 Air",
+ 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.05, output: 0.22 },
+ limit: { context: 131072, output: 131072 },
+ },
+ "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,
+ 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-5-TEE": {
+ id: "zai-org/GLM-5-TEE",
+ name: "GLM 5 TEE",
+ family: "glm",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ structured_output: true,
+ temperature: true,
+ release_date: "2026-02-14",
+ last_updated: "2026-02-14",
+ 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.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",
+ 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", "image"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.3, output: 0.9, cache_read: 0.15 },
+ limit: { context: 131072, output: 65536 },
+ },
+ "zai-org/GLM-5-Turbo": {
+ id: "zai-org/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-11",
+ last_updated: "2026-03-11",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.49, output: 1.96, cache_read: 0.245 },
+ 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 },
+ },
+ "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: false,
+ tool_call: true,
+ structured_output: true,
+ temperature: true,
+ release_date: "2026-01-10",
+ last_updated: "2026-01-10",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.05, output: 0.22 },
+ limit: { context: 262144, output: 65536 },
+ },
+ "XiaomiMiMo/MiMo-V2-Flash": {
+ id: "XiaomiMiMo/MiMo-V2-Flash",
+ name: "MiMo V2 Flash",
+ family: "mimo",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ structured_output: false,
+ temperature: true,
+ release_date: "2025-12-29",
+ last_updated: "2026-01-27",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.09, output: 0.29 },
+ limit: { context: 262144, output: 32000 },
+ },
+ "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: 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.06, output: 0.18 },
+ limit: { context: 131072, output: 131072 },
+ },
+ "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: 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.03, output: 0.11, cache_read: 0.015 },
+ limit: { context: 131072, output: 131072 },
+ },
+ "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 },
+ },
+ "deepseek-ai/DeepSeek-R1-TEE": {
+ id: "deepseek-ai/DeepSeek-R1-TEE",
+ name: "DeepSeek R1 TEE",
+ family: "deepseek-thinking",
+ 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 },
+ },
+ "deepseek-ai/DeepSeek-V3": {
+ id: "deepseek-ai/DeepSeek-V3",
+ name: "DeepSeek V3",
+ family: "deepseek",
+ 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.3, output: 1.2 },
+ limit: { context: 163840, output: 163840 },
+ },
+ "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: 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.03, output: 0.11 },
+ limit: { context: 131072, output: 131072 },
+ },
+ "deepseek-ai/DeepSeek-V3.1-TEE": {
+ id: "deepseek-ai/DeepSeek-V3.1-TEE",
+ name: "DeepSeek V3.1 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.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",
+ family: "deepseek-thinking",
+ 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.75 },
+ limit: { context: 163840, output: 65536 },
+ },
+ "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,
+ 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/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",
+ 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"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.02, output: 0.04, cache_read: 0.01 },
+ limit: { context: 131072, output: 131072 },
+ },
+ "unsloth/Mistral-Small-24B-Instruct-2501": {
+ id: "unsloth/Mistral-Small-24B-Instruct-2501",
+ name: "Mistral Small 24B Instruct 2501",
+ family: "unsloth",
+ 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.03, output: 0.11 },
+ limit: { context: 32768, output: 32768 },
+ },
+ "unsloth/gemma-3-27b-it": {
+ id: "unsloth/gemma-3-27b-it",
+ name: "gemma 3 27b it",
+ family: "unsloth",
+ 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.04, output: 0.15, cache_read: 0.02 },
+ limit: { context: 128000, output: 65536 },
+ },
+ "moonshotai/Kimi-K2-Thinking-TEE": {
+ id: "moonshotai/Kimi-K2-Thinking-TEE",
+ name: "Kimi K2 Thinking TEE",
+ family: "kimi-thinking",
+ 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.75 },
+ limit: { context: 262144, output: 65535 },
+ },
+ "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,
+ release_date: "2025-12-29",
+ last_updated: "2026-01-10",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.39, output: 1.9, cache_read: 0.195 },
+ limit: { context: 262144, output: 262144 },
+ },
+ "moonshotai/Kimi-K2.6-TEE": {
+ id: "moonshotai/Kimi-K2.6-TEE",
+ name: "Kimi K2.6 TEE",
+ family: "kimi",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-12",
+ release_date: "2026-04-20",
+ last_updated: "2026-04-23",
+ modalities: { input: ["text", "image", "video"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.44, output: 2 },
+ limit: { context: 262144, output: 262144 },
+ },
+ "moonshotai/Kimi-K2.5-TEE": {
+ id: "moonshotai/Kimi-K2.5-TEE",
+ name: "Kimi K2.5 TEE",
+ family: "kimi",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ structured_output: true,
+ 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 },
+ limit: { context: 262144, output: 65535 },
+ },
+ "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 },
+ },
+ "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: "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 },
+ },
+ "rednote-hilab/dots.ocr": {
+ id: "rednote-hilab/dots.ocr",
+ name: "dots.ocr",
+ family: "rednote",
+ 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.01, cache_read: 0.005 },
+ limit: { context: 131072, output: 131072 },
+ },
+ "tngtech/TNG-R1T-Chimera-Turbo": {
+ id: "tngtech/TNG-R1T-Chimera-Turbo",
+ name: "TNG R1T Chimera Turbo",
+ 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.22, output: 0.6 },
+ limit: { context: 163840, output: 65536 },
+ },
+ "tngtech/DeepSeek-TNG-R1T2-Chimera": {
+ id: "tngtech/DeepSeek-TNG-R1T2-Chimera",
+ name: "DeepSeek TNG R1T2 Chimera",
+ family: "tngtech",
+ 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.25, output: 0.85 },
+ limit: { context: 163840, output: 163840 },
+ },
+ "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 },
+ },
+ "tngtech/TNG-R1T-Chimera-TEE": {
+ id: "tngtech/TNG-R1T-Chimera-TEE",
+ name: "TNG R1T Chimera TEE",
+ family: "tngtech",
+ 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.25, output: 0.85 },
+ limit: { context: 163840, output: 65536 },
+ },
+ },
+ },
+ 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: {
+ "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-22",
+ last_updated: "2025-12-22",
+ 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,
+ release_date: "2026-02-11",
+ last_updated: "2026-02-11",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.75, output: 2.4 },
+ limit: { context: 200000, output: 128000 },
+ },
+ "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.25, output: 3.89 },
+ limit: { context: 200000, 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.22, output: 0.88 },
+ limit: { context: 200000, output: 32000 },
+ },
+ },
+ },
+ 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" },
+ },
+ "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 },
+ },
+ "gpt-5.5": {
+ id: "gpt-5.5",
+ name: "GPT-5.5",
+ family: "gpt",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: false,
+ knowledge: "2025-12-01",
+ release_date: "2026-04-23",
+ last_updated: "2026-04-23",
+ modalities: { input: ["text", "image", "pdf"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 5, output: 30, cache_read: 0.5, context_over_200k: { input: 10, output: 45, cache_read: 1 } },
+ limit: { context: 1050000, input: 922000, output: 128000 },
+ provider: { npm: "@ai-sdk/openai-compatible" },
+ },
+ "deepseek-v4-pro": {
+ id: "deepseek-v4-pro",
+ name: "DeepSeek V4 Pro",
+ family: "deepseek-thinking",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-05",
+ release_date: "2026-04-24",
+ last_updated: "2026-04-24",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 1.74, output: 3.48, cache_read: 0.145 },
+ limit: { context: 1000000, output: 384000 },
+ provider: { npm: "@ai-sdk/openai-compatible" },
+ },
+ },
+ },
+ deepinfra: {
+ id: "deepinfra",
+ env: ["DEEPINFRA_API_KEY"],
+ npm: "@ai-sdk/deepinfra",
+ name: "Deep Infra",
+ doc: "https://deepinfra.com/models",
+ models: {
+ "Qwen/Qwen3.5-397B-A17B": {
+ id: "Qwen/Qwen3.5-397B-A17B",
+ name: "Qwen 3.5 397B A17B",
+ family: "qwen",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ knowledge: "2025-01",
+ release_date: "2026-02-01",
+ last_updated: "2026-04-20",
+ modalities: { input: ["text", "image", "video"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.54, output: 3.4 },
+ limit: { context: 262144, output: 81920 },
+ },
+ "Qwen/Qwen3.5-35B-A3B": {
+ id: "Qwen/Qwen3.5-35B-A3B",
+ name: "Qwen 3.5 35B A3B",
+ family: "qwen",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ knowledge: "2025-01",
+ release_date: "2026-02-01",
+ last_updated: "2026-04-20",
+ modalities: { input: ["text", "image", "video"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.2, output: 0.95 },
+ limit: { context: 262144, output: 81920 },
+ },
+ "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 },
+ },
+ "Qwen/Qwen3.6-35B-A3B": {
+ id: "Qwen/Qwen3.6-35B-A3B",
+ name: "Qwen3.6 35B A3B",
+ family: "qwen",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-04-01",
+ last_updated: "2026-04-01",
+ modalities: { input: ["text", "image", "video"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.2, output: 1 },
+ limit: { context: 262144, output: 81920 },
+ },
+ "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",
+ 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.6": {
+ id: "moonshotai/Kimi-K2.6",
+ name: "Kimi K2.6",
+ family: "kimi",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ structured_output: true,
+ temperature: true,
+ knowledge: "2024-04",
+ release_date: "2026-04-21",
+ last_updated: "2026-04-21",
+ modalities: { input: ["text", "image", "video"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.75, output: 3.5, cache_read: 0.15 },
+ limit: { context: 262144, output: 16384 },
+ },
+ "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 },
+ },
+ "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.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 },
+ },
+ "deepseek-ai/DeepSeek-V4-Flash": {
+ id: "deepseek-ai/DeepSeek-V4-Flash",
+ name: "DeepSeek V4 Flash",
+ family: "deepseek-flash",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-05",
+ release_date: "2026-04-24",
+ last_updated: "2026-04-24",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.14, output: 0.28, cache_read: 0.028 },
+ limit: { context: 1000000, output: 384000 },
+ },
+ "deepseek-ai/DeepSeek-V4-Pro": {
+ id: "deepseek-ai/DeepSeek-V4-Pro",
+ name: "DeepSeek V4 Pro",
+ family: "deepseek-thinking",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-05",
+ release_date: "2026-04-24",
+ last_updated: "2026-04-24",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 1.74, output: 3.48, cache_read: 0.145 },
+ limit: { context: 65536, output: 65536 },
+ },
+ "google/gemma-4-26B-A4B-it": {
+ id: "google/gemma-4-26B-A4B-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,
+ cost: { input: 0.07, output: 0.34 },
+ limit: { context: 256000, output: 8192 },
+ },
+ "google/gemma-4-31B-it": {
+ id: "google/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,
+ cost: { input: 0.13, output: 0.38 },
+ limit: { context: 256000, output: 8192 },
+ },
+ },
+ },
+ "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: 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 },
+ },
+ "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: 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 },
+ },
+ "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 },
+ },
+ "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: "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 },
+ },
+ "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 },
+ },
+ "mimo-v2-flash": {
+ id: "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-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: 256000 },
+ },
+ "xiaomi/mimo-v2-flash": {
+ id: "xiaomi/mimo-v2-flash",
+ name: "Xiaomi/Mimo-V2-Flash",
+ family: "mimo",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ 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: 256000 },
+ },
+ },
+ },
+ 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: {
+ "rekaai/reka-edge": {
+ id: "rekaai/reka-edge",
+ name: "Reka Edge",
+ attachment: true,
+ reasoning: false,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-03-20",
+ last_updated: "2026-04-11",
+ modalities: { input: ["image", "text", "video"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.1, output: 0.1 },
+ limit: { context: 16384, output: 16384 },
+ },
+ "rekaai/reka-flash-3": {
+ id: "rekaai/reka-flash-3",
+ name: "Reka Flash 3",
+ attachment: false,
+ reasoning: true,
+ tool_call: false,
+ temperature: true,
+ release_date: "2025-03-12",
+ last_updated: "2026-04-11",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.1, output: 0.2 },
+ limit: { context: 65536, output: 65536 },
+ },
+ "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/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.1-8b": {
+ id: "ibm-granite/granite-4.1-8b",
+ name: "IBM: Granite 4.1 8B",
+ attachment: false,
+ reasoning: false,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-04-30",
+ last_updated: "2026-05-01",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.05, output: 0.1, cache_read: 0.05 },
+ limit: { context: 131072, output: 131072 },
+ },
+ "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-v4-flash": {
+ id: "deepseek/deepseek-v4-flash",
+ name: "DeepSeek: DeepSeek V4 Flash",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-04-24",
+ last_updated: "2026-05-01",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.14, output: 0.28, cache_read: 0.0028 },
+ limit: { context: 1048576, output: 384000 },
+ },
+ "deepseek/deepseek-v4-pro": {
+ id: "deepseek/deepseek-v4-pro",
+ name: "DeepSeek: DeepSeek V4 Pro",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-04-24",
+ last_updated: "2026-05-01",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.435, output: 0.87, cache_read: 0.003625 },
+ limit: { context: 1048576, output: 384000 },
+ },
+ "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/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/owl-alpha": {
+ id: "openrouter/owl-alpha",
+ name: "Owl Alpha",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: true,
+ release_date: "2026-04-28",
+ last_updated: "2026-04-30",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0, output: 0 },
+ limit: { context: 1048756, output: 262144 },
+ status: "alpha",
+ },
+ "openrouter/pareto-code": {
+ id: "openrouter/pareto-code",
+ name: "Pareto Code Router",
+ attachment: false,
+ reasoning: false,
+ tool_call: false,
+ temperature: false,
+ release_date: "2026-04-21",
+ last_updated: "2026-05-01",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0, output: 0 },
+ limit: { context: 200000, output: 65536 },
+ },
+ "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 },
+ },
+ "inclusionai/ling-2.6-1t:free": {
+ id: "inclusionai/ling-2.6-1t:free",
+ name: "inclusionAI: Ling-2.6-1T (free)",
+ attachment: false,
+ reasoning: false,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-04-23",
+ last_updated: "2026-05-01",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0, output: 0 },
+ limit: { context: 262144, output: 32768 },
+ },
+ "inclusionai/ling-2.6-flash": {
+ id: "inclusionai/ling-2.6-flash",
+ name: "inclusionAI: Ling-2.6 Flash",
+ attachment: false,
+ reasoning: false,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-04-21",
+ last_updated: "2026-05-01",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.08, output: 0.24, cache_read: 0.016 },
+ limit: { context: 262144, 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/trinity-large-thinking": {
+ id: "arcee-ai/trinity-large-thinking",
+ name: "Arcee AI: Trinity Large Thinking",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-04-01",
+ last_updated: "2026-04-11",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.22, output: 0.85 },
+ limit: { context: 262144, output: 262144 },
+ },
+ "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/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/trinity-large-preview": {
+ id: "arcee-ai/trinity-large-preview",
+ name: "Arcee AI: Trinity Large Preview",
+ attachment: false,
+ reasoning: false,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-01-28",
+ last_updated: "2026-05-01",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.15, output: 0.45 },
+ limit: { context: 131000, 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 },
+ },
+ "~google/gemini-pro-latest": {
+ id: "~google/gemini-pro-latest",
+ name: "Google: Gemini Pro Latest",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-04-27",
+ last_updated: "2026-05-01",
+ modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 2, output: 12, cache_read: 0.2, cache_write: 0.375 },
+ limit: { context: 1048576, output: 65536 },
+ },
+ "~google/gemini-flash-latest": {
+ id: "~google/gemini-flash-latest",
+ name: "Google: Gemini Flash Latest",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-04-27",
+ last_updated: "2026-05-01",
+ modalities: { input: ["text", "image", "audio", "video", "pdf"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.5, output: 3, cache_read: 0.05, cache_write: 0.08333333333333334 },
+ limit: { context: 1048576, output: 65536 },
+ },
+ "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-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 },
+ },
+ "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 },
+ },
+ "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: "2025-08-26",
+ last_updated: "2026-05-01",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0, output: 0 },
+ limit: { context: 262144, output: 262144 },
+ },
+ "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/mistral-medium-3-5": {
+ id: "mistralai/mistral-medium-3-5",
+ name: "Mistral: Mistral Medium 3.5",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: true,
+ release_date: "2026-04-30",
+ last_updated: "2026-05-07",
+ modalities: { input: ["image", "text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 1.5, output: 7.5 },
+ limit: { context: 262144, output: 262144 },
+ },
+ "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.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/mistral-small-2603": {
+ id: "mistralai/mistral-small-2603",
+ name: "Mistral: Mistral Small 4",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-03-16",
+ last_updated: "2026-04-11",
+ modalities: { input: ["image", "text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.15, output: 0.6, cache_read: 0.015 },
+ limit: { context: 262144, output: 262144 },
+ },
+ "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/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 },
+ },
+ "~anthropic/claude-haiku-latest": {
+ id: "~anthropic/claude-haiku-latest",
+ name: "Anthropic: Claude Haiku Latest",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-04-27",
+ last_updated: "2026-05-01",
+ 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-latest": {
+ id: "~anthropic/claude-sonnet-latest",
+ name: "Anthropic: Claude Sonnet Latest",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-04-27",
+ last_updated: "2026-05-01",
+ 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: 128000 },
+ },
+ "~anthropic/claude-opus-latest": {
+ id: "~anthropic/claude-opus-latest",
+ name: "Anthropic: Claude Opus Latest",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: false,
+ release_date: "2026-04-16",
+ last_updated: "2026-05-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: 1000000, output: 128000 },
+ },
+ "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.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 },
+ },
+ "x-ai/grok-4.20": {
+ id: "x-ai/grok-4.20",
+ name: "xAI: Grok 4.20",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-03-31",
+ last_updated: "2026-04-11",
+ modalities: { input: ["image", "pdf", "text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 2, output: 6, cache_read: 0.2 },
+ limit: { context: 2000000, output: 2000000 },
+ },
+ "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.3": {
+ id: "x-ai/grok-4.3",
+ name: "xAI: Grok 4.3",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-05-01",
+ last_updated: "2026-05-01",
+ modalities: { input: ["text", "image", "pdf"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 1.25, output: 2.5, cache_read: 0.2 },
+ limit: { context: 1000000, output: 4096 },
+ },
+ "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-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-4.20-multi-agent": {
+ id: "x-ai/grok-4.20-multi-agent",
+ name: "xAI: Grok 4.20 Multi-Agent",
+ attachment: true,
+ reasoning: true,
+ tool_call: false,
+ temperature: true,
+ release_date: "2026-03-31",
+ last_updated: "2026-04-11",
+ modalities: { input: ["image", "pdf", "text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 2, output: 6, cache_read: 0.2 },
+ limit: { context: 2000000, output: 2000000 },
+ },
+ "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/hy3-preview:free": {
+ id: "tencent/hy3-preview:free",
+ name: "Tencent: Hy3 Preview (free)",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-04-22",
+ last_updated: "2026-05-01",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0, output: 0 },
+ limit: { context: 262144, output: 262144 },
+ },
+ "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-mini-instruct": {
+ id: "microsoft/phi-4-mini-instruct",
+ name: "Microsoft: Phi 4 Mini Instruct",
+ attachment: false,
+ reasoning: false,
+ tool_call: false,
+ structured_output: true,
+ temperature: true,
+ release_date: "2025-10-17",
+ last_updated: "2026-05-07",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.08, output: 0.35, cache_read: 0.08 },
+ limit: { context: 128000, output: 128000 },
+ },
+ "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 },
+ },
+ "poolside/laguna-m.1:free": {
+ id: "poolside/laguna-m.1:free",
+ name: "Poolside: Laguna M.1 (free)",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-04-28",
+ last_updated: "2026-05-01",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0, output: 0 },
+ limit: { context: 131072, output: 8192 },
+ },
+ "poolside/laguna-xs.2:free": {
+ id: "poolside/laguna-xs.2:free",
+ name: "Poolside: Laguna XS.2 (free)",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-04-28",
+ last_updated: "2026-05-01",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0, output: 0 },
+ limit: { context: 131072, output: 8192 },
+ },
+ "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-super-120b-a12b": {
+ id: "nvidia/nemotron-3-super-120b-a12b",
+ name: "NVIDIA: Nemotron 3 Super",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-03-11",
+ last_updated: "2026-04-11",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.1, output: 0.5, cache_read: 0.1 },
+ limit: { context: 262144, output: 262144 },
+ },
+ "nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free": {
+ id: "nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free",
+ name: "NVIDIA: Nemotron 3 Nano Omni (free)",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-04-28",
+ last_updated: "2026-05-01",
+ modalities: { input: ["text", "audio", "image", "video"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0, output: 0 },
+ limit: { context: 256000, output: 65536 },
+ },
+ "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-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 },
+ },
+ "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-chat-latest": {
+ id: "openai/gpt-chat-latest",
+ name: "OpenAI: GPT Chat Latest",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: false,
+ release_date: "2026-05-05",
+ last_updated: "2026-05-07",
+ modalities: { input: ["image", "pdf", "text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 5, output: 30, cache_read: 0.5 },
+ limit: { context: 400000, output: 128000 },
+ },
+ "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.5": {
+ id: "openai/gpt-5.5",
+ name: "OpenAI: GPT-5.5",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: false,
+ release_date: "2026-04-24",
+ last_updated: "2026-05-01",
+ modalities: { input: ["text", "image", "pdf"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 5, output: 30, cache_read: 0.5 },
+ limit: { context: 1050000, output: 128000 },
+ },
+ "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.4-mini": {
+ id: "openai/gpt-5.4-mini",
+ name: "OpenAI: GPT-5.4 Mini",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: false,
+ release_date: "2026-03-17",
+ last_updated: "2026-04-11",
+ modalities: { input: ["image", "pdf", "text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.75, output: 4.5, cache_read: 0.075 },
+ limit: { context: 400000, output: 128000 },
+ },
+ "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.4-nano": {
+ id: "openai/gpt-5.4-nano",
+ name: "OpenAI: GPT-5.4 Nano",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: false,
+ release_date: "2026-03-17",
+ last_updated: "2026-04-11",
+ modalities: { input: ["image", "pdf", "text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.2, output: 1.25, cache_read: 0.02 },
+ limit: { context: 400000, output: 128000 },
+ },
+ "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-5.4-image-2": {
+ id: "openai/gpt-5.4-image-2",
+ name: "OpenAI: GPT-5.4 Image 2",
+ attachment: true,
+ reasoning: true,
+ tool_call: false,
+ temperature: false,
+ release_date: "2026-04-21",
+ last_updated: "2026-05-01",
+ modalities: { input: ["image", "text", "pdf"], output: ["image", "text"] },
+ open_weights: false,
+ cost: { input: 8, output: 15, cache_read: 2 },
+ limit: { context: 272000, output: 128000 },
+ },
+ "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-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-5.5-pro": {
+ id: "openai/gpt-5.5-pro",
+ name: "OpenAI: GPT-5.5 Pro",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: false,
+ release_date: "2026-04-24",
+ last_updated: "2026-05-01",
+ modalities: { input: ["text", "image", "pdf"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 30, output: 180 },
+ limit: { context: 1050000, 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/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-5v-turbo": {
+ id: "z-ai/glm-5v-turbo",
+ name: "Z.ai: GLM 5V Turbo",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-04-01",
+ last_updated: "2026-04-11",
+ modalities: { input: ["image", "text", "video"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 1.2, output: 4, cache_read: 0.24 },
+ limit: { context: 202752, output: 131072 },
+ },
+ "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-5-turbo": {
+ id: "z-ai/glm-5-turbo",
+ name: "Z.ai: GLM 5 Turbo",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-03-15",
+ last_updated: "2026-04-11",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 1.2, output: 4, cache_read: 0.24 },
+ limit: { context: 202752, output: 131072 },
+ },
+ "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/qianfan-ocr-fast:free": {
+ id: "baidu/qianfan-ocr-fast:free",
+ name: "Baidu: Qianfan-OCR-Fast (free)",
+ attachment: true,
+ reasoning: true,
+ tool_call: false,
+ temperature: true,
+ release_date: "2026-04-20",
+ last_updated: "2026-05-01",
+ modalities: { input: ["image", "text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0, output: 0 },
+ limit: { context: 65536, output: 28672 },
+ },
+ "baidu/cobuddy:free": {
+ id: "baidu/cobuddy:free",
+ name: "Baidu: CoBuddy (free)",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ temperature: false,
+ release_date: "2026-05-06",
+ last_updated: "2026-05-07",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0, output: 0 },
+ limit: { context: 131072, output: 65536 },
+ },
+ "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 },
+ },
+ "~openai/gpt-latest": {
+ id: "~openai/gpt-latest",
+ name: "OpenAI: GPT Latest",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: false,
+ release_date: "2026-04-27",
+ last_updated: "2026-05-01",
+ modalities: { input: ["text", "image", "pdf"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 5, output: 30, cache_read: 0.5 },
+ limit: { context: 1050000, output: 128000 },
+ },
+ "~openai/gpt-mini-latest": {
+ id: "~openai/gpt-mini-latest",
+ name: "OpenAI: GPT Mini Latest",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: false,
+ release_date: "2026-04-27",
+ last_updated: "2026-05-01",
+ modalities: { input: ["text", "image", "pdf"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.75, output: 4.5, cache_read: 0.075 },
+ limit: { context: 400000, output: 128000 },
+ },
+ "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/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.6-27b": {
+ id: "qwen/qwen3.6-27b",
+ name: "Qwen: Qwen3.6 27B",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-04-27",
+ last_updated: "2026-05-01",
+ modalities: { input: ["text", "image", "video"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.325, output: 3.25 },
+ limit: { context: 256000, 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.6-35b-a3b": {
+ id: "qwen/qwen3.6-35b-a3b",
+ name: "Qwen: Qwen3.6 35B A3B",
+ attachment: true,
+ reasoning: true,
+ tool_call: false,
+ temperature: true,
+ release_date: "2026-04-27",
+ last_updated: "2026-05-01",
+ modalities: { input: ["text", "image", "video"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.1612, output: 0.96525, cache_read: 0.1612 },
+ limit: { context: 262144, output: 65536 },
+ },
+ "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/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.6-plus": {
+ id: "qwen/qwen3.6-plus",
+ name: "Qwen: Qwen3.6 Plus",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ release_date: "2025-08-26",
+ last_updated: "2026-04-11",
+ modalities: { input: ["image", "text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.325, output: 1.95, cache_read: 0.0325, cache_write: 0.40625 },
+ 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/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.5-plus-20260420": {
+ id: "qwen/qwen3.5-plus-20260420",
+ name: "Qwen: Qwen3.5 Plus 2026-04-20",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-04-27",
+ last_updated: "2026-05-01",
+ modalities: { input: ["text", "image", "video"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.4, output: 2.4 },
+ limit: { context: 1000000, output: 65536 },
+ },
+ "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/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/qwen3.6-max-preview": {
+ id: "qwen/qwen3.6-max-preview",
+ name: "Qwen: Qwen3.6 Max Preview",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-04-27",
+ last_updated: "2026-05-01",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 1.04, output: 6.24, cache_write: 1.3 },
+ limit: { context: 262144, 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/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 },
+ },
+ "qwen/qwen3.6-flash": {
+ id: "qwen/qwen3.6-flash",
+ name: "Qwen: Qwen3.6 Flash",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-04-27",
+ last_updated: "2026-05-01",
+ modalities: { input: ["text", "image", "video"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.25, output: 1.5, cache_write: 0.3125 },
+ 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-v2": {
+ id: "kwaipilot/kat-coder-pro-v2",
+ name: "Kwaipilot: KAT-Coder-Pro V2",
+ attachment: false,
+ reasoning: false,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-03-27",
+ last_updated: "2026-04-11",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.3, output: 1.2, cache_read: 0.06 },
+ limit: { context: 256000, output: 80000 },
+ },
+ "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/lyria-3-clip-preview": {
+ id: "google/lyria-3-clip-preview",
+ name: "Google: Lyria 3 Clip Preview",
+ attachment: true,
+ reasoning: false,
+ tool_call: false,
+ temperature: true,
+ release_date: "2026-03-30",
+ last_updated: "2026-04-11",
+ modalities: { input: ["image", "text"], output: ["audio", "text"] },
+ open_weights: false,
+ cost: { input: 0, output: 0 },
+ 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-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/lyria-3-pro-preview": {
+ id: "google/lyria-3-pro-preview",
+ name: "Google: Lyria 3 Pro Preview",
+ attachment: true,
+ reasoning: false,
+ tool_call: false,
+ temperature: true,
+ release_date: "2026-03-30",
+ last_updated: "2026-04-11",
+ modalities: { input: ["image", "text"], output: ["audio", "text"] },
+ open_weights: false,
+ cost: { input: 0, output: 0 },
+ limit: { context: 1048576, output: 65536 },
+ },
+ "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-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/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-4-31b-it": {
+ id: "google/gemma-4-31b-it",
+ name: "Google: Gemma 4 31B",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-04-02",
+ last_updated: "2026-04-11",
+ modalities: { input: ["image", "text", "video"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.14, output: 0.4 },
+ limit: { context: 262144, output: 131072 },
+ },
+ "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/gemma-4-26b-a4b-it": {
+ id: "google/gemma-4-26b-a4b-it",
+ name: "Google: Gemma 4 26B A4B",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-04-03",
+ last_updated: "2026-04-11",
+ modalities: { input: ["image", "text", "video"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.12, output: 0.4 },
+ limit: { context: 262144, output: 262144 },
+ },
+ "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.6": {
+ id: "moonshotai/kimi-k2.6",
+ name: "MoonshotAI: Kimi K2.6",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_details" },
+ structured_output: true,
+ temperature: true,
+ release_date: "2026-04-20",
+ last_updated: "2026-04-20",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.95, output: 4, cache_read: 0.16 },
+ limit: { context: 262144, output: 262144 },
+ },
+ "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 },
+ },
+ "~moonshotai/kimi-latest": {
+ id: "~moonshotai/kimi-latest",
+ name: "MoonshotAI: Kimi Latest",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-04-27",
+ last_updated: "2026-05-01",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.74, output: 3.49, cache_read: 0.14 },
+ limit: { context: 262142, output: 262142 },
+ },
+ "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-opus-4.6-fast": {
+ id: "anthropic/claude-opus-4.6-fast",
+ name: "Anthropic: Claude Opus 4.6 (Fast)",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ knowledge: "2025-05-31",
+ release_date: "2026-04-07",
+ last_updated: "2026-04-11",
+ modalities: { input: ["image", "text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 30, output: 150, cache_read: 3, cache_write: 37.5 },
+ limit: { context: 1000000, output: 128000 },
+ },
+ "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,
+ knowledge: "2025-05-31",
+ 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-opus-4.7": {
+ id: "anthropic/claude-opus-4.7",
+ name: "Anthropic: Claude Opus 4.7",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: false,
+ release_date: "2026-04-16",
+ last_updated: "2026-05-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: 1000000, output: 128000 },
+ },
+ "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,
+ knowledge: "2025-08-31",
+ 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 },
+ },
+ "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 },
+ },
+ "xiaomi/mimo-v2.5-pro": {
+ id: "xiaomi/mimo-v2.5-pro",
+ name: "Xiaomi: MiMo V2.5 Pro",
+ family: "mimo",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ temperature: true,
+ knowledge: "2024-12",
+ release_date: "2026-04-22",
+ last_updated: "2026-04-22",
+ 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: 131072 },
+ },
+ "xiaomi/mimo-v2-omni": {
+ id: "xiaomi/mimo-v2-omni",
+ name: "Xiaomi: MiMo-V2-Omni",
+ family: "mimo",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ 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: false,
+ cost: { input: 0.4, output: 2, cache_read: 0.08 },
+ limit: { context: 262144, output: 65536 },
+ },
+ "xiaomi/mimo-v2.5": {
+ id: "xiaomi/mimo-v2.5",
+ name: "Xiaomi: MiMo-V2.5",
+ family: "mimo",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ temperature: true,
+ knowledge: "2024-12",
+ release_date: "2026-04-22",
+ last_updated: "2026-04-22",
+ modalities: { input: ["text", "image", "audio", "video"], output: ["text"] },
+ open_weights: true,
+ cost: {
+ input: 0.4,
+ output: 2,
+ cache_read: 0.08,
+ context_over_200k: { input: 0.8, output: 4, cache_read: 0.16 },
+ },
+ limit: { context: 1048576, output: 131072 },
+ },
+ "xiaomi/mimo-v2-pro": {
+ id: "xiaomi/mimo-v2-pro",
+ name: "Xiaomi: MiMo-V2-Pro",
+ family: "mimo",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ knowledge: "2024-12",
+ release_date: "2026-03-18",
+ last_updated: "2026-03-18",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 1, output: 3, cache_read: 0.2, context_over_200k: { input: 2, output: 6, cache_read: 0.4 } },
+ limit: { context: 1048576, output: 131072 },
+ },
+ "xiaomi/mimo-v2-flash": {
+ id: "xiaomi/mimo-v2-flash",
+ name: "Xiaomi: MiMo-V2-Flash",
+ family: "mimo",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ 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.09, output: 0.29, cache_read: 0.045 },
+ limit: { context: 262144, output: 65536 },
+ },
+ },
+ },
+ "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/moonshotai/kimi-k2.6": {
+ id: "workers-ai/@cf/moonshotai/kimi-k2.6",
+ name: "Kimi K2.6",
+ family: "kimi",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-01",
+ release_date: "2026-04-20",
+ last_updated: "2026-04-20",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.95, output: 4, cache_read: 0.16 },
+ 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-08-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-7": {
+ id: "anthropic/claude-opus-4-7",
+ name: "Claude Opus 4.7",
+ family: "claude-opus",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: false,
+ knowledge: "2026-01",
+ release_date: "2026-04-16",
+ last_updated: "2026-04-16",
+ 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" },
+ },
+ "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-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,
+ 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 },
+ },
+ "openai/gpt-5.5": {
+ id: "openai/gpt-5.5",
+ name: "GPT-5.5",
+ family: "gpt",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: false,
+ knowledge: "2025-12-01",
+ release_date: "2026-04-23",
+ last_updated: "2026-04-23",
+ modalities: { input: ["text", "image", "pdf"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 5, output: 30, cache_read: 0.5, context_over_200k: { input: 10, output: 45, cache_read: 1 } },
+ limit: { context: 1050000, input: 922000, output: 128000 },
+ },
+ },
+ },
+ "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 },
+ status: "deprecated",
+ },
+ "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"], 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.5": {
+ id: "gpt-5.5",
+ name: "GPT-5.5",
+ family: "gpt",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ temperature: false,
+ knowledge: "2025-08-31",
+ release_date: "2026-04-22",
+ last_updated: "2026-04-22",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0, output: 0 },
+ limit: { context: 400000, input: 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: 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 },
+ status: "deprecated",
+ },
+ "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 },
+ },
+ "claude-opus-4.7": {
+ id: "claude-opus-4.7",
+ name: "Claude Opus 4.7",
+ family: "claude-opus",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: false,
+ knowledge: "2026-01-31",
+ release_date: "2026-04-16",
+ last_updated: "2026-04-16",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0, output: 0 },
+ limit: { context: 144000, input: 128000, output: 64000 },
+ },
+ "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 },
+ status: "deprecated",
+ },
+ "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 },
+ status: "deprecated",
+ },
+ "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 },
+ 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,
+ 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 },
+ 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-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 },
+ status: "deprecated",
+ },
+ "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,
+ knowledge: "2025-08-31",
+ 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 },
+ status: "deprecated",
+ },
+ },
+ },
+ 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-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: 8192, output: 16384 },
+ },
+ "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, output: 0, cache_read: 0 },
+ limit: { context: 262144, output: 65536 },
+ },
+ "mimo-v2-pro": {
+ id: "mimo-v2-pro",
+ name: "MiMo-V2-Pro",
+ family: "mimo",
+ attachment: false,
+ 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: false,
+ cost: { input: 0, output: 0, cache_read: 0, context_over_200k: { input: 2, output: 6, cache_read: 0.4 } },
+ limit: { context: 1048576, output: 131072 },
+ },
+ "mimo-v2.5": {
+ id: "mimo-v2.5",
+ name: "MiMo-V2.5",
+ family: "mimo",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ temperature: true,
+ knowledge: "2024-12",
+ release_date: "2026-04-22",
+ last_updated: "2026-04-22",
+ modalities: { input: ["text", "image", "audio", "video"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0, output: 0, cache_read: 0, context_over_200k: { input: 0, output: 0, cache_read: 0 } },
+ limit: { context: 1048576, output: 131072 },
+ },
+ "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: false,
+ cost: { input: 0, output: 0, cache_read: 0 },
+ limit: { context: 262144, output: 131072 },
+ },
+ "mimo-v2.5-pro": {
+ id: "mimo-v2.5-pro",
+ name: "MiMo-V2.5-Pro",
+ family: "mimo",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ temperature: true,
+ knowledge: "2024-12",
+ release_date: "2026-04-22",
+ last_updated: "2026-04-22",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0, output: 0, cache_read: 0, context_over_200k: { input: 0, output: 0, cache_read: 0 } },
+ limit: { context: 1048576, output: 131072 },
+ },
+ },
+ },
+ 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: {
+ "minimax-m2.7": {
+ id: "minimax-m2.7",
+ name: "MiniMax M2.7",
+ family: "minimax",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ 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 },
+ },
+ "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-08-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",
+ },
+ "claude-opus-4-7": {
+ id: "claude-opus-4-7",
+ name: "Claude Opus 4.7",
+ family: "claude-opus",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: false,
+ knowledge: "2026-01-31",
+ release_date: "2026-04-16",
+ last_updated: "2026-04-16",
+ 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" },
+ },
+ "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 },
+ 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" },
+ },
+ "ring-2.6-1t-free": {
+ id: "ring-2.6-1t-free",
+ name: "Ring 2.6 1T Free",
+ family: "ring-1t-free",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ temperature: true,
+ knowledge: "2025-06",
+ release_date: "2026-05-08",
+ last_updated: "2026-05-08",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0, output: 0 },
+ limit: { context: 262000, output: 66000 },
+ },
+ "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,
+ interleaved: { field: "reasoning_content" },
+ structured_output: 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 },
+ },
+ "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" },
+ },
+ "qwen3.6-plus": {
+ id: "qwen3.6-plus",
+ name: "Qwen3.6 Plus",
+ family: "qwen3.6",
+ attachment: true,
+ 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.5, output: 3, cache_read: 0.05, cache_write: 0.625 },
+ limit: { context: 262144, output: 65536 },
+ 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 },
+ status: "deprecated",
+ 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",
+ },
+ "ling-2.6-flash-free": {
+ id: "ling-2.6-flash-free",
+ name: "Ling 2.6 Flash Free",
+ family: "ling-flash-free",
+ attachment: false,
+ reasoning: false,
+ tool_call: true,
+ temperature: true,
+ knowledge: "2025-06",
+ release_date: "2026-04-21",
+ last_updated: "2026-04-21",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0, output: 0 },
+ limit: { context: 262100, output: 32800 },
+ 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" },
+ },
+ "kimi-k2.6": {
+ id: "kimi-k2.6",
+ name: "Kimi K2.6",
+ family: "kimi",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ temperature: true,
+ knowledge: "2024-10",
+ release_date: "2026-04-21",
+ last_updated: "2026-04-21",
+ modalities: { input: ["text", "image", "video"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.95, output: 4, cache_read: 0.16 },
+ limit: { context: 262144, output: 65536 },
+ },
+ "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" },
+ },
+ "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" },
+ },
+ "hy3-preview-free": {
+ id: "hy3-preview-free",
+ name: "Hy3 preview Free",
+ family: "hy3-free",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ knowledge: "2025-06",
+ release_date: "2026-04-20",
+ last_updated: "2026-04-20",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0, output: 0, cache_read: 0 },
+ limit: { context: 256000, output: 64000 },
+ status: "deprecated",
+ },
+ "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" },
+ },
+ "qwen3.5-plus": {
+ id: "qwen3.5-plus",
+ name: "Qwen3.5 Plus",
+ family: "qwen3.5",
+ attachment: true,
+ 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.2, output: 1.2, cache_read: 0.02, cache_write: 0.25 },
+ limit: { context: 262144, output: 65536 },
+ 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 },
+ 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 },
+ },
+ "gpt-5.5-pro": {
+ id: "gpt-5.5-pro",
+ name: "GPT-5.5 Pro",
+ family: "gpt-pro",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: false,
+ temperature: false,
+ knowledge: "2025-12-01",
+ release_date: "2026-04-24",
+ last_updated: "2026-04-24",
+ 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" },
+ },
+ "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",
+ },
+ "gpt-5.5": {
+ id: "gpt-5.5",
+ name: "GPT-5.5",
+ family: "gpt",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: false,
+ knowledge: "2025-12-01",
+ release_date: "2026-04-23",
+ last_updated: "2026-04-23",
+ modalities: { input: ["text", "image", "pdf"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 5, output: 30, cache_read: 0.5, context_over_200k: { input: 10, output: 45, cache_read: 1 } },
+ limit: { context: 1050000, input: 922000, 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,
+ context_over_200k: { input: 5, output: 22.5, cache_read: 0.5 },
+ },
+ limit: { context: 1050000, input: 922000, 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-05-31",
+ 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 },
+ provider: { npm: "@ai-sdk/anthropic" },
+ },
+ },
+ },
+ 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 },
+ },
+ "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.5-397B-A17B": {
+ id: "Qwen/Qwen3.5-397B-A17B",
+ name: "Qwen3.5-397B-A17B",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-07",
+ release_date: "2025-07-15",
+ last_updated: "2026-05-07",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.6, output: 3.6, cache_read: 0.06, cache_write: 0.75 },
+ limit: { context: 262144, input: 250000, 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 },
+ },
+ "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-fast": {
+ id: "Qwen/Qwen3-235B-A22B-Thinking-2507-fast",
+ name: "Qwen3-235B-A22B-Thinking-2507-fast",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-07",
+ release_date: "2025-07-25",
+ last_updated: "2026-05-07",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.5, output: 2, cache_read: 0.05, cache_write: 0.625 },
+ limit: { context: 8000, input: 7000, output: 8192 },
+ },
+ "Qwen/Qwen3.5-397B-A17B-fast": {
+ id: "Qwen/Qwen3.5-397B-A17B-fast",
+ name: "Qwen3.5-397B-A17B-fast",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-07",
+ release_date: "2025-07-15",
+ last_updated: "2026-05-07",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.6, output: 3.6, cache_read: 0.06, cache_write: 0.75 },
+ limit: { context: 8000, input: 7000, output: 8192 },
+ },
+ "Qwen/Qwen3-Next-80B-A3B-Thinking-fast": {
+ id: "Qwen/Qwen3-Next-80B-A3B-Thinking-fast",
+ name: "Qwen3-Next-80B-A3B-Thinking-fast",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-07",
+ release_date: "2025-07-25",
+ last_updated: "2026-05-07",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.15, output: 1.2, cache_read: 0.015, cache_write: 0.1875 },
+ limit: { context: 8000, input: 7000, 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 },
+ },
+ "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-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 },
+ },
+ "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": {
+ 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-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 },
+ },
+ "nvidia/Nemotron-3-Nano-Omni": {
+ id: "nvidia/Nemotron-3-Nano-Omni",
+ name: "Nemotron-3-Nano-Omni",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-01",
+ release_date: "2025-01-20",
+ last_updated: "2026-05-07",
+ 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: 65536, input: 60000, output: 8192 },
+ },
+ "deepseek-ai/DeepSeek-V3.2-fast": {
+ id: "deepseek-ai/DeepSeek-V3.2-fast",
+ name: "DeepSeek-V3.2-fast",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-01",
+ release_date: "2025-01-27",
+ last_updated: "2026-05-07",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.4, output: 2, cache_read: 0.04, cache_write: 0.5 },
+ limit: { context: 8000, input: 7000, output: 8192 },
+ },
+ "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-120b-fast": {
+ id: "openai/gpt-oss-120b-fast",
+ name: "gpt-oss-120b-fast",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-06",
+ release_date: "2025-06-10",
+ last_updated: "2026-05-07",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.1, output: 0.5, cache_read: 0.01, cache_write: 0.125 },
+ limit: { context: 8000, input: 7000, 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 },
+ },
+ "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": {
+ 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.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.5": {
+ id: "MiniMaxAI/MiniMax-M2.5",
+ name: "MiniMax-M2.5",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-01",
+ release_date: "2025-01-20",
+ last_updated: "2026-05-07",
+ 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: 196608, input: 190000, output: 8192 },
+ },
+ "MiniMaxAI/MiniMax-M2.5-fast": {
+ id: "MiniMaxAI/MiniMax-M2.5-fast",
+ name: "MiniMax-M2.5-fast",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-01",
+ release_date: "2025-01-20",
+ last_updated: "2026-05-07",
+ 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: 8000, input: 7000, output: 8192 },
+ },
+ "deepseek-ai/DeepSeek-V4-Pro": {
+ id: "deepseek-ai/DeepSeek-V4-Pro",
+ name: "DeepSeek V4 Pro",
+ family: "deepseek-thinking",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-05",
+ release_date: "2026-04-24",
+ last_updated: "2026-04-24",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 1.75, output: 3.5, cache_read: 0.15 },
+ limit: { context: 1000000, output: 384000 },
+ },
+ },
+ },
+ 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: true,
+ release_date: "2026-01-27",
+ last_updated: "2026-01-27",
+ modalities: { input: ["text", "image", "video"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.6, output: 3, cache_read: 0.1 },
+ limit: { context: 128000, 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 },
+ status: "deprecated",
+ },
+ "novita/glm-5": {
+ id: "novita/glm-5",
+ name: "GLM-5",
+ attachment: true,
+ reasoning: true,
+ tool_call: 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: 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/kimi-k2.6": {
+ id: "novita/kimi-k2.6",
+ name: "Kimi-K2.6",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ knowledge: "2025-04",
+ release_date: "2026-04-20",
+ last_updated: "2026-05-02",
+ modalities: { input: ["text", "image", "video"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.96, output: 4.04, cache_read: 0.16 },
+ limit: { context: 262144, input: 262144, output: 262144 },
+ },
+ "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 },
+ },
+ "empiriolabs/deepseek-v4-pro-el": {
+ id: "empiriolabs/deepseek-v4-pro-el",
+ name: "DeepSeek-V4-Pro-EL",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ release_date: "2026-04-24",
+ last_updated: "2026-05-02",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 1.67, output: 3.33 },
+ limit: { context: 1000000, input: 1000000, output: 384000 },
+ },
+ "empiriolabs/deepseek-v4-flash-el": {
+ id: "empiriolabs/deepseek-v4-flash-el",
+ name: "DeepSeek-V4-Flash-EL",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ release_date: "2026-04-24",
+ last_updated: "2026-05-02",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.14, output: 0.28 },
+ limit: { context: 1000000, input: 1000000, output: 384000 },
+ },
+ "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,
+ cost: { input: 0.35, output: 0.75 },
+ 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,
+ cost: { input: 0.1, output: 0.1 },
+ limit: { context: 128000, 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 },
+ status: "deprecated",
+ },
+ "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 },
+ status: "deprecated",
+ },
+ "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 },
+ status: "deprecated",
+ },
+ "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 },
+ status: "deprecated",
+ },
+ "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-image-2": {
+ id: "openai/gpt-image-2",
+ name: "GPT-Image-2",
+ attachment: true,
+ reasoning: false,
+ tool_call: false,
+ temperature: false,
+ release_date: "2026-04-21",
+ last_updated: "2026-04-21",
+ modalities: { input: ["text", "image"], output: ["image"] },
+ open_weights: false,
+ cost: { input: 5.0505, output: 32.3232, cache_read: 1.2626 },
+ limit: { context: 0, output: 0 },
+ },
+ "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 },
+ status: "deprecated",
+ },
+ "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 },
+ status: "deprecated",
+ },
+ "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 },
+ status: "deprecated",
+ },
+ "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 },
+ status: "deprecated",
+ },
+ "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 },
+ status: "deprecated",
+ },
+ "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-opus-4.7": {
+ id: "anthropic/claude-opus-4.7",
+ name: "Claude-Opus-4.7",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: false,
+ release_date: "2026-04-15",
+ last_updated: "2026-04-15",
+ modalities: { input: ["text", "image", "pdf"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 4.3, output: 21, cache_read: 0.43, cache_write: 5.4 },
+ limit: { context: 1048576, 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 },
+ status: "deprecated",
+ },
+ "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 },
+ },
+ "openai/gpt-5.5": {
+ id: "openai/gpt-5.5",
+ name: "GPT-5.5",
+ family: "gpt",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: false,
+ knowledge: "2025-12-01",
+ release_date: "2026-04-08",
+ last_updated: "2026-04-08",
+ modalities: { input: ["text", "image"], output: ["text", "image"] },
+ open_weights: false,
+ cost: { input: 4.5455, output: 27.2727, cache_read: 0.4545 },
+ limit: { context: 400000, output: 128000 },
+ },
+ "openai/gpt-5.5-pro": {
+ id: "openai/gpt-5.5-pro",
+ name: "GPT-5.5-Pro",
+ family: "gpt-pro",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: false,
+ temperature: false,
+ knowledge: "2025-12-01",
+ release_date: "2026-04-08",
+ last_updated: "2026-04-08",
+ modalities: { input: ["text", "image"], output: ["text", "image"] },
+ open_weights: false,
+ cost: { input: 27.2727, output: 163.6364 },
+ limit: { context: 400000, output: 128000 },
+ },
+ },
+ },
+ 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 },
+ },
+ "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: 196608, output: 196608 },
+ },
+ "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: 262144 },
+ },
+ "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: 65536 },
+ },
+ "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 },
+ },
+ "kimi-k2.6:cloud": {
+ id: "kimi-k2.6:cloud",
+ name: "kimi-k2.6:cloud",
+ family: "kimi",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ release_date: "2026-04-20",
+ last_updated: "2026-04-20",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: true,
+ limit: { context: 262144, output: 262144 },
+ },
+ "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 },
+ },
+ "deepseek-v4-flash": {
+ id: "deepseek-v4-flash",
+ name: "deepseek-v4-flash",
+ family: "deepseek-flash",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ release_date: "2026-04-24",
+ last_updated: "2026-04-24",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ limit: { context: 1048576, output: 1048576 },
+ },
+ "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 },
+ },
+ "deepseek-v4-pro": {
+ id: "deepseek-v4-pro",
+ name: "deepseek-v4-pro",
+ family: "deepseek-thinking",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ release_date: "2026-04-24",
+ last_updated: "2026-04-24",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ limit: { context: 1048576, output: 1048576 },
+ },
+ "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-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.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-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-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 },
+ },
+ },
+ },
+ "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: {
+ "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 },
+ },
+ "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 },
+ },
+ "au.anthropic.claude-opus-4-6-v1": {
+ id: "au.anthropic.claude-opus-4-6-v1",
+ name: "AU Anthropic 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-02-05",
+ modalities: { input: ["text", "image", "pdf"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 16.5, output: 82.5, cache_read: 1.65, cache_write: 20.625 },
+ limit: { context: 1000000, output: 128000 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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,
+ 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 },
+ },
+ "global.anthropic.claude-opus-4-7": {
+ id: "global.anthropic.claude-opus-4-7",
+ name: "Claude Opus 4.7 (Global)",
+ family: "claude-opus",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: false,
+ knowledge: "2026-01-31",
+ release_date: "2026-04-16",
+ last_updated: "2026-04-16",
+ 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 },
+ },
+ "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.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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "us.anthropic.claude-opus-4-7": {
+ id: "us.anthropic.claude-opus-4-7",
+ name: "Claude Opus 4.7 (US)",
+ family: "claude-opus",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: false,
+ knowledge: "2026-01-31",
+ release_date: "2026-04-16",
+ last_updated: "2026-04-16",
+ 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-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 },
+ },
+ "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 },
+ },
+ "anthropic.claude-opus-4-7": {
+ id: "anthropic.claude-opus-4-7",
+ name: "Claude Opus 4.7",
+ family: "claude-opus",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: false,
+ knowledge: "2026-01-31",
+ release_date: "2026-04-16",
+ last_updated: "2026-04-16",
+ 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 },
+ },
+ "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-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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "eu.anthropic.claude-opus-4-7": {
+ id: "eu.anthropic.claude-opus-4-7",
+ name: "Claude Opus 4.7 (EU)",
+ family: "claude-opus",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: false,
+ knowledge: "2026-01-31",
+ release_date: "2026-04-16",
+ last_updated: "2026-04-16",
+ 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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "au.anthropic.claude-sonnet-4-6": {
+ id: "au.anthropic.claude-sonnet-4-6",
+ name: "AU Anthropic Claude Sonnet 4.6",
+ family: "claude-sonnet",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: 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.3, output: 16.5, cache_read: 0.33, cache_write: 4.125 },
+ limit: { context: 1000000, output: 128000 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "us.deepseek.r1-v1:0": {
+ id: "us.deepseek.r1-v1:0",
+ name: "DeepSeek-R1 (US)",
+ 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 },
+ },
+ "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-31",
+ 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 },
+ },
+ "us.meta.llama4-maverick-17b-instruct-v1:0": {
+ id: "us.meta.llama4-maverick-17b-instruct-v1:0",
+ name: "Llama 4 Maverick 17B Instruct (US)",
+ 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 },
+ },
+ "au.anthropic.claude-haiku-4-5-20251001-v1:0": {
+ id: "au.anthropic.claude-haiku-4-5-20251001-v1:0",
+ name: "Claude Haiku 4.5 (AU)",
+ 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 },
+ },
+ "jp.anthropic.claude-sonnet-4-5-20250929-v1:0": {
+ id: "jp.anthropic.claude-sonnet-4-5-20250929-v1:0",
+ name: "Claude Sonnet 4.5 (JP)",
+ 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-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-31",
+ 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 },
+ },
+ "jp.anthropic.claude-sonnet-4-6": {
+ id: "jp.anthropic.claude-sonnet-4-6",
+ name: "Claude Sonnet 4.6 (JP)",
+ family: "claude-sonnet",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ knowledge: "2025-08-31",
+ 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 },
+ },
+ "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-31",
+ 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 },
+ },
+ "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-31",
+ 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 },
+ },
+ "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-31",
+ 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 },
+ },
+ "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-31",
+ 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 },
+ },
+ "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 },
+ },
+ "au.anthropic.claude-sonnet-4-5-20250929-v1:0": {
+ id: "au.anthropic.claude-sonnet-4-5-20250929-v1:0",
+ name: "Claude Sonnet 4.5 (AU)",
+ 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 },
+ },
+ "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-31",
+ 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 },
+ },
+ "us.meta.llama4-scout-17b-instruct-v1:0": {
+ id: "us.meta.llama4-scout-17b-instruct-v1:0",
+ name: "Llama 4 Scout 17B Instruct (US)",
+ 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 },
+ },
+ "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-31",
+ 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 },
+ },
+ "jp.anthropic.claude-opus-4-7": {
+ id: "jp.anthropic.claude-opus-4-7",
+ name: "Claude Opus 4.7 (JP)",
+ family: "claude-opus",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: false,
+ knowledge: "2026-01-31",
+ release_date: "2026-04-16",
+ last_updated: "2026-04-16",
+ 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 },
+ },
+ },
+ },
+ "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.6": {
+ id: "moonshotai/Kimi-K2.6",
+ name: "Kimi K2.6",
+ family: "kimi-k2.6",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-01",
+ release_date: "2026-04-21",
+ last_updated: "2026-04-21",
+ modalities: { input: ["text", "image", "video"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.95, output: 4, cache_read: 0.16 },
+ limit: { context: 262144, output: 262144 },
+ },
+ "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 },
+ },
+ "deepseek-ai/DeepSeek-V4-Pro": {
+ id: "deepseek-ai/DeepSeek-V4-Pro",
+ name: "DeepSeek V4 Pro",
+ family: "deepseek-thinking",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-05",
+ release_date: "2026-04-24",
+ last_updated: "2026-04-24",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 1.74, output: 3.48, cache_read: 0.15 },
+ limit: { context: 1000000, output: 384000 },
+ },
+ },
+ },
+ frogbot: {
+ id: "frogbot",
+ env: ["FROGBOT_API_KEY"],
+ npm: "@ai-sdk/openai-compatible",
+ api: "https://app.frogbot.ai/api/v1",
+ name: "FrogBot",
+ 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 },
+ },
+ "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-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: 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 },
+ },
+ "claude-opus-4-7": {
+ id: "claude-opus-4-7",
+ name: "Claude Opus 4.7",
+ family: "claude-opus",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: false,
+ knowledge: "2026-01-31",
+ release_date: "2026-04-16",
+ last_updated: "2026-04-16",
+ 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 },
+ },
+ "zai-glm-5-1": {
+ id: "zai-glm-5-1",
+ name: "Z.AI GLM-5.1",
+ 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 },
+ },
+ "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: "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.2, output: 1.25, cache_read: 0.02 },
+ 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: 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 },
+ },
+ "gpt-5-5": {
+ id: "gpt-5-5",
+ name: "GPT-5.5",
+ 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 },
+ },
+ "grok-4-3": {
+ id: "grok-4-3",
+ name: "Grok 4.3",
+ family: "grok",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: true,
+ knowledge: "2024-11",
+ release_date: "2026-04-30",
+ last_updated: "2026-04-30",
+ modalities: { input: ["text", "image", "video"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 1.25, output: 2.5, cache_read: 0.2 },
+ limit: { context: 1000000, 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"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.75, output: 4.5, cache_read: 0.075 },
+ 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-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 },
+ },
+ "deepseek-v4-pro": {
+ id: "deepseek-v4-pro",
+ name: "DeepSeek v4 Pro",
+ family: "deepseek",
+ attachment: true,
+ reasoning: false,
+ tool_call: true,
+ temperature: true,
+ knowledge: "2026-01",
+ release_date: "2026-04-24",
+ last_updated: "2026-04-24",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 1.74, output: 3.48, cache_read: 0.14 },
+ limit: { context: 128000, output: 8192 },
+ },
+ "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-7": {
+ id: "minimax-m2-7",
+ name: "MiniMax-M2.7",
+ family: "minimax",
+ attachment: true,
+ reasoning: false,
+ tool_call: true,
+ temperature: true,
+ knowledge: "2024-09",
+ 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, cache_read: 0.06 },
+ limit: { context: 192000, output: 8192 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "kimi-k2-6": {
+ id: "kimi-k2-6",
+ name: "Kimi-K2.6",
+ 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.95, output: 4, cache_read: 0.16 },
+ limit: { context: 256000, 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,
+ 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 },
+ },
+ },
+ },
+ "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-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.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 },
+ },
+ "grok-4-20-multi-agent": {
+ id: "grok-4-20-multi-agent",
+ name: "Grok 4.20 Multi-Agent",
+ family: "grok",
+ attachment: true,
+ reasoning: true,
+ tool_call: false,
+ structured_output: true,
+ temperature: true,
+ release_date: "2026-03-12",
+ last_updated: "2026-05-07",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: false,
+ cost: {
+ input: 1.42,
+ output: 2.83,
+ cache_read: 0.23,
+ context_over_200k: { input: 2.83, output: 5.67, cache_read: 0.45 },
+ },
+ limit: { context: 2000000, output: 128000 },
+ },
+ "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 },
+ },
+ "z-ai-glm-5v-turbo": {
+ id: "z-ai-glm-5v-turbo",
+ name: "GLM 5V Turbo",
+ family: "glmv",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: true,
+ release_date: "2026-04-01",
+ last_updated: "2026-04-12",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 1.5, output: 5, cache_read: 0.3 },
+ limit: { context: 200000, output: 32768 },
+ },
+ "gemma-4-uncensored": {
+ id: "gemma-4-uncensored",
+ name: "Gemma 4 Uncensored",
+ family: "gemma",
+ attachment: true,
+ reasoning: false,
+ tool_call: true,
+ structured_output: true,
+ temperature: true,
+ release_date: "2026-04-13",
+ last_updated: "2026-04-19",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.1625, output: 0.5 },
+ limit: { context: 256000, output: 8192 },
+ },
+ "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,
+ knowledge: "2025-08-31",
+ 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 },
+ },
+ "grok-4-20": {
+ id: "grok-4-20",
+ name: "Grok 4.20",
+ family: "grok",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: true,
+ release_date: "2026-03-12",
+ last_updated: "2026-05-07",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: false,
+ cost: {
+ input: 1.42,
+ output: 2.83,
+ cache_read: 0.23,
+ context_over_200k: { input: 2.83, output: 5.67, cache_read: 0.45 },
+ },
+ limit: { context: 2000000, output: 128000 },
+ },
+ "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-12",
+ modalities: { input: ["text", "image", "video"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.1625, output: 0.5 },
+ limit: { context: 256000, output: 8192 },
+ },
+ "claude-opus-4-7": {
+ id: "claude-opus-4-7",
+ name: "Claude Opus 4.7",
+ family: "claude-opus",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: false,
+ release_date: "2026-04-16",
+ last_updated: "2026-04-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 },
+ },
+ "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-16",
+ modalities: { input: ["text", "image", "video"], output: ["text"] },
+ open_weights: true,
+ 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 },
+ },
+ "venice-uncensored-1-2": {
+ id: "venice-uncensored-1-2",
+ name: "Venice Uncensored 1.2",
+ family: "venice",
+ attachment: true,
+ reasoning: false,
+ tool_call: true,
+ structured_output: true,
+ temperature: true,
+ release_date: "2026-04-01",
+ last_updated: "2026-04-19",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.2, output: 0.9 },
+ limit: { context: 128000, output: 8192 },
+ },
+ "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 },
+ },
+ "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-04-12",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ 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 },
+ },
+ "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-04-16",
+ 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-55-pro": {
+ id: "openai-gpt-55-pro",
+ name: "GPT-5.5 Pro",
+ family: "gpt-pro",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: true,
+ release_date: "2026-04-24",
+ last_updated: "2026-04-25",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 37.5, output: 225 },
+ limit: { context: 1000000, output: 128000 },
+ },
+ "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 },
+ },
+ "grok-4-3": {
+ id: "grok-4-3",
+ name: "Grok 4.3",
+ family: "grok",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: true,
+ release_date: "2026-04-18",
+ last_updated: "2026-05-04",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: false,
+ cost: {
+ input: 1.42,
+ output: 2.83,
+ cache_read: 0.23,
+ context_over_200k: { input: 2.83, output: 5.67, cache_read: 0.45 },
+ },
+ limit: { context: 1000000, output: 32000 },
+ },
+ "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: true,
+ tool_call: true,
+ temperature: true,
+ knowledge: "2025-07",
+ release_date: "2025-11-06",
+ last_updated: "2026-05-06",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.07, output: 0.3 },
+ limit: { context: 128000, 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,
+ structured_output: true,
+ temperature: true,
+ release_date: "2025-12-06",
+ last_updated: "2026-04-12",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 6, output: 30, cache_read: 0.6, cache_write: 7.5 },
+ limit: { context: 198000, output: 32768 },
+ },
+ "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-19",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.1, output: 0.15 },
+ limit: { context: 256000, output: 32768 },
+ },
+ "deepseek-v4-flash": {
+ id: "deepseek-v4-flash",
+ name: "DeepSeek V4 Flash",
+ family: "deepseek-flash",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ structured_output: true,
+ temperature: true,
+ release_date: "2026-04-24",
+ last_updated: "2026-04-29",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.17, output: 0.35, cache_read: 0.028 },
+ limit: { context: 1000000, 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 },
+ },
+ "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 },
+ },
+ "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-04-12",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.34, output: 1.19, cache_read: 0.04 },
+ limit: { context: 198000, output: 32768 },
+ },
+ "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 },
+ },
+ "openai-gpt-55": {
+ id: "openai-gpt-55",
+ name: "GPT-5.5",
+ family: "gpt",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: true,
+ release_date: "2026-04-23",
+ last_updated: "2026-04-25",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: false,
+ cost: {
+ input: 6.25,
+ output: 37.5,
+ cache_read: 0.625,
+ context_over_200k: { input: 12.5, output: 56.25, cache_read: 1.25 },
+ },
+ limit: { context: 1000000, output: 131072 },
+ },
+ "qwen3-6-27b": {
+ id: "qwen3-6-27b",
+ name: "Qwen 3.6 27B",
+ family: "qwen",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: true,
+ release_date: "2026-04-24",
+ last_updated: "2026-04-29",
+ modalities: { input: ["text", "image", "video"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.325, output: 3.25 },
+ 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,
+ knowledge: "2025-05-31",
+ 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-v4-pro": {
+ id: "deepseek-v4-pro",
+ name: "DeepSeek V4 Pro",
+ family: "deepseek",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ structured_output: true,
+ temperature: true,
+ release_date: "2026-04-24",
+ last_updated: "2026-04-29",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 1.73, output: 3.796, cache_read: 0.33 },
+ limit: { context: 1000000, output: 32768 },
+ },
+ "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 },
+ },
+ "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-12",
+ 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, cache_read: 0.0625, cache_write: 0.78 },
+ },
+ limit: { context: 1000000, output: 65536 },
+ },
+ "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-04-12",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 1, output: 2, cache_read: 0.25 },
+ limit: { context: 128000, output: 32768 },
+ },
+ "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,
+ release_date: "2025-01-15",
+ last_updated: "2026-04-12",
+ 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: 64000 },
+ },
+ "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-04-30",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.56, output: 3.5, cache_read: 0.22 },
+ limit: { context: 256000, output: 65536 },
+ },
+ "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-6": {
+ id: "kimi-k2-6",
+ name: "Kimi K2.6",
+ family: "kimi",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ structured_output: true,
+ temperature: true,
+ release_date: "2026-04-20",
+ last_updated: "2026-04-30",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.85, output: 4.655, cache_read: 0.22 },
+ 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,
+ knowledge: "2025-05-31",
+ 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 },
+ },
+ "z-ai-glm-5-turbo": {
+ id: "z-ai-glm-5-turbo",
+ name: "GLM 5 Turbo",
+ family: "glm",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: true,
+ release_date: "2026-03-15",
+ last_updated: "2026-04-12",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 1.2, output: 4, cache_read: 0.24 },
+ limit: { context: 200000, output: 32768 },
+ },
+ "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-12",
+ modalities: { input: ["text", "image", "video"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.175, output: 0.5 },
+ limit: { context: 256000, output: 8192 },
+ },
+ },
+ },
+ aihubmix: {
+ id: "aihubmix",
+ env: ["AIHUBMIX_API_KEY"],
+ npm: "@aihubmix/ai-sdk-provider",
+ name: "AIHubMix",
+ doc: "https://docs.aihubmix.com",
+ models: {
+ "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.2958, output: 1.1832, cache_read: 0.05916 },
+ limit: { context: 200000, output: 128000 },
+ },
+ "coding-glm-5.1-free": {
+ id: "coding-glm-5.1-free",
+ name: "Coding GLM 5.1 (free)",
+ family: "glm",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ structured_output: true,
+ temperature: true,
+ release_date: "2026-04-11",
+ last_updated: "2026-04-11",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0, output: 0, cache_read: 0 },
+ limit: { context: 204800, output: 128000 },
+ },
+ "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", "audio", "video", "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 },
+ },
+ "kimi-k2.5": {
+ id: "kimi-k2.5",
+ name: "Kimi K2.5",
+ family: "kimi-k2.5",
+ 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.105 },
+ limit: { context: 256000, output: 0 },
+ },
+ "glm-5v-turbo": {
+ id: "glm-5v-turbo",
+ name: "GLM 5 Vision Turbo",
+ family: "glm",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ structured_output: true,
+ temperature: true,
+ release_date: "2026-05-09",
+ last_updated: "2026-05-09",
+ modalities: { input: ["text", "image", "video"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.7042, output: 3.09848, cache_read: 0.169008 },
+ limit: { context: 200000, output: 128000 },
+ },
+ "grok-4.3": {
+ id: "grok-4.3",
+ name: "Grok 4.3",
+ family: "grok",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: true,
+ release_date: "2026-05-01",
+ last_updated: "2026-05-01",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: false,
+ cost: {
+ input: 1.25,
+ output: 2.5,
+ cache_read: 0.2,
+ context_over_200k: { input: 2.5, output: 5, cache_read: 0.4 },
+ },
+ limit: { context: 1000000, output: 1000000 },
+ },
+ "coding-minimax-m2.7-highspeed": {
+ id: "coding-minimax-m2.7-highspeed",
+ name: "Coding MiniMax M2.7 Highspeed",
+ family: "minimax",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ 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.2, output: 0.2 },
+ limit: { context: 204800, output: 13100 },
+ },
+ "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-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: 200000, 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", "audio", "video", "pdf"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 2, output: 12, cache_read: 0.2 },
+ limit: { context: 1048576, output: 65536 },
+ },
+ "coding-glm-5.1": {
+ id: "coding-glm-5.1",
+ name: "Coding-GLM-5.1",
+ family: "glm",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ temperature: true,
+ release_date: "2026-04-11",
+ last_updated: "2026-04-11",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.06, output: 0.22 },
+ limit: { context: 200000, output: 128000 },
+ },
+ "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", "audio", "video", "pdf"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.5, output: 3, cache_read: 0.05 },
+ limit: { context: 1048576, output: 65536 },
+ },
+ "gpt-5.5": {
+ id: "gpt-5.5",
+ name: "GPT-5.5",
+ family: "gpt",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: false,
+ knowledge: "2025-12-01",
+ release_date: "2026-04-23",
+ last_updated: "2026-04-23",
+ modalities: { input: ["text", "image", "pdf"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 5, output: 30, cache_read: 0.5 },
+ limit: { context: 1050000, output: 128000 },
+ },
+ "claude-opus-4-7": {
+ id: "claude-opus-4-7",
+ name: "Claude Opus 4.7",
+ family: "claude-opus",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: false,
+ knowledge: "2026-01-31",
+ release_date: "2026-04-16",
+ last_updated: "2026-04-16",
+ 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 },
+ },
+ "deepseek-v4-flash-think": {
+ id: "deepseek-v4-flash-think",
+ name: "DeepSeek V4 Flash Think",
+ family: "deepseek",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-05",
+ release_date: "2026-04-24",
+ last_updated: "2026-04-24",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.154, output: 0.308, cache_read: 0.0308 },
+ limit: { context: 1000000, output: 384000 },
+ },
+ "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 },
+ },
+ "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.125 },
+ limit: { context: 1048576, output: 65536 },
+ },
+ "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 },
+ },
+ "qwen3.6-plus": {
+ id: "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-05-09",
+ last_updated: "2026-05-09",
+ modalities: { input: ["text", "image", "video"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.282, output: 1.692, cache_read: 0.0282, cache_write: 0.3525 },
+ limit: { context: 991000, output: 64000 },
+ },
+ "gpt-5.4-mini": {
+ id: "gpt-5.4-mini",
+ name: "GPT-5.4-Mini",
+ family: "gpt-mini",
+ attachment: true,
+ reasoning: false,
+ tool_call: true,
+ structured_output: 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.75, output: 4.5, cache_read: 0.075 },
+ limit: { context: 400000, output: 128000 },
+ },
+ "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.845, output: 3.38, cache_read: 0.183112 },
+ limit: { context: 200000, 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.275 },
+ limit: { context: 200000, output: 100000 },
+ },
+ "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,
+ 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: 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.499, cache_read: 0.03 },
+ limit: { context: 1048576, output: 65536 },
+ },
+ "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 },
+ },
+ "gemini-3.1-flash-lite": {
+ id: "gemini-3.1-flash-lite",
+ name: "Gemini 3.1 Flash Lite",
+ 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", "audio", "video", "pdf"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.25, output: 1.5, cache_read: 0.25 },
+ limit: { context: 1048576, output: 65536 },
+ },
+ "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",
+ family: "claude-opus",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ knowledge: "2025-05-31",
+ 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: 200000, output: 32000 },
+ },
+ "coding-minimax-m2.7-free": {
+ id: "coding-minimax-m2.7-free",
+ name: "Coding-MiniMax-M2.7-Free",
+ 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 },
+ limit: { context: 204800, output: 13100 },
+ },
+ "deepseek-v4-flash": {
+ id: "deepseek-v4-flash",
+ name: "DeepSeek V4 Flash",
+ family: "deepseek-flash",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-05",
+ release_date: "2026-04-24",
+ last_updated: "2026-04-24",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.154, output: 0.308, cache_read: 0.0308 },
+ limit: { context: 1000000, output: 384000 },
+ },
+ "kimi-k2.6": {
+ id: "kimi-k2.6",
+ name: "Kimi K2.6",
+ family: "kimi-k2.6",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-01",
+ release_date: "2026-04-21",
+ last_updated: "2026-04-21",
+ modalities: { input: ["text", "image", "video"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.95, output: 3.9995, cache_read: 0.160835 },
+ limit: { context: 262144, output: 262144 },
+ },
+ "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,
+ release_date: "2026-03-11",
+ last_updated: "2026-03-11",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 2.5, output: 15, cache_read: 0.25 },
+ 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-31",
+ 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 },
+ },
+ "deepseek-v4-pro": {
+ id: "deepseek-v4-pro",
+ name: "DeepSeek V4 Pro",
+ family: "deepseek-thinking",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-05",
+ release_date: "2026-04-24",
+ last_updated: "2026-04-24",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.478, output: 0.956, cache_read: 0.004302 },
+ limit: { context: 1000000, output: 384000 },
+ },
+ "claude-opus-4-7-think": {
+ id: "claude-opus-4-7-think",
+ name: "Claude Opus 4.7 Thinking",
+ family: "claude-opus",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: false,
+ knowledge: "2026-01-31",
+ release_date: "2026-04-16",
+ last_updated: "2026-04-16",
+ 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 },
+ },
+ "coding-minimax-m2.7": {
+ id: "coding-minimax-m2.7",
+ name: "Coding MiniMax M2.7",
+ family: "minimax",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ 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.2, output: 0.2 },
+ limit: { context: 204800, output: 13100 },
+ },
+ "qwen3.6-max-preview": {
+ id: "qwen3.6-max-preview",
+ name: "Qwen3.6 Max Preview",
+ family: "qwen",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-04",
+ release_date: "2026-05-09",
+ last_updated: "2026-05-09",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 1.268, output: 7.608, cache_read: 0.1268, cache_write: 1.585 },
+ limit: { context: 240000, 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, 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,
+ 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 },
+ },
+ "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-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: 200000, output: 64000 },
+ },
+ "qwen3.6-flash": {
+ id: "qwen3.6-flash",
+ name: "Qwen3.6 Flash",
+ 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.169, output: 1.014, cache_read: 0.0169, cache_write: 0.21125 },
+ limit: { context: 991000, 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 },
+ },
+ },
+ },
+ 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.6": {
+ id: "kimi-k2.6",
+ name: "Kimi K2.6",
+ family: "kimi-k2.6",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-01",
+ release_date: "2026-04-21",
+ last_updated: "2026-04-21",
+ modalities: { input: ["text", "image", "video"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.95, output: 4, cache_read: 0.16 },
+ 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-k2.5",
+ 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",
+ },
+ },
+ "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",
+ },
+ },
+ "kimi-k2.6": {
+ id: "kimi-k2.6",
+ name: "Kimi K2.6",
+ family: "kimi",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: true,
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-01",
+ release_date: "2026-04-22",
+ last_updated: "2026-04-22",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.95, output: 4 },
+ limit: { context: 262144, output: 262144 },
+ provider: {
+ npm: "@ai-sdk/openai-compatible",
+ api: "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/models",
+ shape: "completions",
+ },
+ },
+ "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,
+ 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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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-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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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-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 },
+ },
+ "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 },
+ },
+ "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-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 },
+ },
+ "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 },
+ },
+ "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-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 },
+ },
+ "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-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 },
+ },
+ "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 },
+ },
+ 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-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 },
+ },
+ "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 },
+ },
+ "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-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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "gpt-4-turbo": {
+ id: "gpt-4-turbo",
+ name: "GPT-4 Turbo",
+ family: "gpt",
+ attachment: true,
+ reasoning: false,
+ tool_call: true,
+ 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.5": {
+ id: "gpt-5.5",
+ name: "GPT-5.5",
+ family: "gpt",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: false,
+ knowledge: "2025-12-01",
+ release_date: "2026-04-24",
+ last_updated: "2026-04-24",
+ modalities: { input: ["text", "image", "pdf"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 5, output: 30, cache_read: 0.5, context_over_200k: { input: 10, output: 45, cache_read: 1 } },
+ limit: { context: 1050000, input: 922000, output: 128000 },
+ },
+ },
+ },
+ "abliteration-ai": {
+ id: "abliteration-ai",
+ env: ["ABLIT_KEY"],
+ npm: "@ai-sdk/openai-compatible",
+ api: "https://api.abliteration.ai/v1",
+ name: "abliteration.ai",
+ doc: "https://docs.abliteration.ai/models",
+ models: {
+ "abliterated-model": {
+ id: "abliterated-model",
+ name: "Abliterated Model",
+ attachment: true,
+ reasoning: false,
+ tool_call: true,
+ structured_output: false,
+ temperature: true,
+ release_date: "2026-01-06",
+ last_updated: "2026-01-06",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 3, output: 3 },
+ limit: { context: 150000, input: 150000, output: 8192 },
+ },
+ },
+ },
+ "wafer.ai": {
+ id: "wafer.ai",
+ env: ["WAFER_API_KEY"],
+ npm: "@ai-sdk/openai-compatible",
+ api: "https://pass.wafer.ai/v1",
+ name: "Wafer",
+ doc: "https://docs.wafer.ai/wafer-pass",
+ models: {
+ "Qwen3.5-397B-A17B": {
+ id: "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, output: 0, cache_read: 0, cache_write: 0 },
+ limit: { context: 262144, output: 65536 },
+ },
+ "GLM-5.1": {
+ id: "GLM-5.1",
+ name: "GLM-5.1",
+ family: "glm",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ 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: 0, output: 0, cache_read: 0, cache_write: 0 },
+ limit: { context: 202752, 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 },
+ },
+ "DeepSeek-V4-Pro": {
+ id: "DeepSeek-V4-Pro",
+ name: "DeepSeek V4 Pro",
+ family: "deepseek-thinking",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-05",
+ release_date: "2026-04-24",
+ last_updated: "2026-04-24",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 },
+ limit: { context: 1000000, output: 384000 },
+ },
+ },
+ },
+ 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,
+ structured_output: 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, input: 180000, output: 16000 },
+ },
+ },
+ },
+ "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-4.3": {
+ id: "grok-4.3",
+ name: "Grok 4.3",
+ family: "grok",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-05-01",
+ last_updated: "2026-05-01",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: false,
+ cost: {
+ input: 1.25,
+ output: 2.5,
+ cache_read: 0.2,
+ context_over_200k: { input: 2.5, output: 5, cache_read: 0.4 },
+ },
+ limit: { context: 1000000, output: 30000 },
+ },
+ "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-31",
+ 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,
+ 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-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-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-31",
+ 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,
+ context_over_200k: { input: 10, output: 37.5, cache_read: 1, cache_write: 12.5 },
+ },
+ limit: { context: 1000000, output: 128000 },
+ },
+ "claude-opus-4-7@default": {
+ id: "claude-opus-4-7@default",
+ name: "Claude Opus 4.7",
+ family: "claude-opus",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: false,
+ knowledge: "2026-01-31",
+ release_date: "2026-04-16",
+ last_updated: "2026-04-16",
+ 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.1": {
+ id: "hf: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-04-12",
+ 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-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 },
+ },
+ "hf:moonshotai/Kimi-K2.6": {
+ id: "hf:moonshotai/Kimi-K2.6",
+ name: "Kimi K2.6",
+ family: "kimi-k2.6",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-01",
+ release_date: "2026-04-21",
+ last_updated: "2026-04-21",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.95, output: 4, cache_read: 0.95 },
+ limit: { context: 262144, output: 65536 },
+ },
+ },
+ },
+ 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/nemotron-3-nano-omni-30b-a3b-reasoning": {
+ id: "nvidia/nemotron-3-nano-omni-30b-a3b-reasoning",
+ name: "Nemotron 3 Nano Omni",
+ family: "nemotron",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: true,
+ release_date: "2026-04-28",
+ last_updated: "2026-04-28",
+ modalities: { input: ["text", "image", "video", "audio"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0, output: 0 },
+ limit: { context: 256000, output: 65536 },
+ },
+ "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.7": {
+ id: "minimaxai/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-04-11",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0, output: 0 },
+ 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,
+ 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 },
+ },
+ "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-03-27",
+ last_updated: "2026-03-27",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0, output: 0 },
+ limit: { context: 131072, output: 131072 },
+ },
+ "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.6": {
+ id: "moonshotai/kimi-k2.6",
+ name: "Kimi K2.6",
+ family: "kimi-k2.6",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-01",
+ release_date: "2026-04-21",
+ last_updated: "2026-04-21",
+ modalities: { input: ["text", "image", "video"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0, output: 0 },
+ limit: { context: 262144, output: 262144 },
+ },
+ "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 },
+ },
+ "mistralai/mistral-medium-3.5-128b": {
+ id: "mistralai/mistral-medium-3.5-128b",
+ name: "Mistral Medium 3.5 128B",
+ family: "mistral-medium",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: true,
+ release_date: "2026-04-29",
+ last_updated: "2026-04-29",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0, output: 0 },
+ limit: { context: 262144, output: 262144 },
+ },
+ "deepseek-ai/deepseek-v4-flash": {
+ id: "deepseek-ai/deepseek-v4-flash",
+ name: "DeepSeek V4 Flash",
+ family: "deepseek-flash",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-05",
+ release_date: "2026-04-24",
+ last_updated: "2026-04-24",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.14, output: 0.28, cache_read: 0.028 },
+ limit: { context: 1048576, output: 393216 },
+ },
+ "deepseek-ai/deepseek-v4-pro": {
+ id: "deepseek-ai/deepseek-v4-pro",
+ name: "DeepSeek V4 Pro",
+ family: "deepseek-thinking",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-05",
+ release_date: "2026-04-24",
+ last_updated: "2026-04-24",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 1.74, output: 3.48, cache_read: 0.145 },
+ limit: { context: 1048576, output: 393216 },
+ },
+ },
+ },
+ 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-2": {
+ id: "mercury-edit-2",
+ name: "Mercury Edit 2",
+ attachment: false,
+ reasoning: true,
+ tool_call: false,
+ temperature: true,
+ release_date: "2026-03-30",
+ last_updated: "2026-03-30",
+ 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 },
+ },
+ },
+ },
+ 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.5": {
+ id: "gpt-5.5",
+ name: "GPT-5.5",
+ family: "gpt",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: false,
+ knowledge: "2025-12-01",
+ release_date: "2026-04-23",
+ last_updated: "2026-04-23",
+ modalities: { input: ["text", "image", "pdf"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 5, output: 30, cache_read: 0.5, context_over_200k: { input: 10, output: 45, cache_read: 1 } },
+ limit: { context: 1050000, input: 922000, output: 128000 },
+ experimental: {
+ modes: {
+ fast: {
+ cost: { input: 12.5, output: 75, cache_read: 1.25 },
+ provider: { body: { service_tier: "priority" } },
+ },
+ },
+ },
+ },
+ "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 },
+ },
+ "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-5.5-pro": {
+ id: "gpt-5.5-pro",
+ name: "GPT-5.5 Pro",
+ family: "gpt-pro",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: false,
+ knowledge: "2025-12-01",
+ release_date: "2026-04-23",
+ last_updated: "2026-04-23",
+ modalities: { input: ["text", "image", "pdf"], 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-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-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-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": {
+ 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-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-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,
+ knowledge: "2025-08-31",
+ 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-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-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 },
+ },
+ "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.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-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-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 },
+ },
+ "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.31,
+ cache_write: 2.375,
+ context_over_200k: { input: 2.5, output: 15, cache_read: 0.25 },
+ },
+ limit: { context: 1048576, output: 65536 },
+ },
+ "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-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 },
+ },
+ },
+ },
+ digitalocean: {
+ id: "digitalocean",
+ env: ["DIGITALOCEAN_ACCESS_TOKEN"],
+ npm: "@ai-sdk/openai-compatible",
+ api: "https://inference.do-ai.run/v1",
+ name: "DigitalOcean",
+ doc: "https://docs.digitalocean.com/products/gradient-ai-platform/details/models/",
+ models: {
+ "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.075 },
+ limit: { context: 128000, output: 16384 },
+ },
+ "multi-qa-mpnet-base-dot-v1": {
+ id: "multi-qa-mpnet-base-dot-v1",
+ name: "Multi-QA-mpnet-base-dot-v1",
+ family: "text-embedding",
+ attachment: false,
+ reasoning: false,
+ tool_call: false,
+ temperature: false,
+ release_date: "2021-08-30",
+ last_updated: "2026-04-16",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.009, output: 0 },
+ limit: { context: 512, output: 768 },
+ },
+ "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-04-16",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.5, output: 2.7 },
+ limit: { context: 262144, output: 32768 },
+ },
+ "nemotron-3-nano-omni": {
+ id: "nemotron-3-nano-omni",
+ name: "Nemotron Nano 3 Omni",
+ family: "nemotron",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: true,
+ release_date: "2026-04-28",
+ last_updated: "2026-04-30",
+ modalities: { input: ["text", "image", "video", "audio"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.5, output: 0.9 },
+ limit: { context: 65536, output: 65536 },
+ },
+ "llama3-8b-instruct": {
+ id: "llama3-8b-instruct",
+ name: "Llama 3.1 Instruct (8B)",
+ 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.198, output: 0.198 },
+ limit: { context: 131072, output: 131072 },
+ },
+ "anthropic-claude-opus-4.7": {
+ id: "anthropic-claude-opus-4.7",
+ name: "Claude Opus 4.7",
+ family: "claude-opus",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: false,
+ knowledge: "2026-01-31",
+ release_date: "2026-04-16",
+ last_updated: "2026-04-16",
+ 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": {
+ 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.3, cache_write: 3.75 },
+ },
+ limit: { context: 1000000, output: 64000 },
+ },
+ "wan2-2-t2v-a14b": {
+ id: "wan2-2-t2v-a14b",
+ name: "Wan2.2-T2V-A14B",
+ attachment: false,
+ reasoning: false,
+ tool_call: false,
+ temperature: false,
+ release_date: "2025-07-28",
+ last_updated: "2026-04-30",
+ modalities: { input: ["text"], output: ["video"] },
+ open_weights: true,
+ cost: { input: 0.6, output: 0 },
+ limit: { context: 100, output: 1 },
+ },
+ "qwen-2.5-14b-instruct": {
+ id: "qwen-2.5-14b-instruct",
+ name: "Qwen 2.5 14B Instruct",
+ family: "qwen",
+ attachment: false,
+ reasoning: false,
+ tool_call: true,
+ temperature: true,
+ knowledge: "2024-09",
+ release_date: "2024-09-19",
+ last_updated: "2024-09-19",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ limit: { context: 131072, output: 131072 },
+ },
+ "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: 1000000, output: 128000 },
+ },
+ "qwen3.5-397b-a17b": {
+ id: "qwen3.5-397b-a17b",
+ name: "Qwen 3.5 397B A17B",
+ family: "qwen3.5",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: true,
+ release_date: "2026-02-15",
+ last_updated: "2026-04-30",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.55, output: 3.5 },
+ limit: { context: 262144, output: 81920 },
+ },
+ "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 },
+ },
+ "e5-large-v2": {
+ id: "e5-large-v2",
+ name: "E5 Large v2",
+ family: "text-embedding",
+ attachment: false,
+ reasoning: false,
+ tool_call: false,
+ temperature: false,
+ release_date: "2023-05-19",
+ last_updated: "2026-04-30",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.02, output: 0 },
+ limit: { context: 512, output: 1024 },
+ },
+ "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,
+ 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 },
+ },
+ "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-04-16",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 1, output: 3.2 },
+ limit: { context: 202752, output: 128000 },
+ },
+ "openai-gpt-5.4-nano": {
+ id: "openai-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, output: 128000 },
+ },
+ "mistral-7b-instruct-v0.3": {
+ id: "mistral-7b-instruct-v0.3",
+ name: "Mistral 7B Instruct v0.3",
+ family: "mistral",
+ attachment: false,
+ reasoning: false,
+ tool_call: true,
+ temperature: true,
+ release_date: "2024-05-22",
+ last_updated: "2024-05-22",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ limit: { context: 32768, output: 32768 },
+ },
+ "llama3.3-70b-instruct": {
+ id: "llama3.3-70b-instruct",
+ name: "Llama 3.3 Instruct 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.65, output: 0.65 },
+ limit: { context: 128000, output: 128000 },
+ },
+ "mistral-3-14B": {
+ id: "mistral-3-14B",
+ name: "Ministral 3 14B Instruct",
+ family: "ministral",
+ attachment: false,
+ reasoning: false,
+ tool_call: true,
+ structured_output: true,
+ temperature: true,
+ release_date: "2025-12-15",
+ last_updated: "2026-04-30",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.2, output: 0.2 },
+ limit: { context: 262144, 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,
+ 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.99, output: 0.99 },
+ limit: { context: 131072, output: 32768 },
+ },
+ "alibaba-qwen3-32b": {
+ id: "alibaba-qwen3-32b",
+ name: "Qwen3-32B",
+ family: "qwen",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: true,
+ release_date: "2025-04-30",
+ last_updated: "2026-04-16",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.25, output: 0.55 },
+ limit: { context: 131000, output: 40960 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "anthropic-claude-3-opus": {
+ id: "anthropic-claude-3-opus",
+ name: "Claude 3 Opus",
+ family: "claude-opus",
+ attachment: true,
+ reasoning: false,
+ tool_call: true,
+ temperature: true,
+ knowledge: "2023-08",
+ release_date: "2024-02-29",
+ last_updated: "2024-02-29",
+ 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: 4096 },
+ status: "deprecated",
+ },
+ "stable-diffusion-3.5-large": {
+ id: "stable-diffusion-3.5-large",
+ name: "Stable Diffusion 3.5 Large",
+ family: "stable-diffusion",
+ attachment: false,
+ reasoning: false,
+ tool_call: false,
+ temperature: false,
+ release_date: "2024-10-22",
+ last_updated: "2026-04-30",
+ modalities: { input: ["text"], output: ["image"] },
+ open_weights: true,
+ cost: { input: 0.08, output: 0 },
+ limit: { context: 256, output: 1 },
+ },
+ "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, output: 128000 },
+ },
+ "llama-4-maverick": {
+ id: "llama-4-maverick",
+ 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-05",
+ last_updated: "2026-04-30",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.25, output: 0.87 },
+ limit: { context: 1000000, output: 16384 },
+ },
+ "anthropic-claude-4.5-sonnet": {
+ id: "anthropic-claude-4.5-sonnet",
+ 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,
+ context_over_200k: { input: 6, output: 22.5, cache_read: 0.3, cache_write: 3.75 },
+ },
+ limit: { context: 1000000, output: 64000 },
+ },
+ "qwen3-embedding-0.6b": {
+ id: "qwen3-embedding-0.6b",
+ name: "Qwen3 Embedding 0.6B",
+ family: "text-embedding",
+ attachment: false,
+ reasoning: false,
+ tool_call: false,
+ temperature: false,
+ release_date: "2025-06-03",
+ last_updated: "2026-04-16",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.04, output: 0 },
+ limit: { context: 8000, output: 1024 },
+ status: "beta",
+ },
+ "anthropic-claude-4.5-haiku": {
+ id: "anthropic-claude-4.5-haiku",
+ 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: 1, output: 5, cache_read: 1, cache_write: 1.25 },
+ limit: { context: 200000, output: 64000 },
+ },
+ "gte-large-en-v1.5": {
+ id: "gte-large-en-v1.5",
+ name: "GTE Large (v1.5)",
+ family: "text-embedding",
+ attachment: false,
+ reasoning: false,
+ tool_call: false,
+ temperature: false,
+ release_date: "2024-03-27",
+ last_updated: "2026-04-16",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.09, output: 0 },
+ limit: { context: 8192, output: 1024 },
+ },
+ "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 },
+ },
+ "anthropic-claude-3.5-haiku": {
+ id: "anthropic-claude-3.5-haiku",
+ name: "Claude 3.5 Haiku",
+ family: "claude-haiku",
+ attachment: false,
+ reasoning: false,
+ tool_call: true,
+ temperature: true,
+ knowledge: "2024-07",
+ release_date: "2024-11-05",
+ last_updated: "2024-11-05",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.8, output: 4, cache_read: 0.08, cache_write: 1 },
+ limit: { context: 200000, output: 8192 },
+ status: "deprecated",
+ },
+ "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 },
+ },
+ "deepseek-3.2": {
+ id: "deepseek-3.2",
+ name: "DeepSeek V3.2",
+ family: "deepseek",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ temperature: true,
+ knowledge: "2024-12",
+ release_date: "2025-12-02",
+ last_updated: "2026-04-30",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.5, output: 1.6 },
+ limit: { context: 128000, output: 64000 },
+ },
+ "nemotron-3-nano-30b": {
+ id: "nemotron-3-nano-30b",
+ name: "Nemotron 3 Nano 30B A3B",
+ family: "nemotron",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ release_date: "2025-04-14",
+ last_updated: "2025-04-14",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ limit: { context: 262144, output: 262144 },
+ },
+ "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 },
+ },
+ "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,
+ knowledge: "2024-06",
+ release_date: "2025-08-05",
+ last_updated: "2026-04-16",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.05, output: 0.45 },
+ limit: { context: 131072, output: 131072 },
+ },
+ "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: "2026-04-30",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.45, output: 1.7 },
+ limit: { context: 262144, output: 65536 },
+ },
+ "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-oss-120b": {
+ id: "openai-gpt-oss-120b",
+ name: "gpt-oss-120b",
+ family: "gpt-oss",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ structured_output: true,
+ temperature: true,
+ knowledge: "2024-06",
+ release_date: "2025-08-05",
+ last_updated: "2026-04-16",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.1, output: 0.7 },
+ limit: { context: 131072, output: 131072 },
+ },
+ "gemma-4-31B-it": {
+ id: "gemma-4-31B-it",
+ name: "Gemma 4 31B",
+ family: "gemma",
+ attachment: true,
+ reasoning: false,
+ tool_call: true,
+ structured_output: true,
+ temperature: true,
+ release_date: "2026-04-22",
+ last_updated: "2026-04-30",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.18, output: 0.5 },
+ limit: { context: 256000, output: 8192 },
+ },
+ "nemotron-nano-12b-v2-vl": {
+ id: "nemotron-nano-12b-v2-vl",
+ name: "Nemotron Nano 12B v2 VL",
+ family: "nemotron",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ knowledge: "2024-10",
+ release_date: "2025-12-01",
+ last_updated: "2026-04-30",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.2, output: 0.6 },
+ limit: { context: 128000, output: 16384 },
+ },
+ "anthropic-claude-4.1-opus": {
+ id: "anthropic-claude-4.1-opus",
+ 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 },
+ },
+ "kimi-k2.6": {
+ id: "kimi-k2.6",
+ name: "Kimi K2.6",
+ family: "kimi",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ structured_output: true,
+ temperature: false,
+ knowledge: "2025-01",
+ release_date: "2026-04-21",
+ last_updated: "2026-04-21",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.95, output: 4 },
+ limit: { context: 262144, output: 262144 },
+ },
+ "openai-gpt-image-2": {
+ id: "openai-gpt-image-2",
+ name: "GPT Image 2",
+ 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, output: 0 },
+ },
+ "anthropic-claude-4.6-sonnet": {
+ id: "anthropic-claude-4.6-sonnet",
+ name: "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-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,
+ context_over_200k: { input: 6, output: 22.5, cache_read: 0.3, cache_write: 3.75 },
+ },
+ limit: { context: 1000000, output: 64000 },
+ },
+ "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, 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: 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: 1, cache_write: 1.25 },
+ limit: { context: 200000, output: 64000 },
+ },
+ "deepseek-v4-pro": {
+ id: "deepseek-v4-pro",
+ name: "DeepSeek V4 Pro",
+ family: "deepseek-thinking",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-05",
+ release_date: "2026-04-24",
+ last_updated: "2026-04-24",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 1.74, output: 3.48 },
+ limit: { context: 1048576, output: 393216 },
+ },
+ "ministral-3-8b-instruct-2512": {
+ id: "ministral-3-8b-instruct-2512",
+ name: "Ministral 3 8B",
+ family: "ministral",
+ attachment: true,
+ reasoning: false,
+ tool_call: true,
+ temperature: true,
+ release_date: "2025-12-15",
+ last_updated: "2025-12-15",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: true,
+ limit: { context: 262144, output: 262144 },
+ },
+ "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-08",
+ release_date: "2026-02-12",
+ last_updated: "2026-04-16",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.3, output: 1.2 },
+ limit: { context: 204800, output: 128000 },
+ status: "beta",
+ },
+ "openai-gpt-image-1": {
+ id: "openai-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,
+ cost: { input: 5, output: 40, cache_read: 1.25 },
+ limit: { context: 0, output: 0 },
+ },
+ "openai-gpt-5.5": {
+ id: "openai-gpt-5.5",
+ name: "GPT-5.5",
+ family: "gpt",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: false,
+ knowledge: "2025-12-01",
+ release_date: "2026-04-23",
+ last_updated: "2026-04-30",
+ modalities: { input: ["text", "image", "pdf"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 5, output: 30, cache_read: 0.5, context_over_200k: { input: 10, output: 45, cache_read: 1 } },
+ limit: { context: 1000000, output: 128000 },
+ },
+ "nvidia-nemotron-3-super-120b": {
+ id: "nvidia-nemotron-3-super-120b",
+ name: "Nemotron-3-Super-120B",
+ family: "nemotron",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: true,
+ knowledge: "2026-02",
+ release_date: "2026-03-11",
+ last_updated: "2026-04-16",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.3, output: 0.65 },
+ limit: { context: 256000, output: 32768 },
+ status: "beta",
+ },
+ "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,
+ 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, output: 128000 },
+ },
+ "all-mini-lm-l6-v2": {
+ id: "all-mini-lm-l6-v2",
+ name: "All-MiniLM-L6-v2",
+ family: "text-embedding",
+ attachment: false,
+ reasoning: false,
+ tool_call: false,
+ temperature: false,
+ release_date: "2021-08-30",
+ last_updated: "2026-04-16",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.009, output: 0 },
+ limit: { context: 256, output: 384 },
+ },
+ "bge-m3": {
+ id: "bge-m3",
+ name: "BGE M3",
+ family: "bge",
+ attachment: false,
+ reasoning: false,
+ tool_call: false,
+ temperature: false,
+ release_date: "2024-01-30",
+ last_updated: "2026-04-30",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.02, output: 0 },
+ limit: { context: 8192, output: 1024 },
+ },
+ "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: 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-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-31",
+ 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,
+ context_over_200k: { input: 10, output: 37.5, cache_read: 0.5, cache_write: 6.25 },
+ },
+ limit: { context: 1000000, 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-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: 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, output: 128000 },
+ },
+ "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, output: 128000 },
+ },
+ "arcee-trinity-large-thinking": {
+ id: "arcee-trinity-large-thinking",
+ name: "Trinity Large Thinking",
+ family: "trinity",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-04-02",
+ last_updated: "2026-04-16",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.25, output: 0.9, cache_read: 0.06 },
+ limit: { context: 256000, output: 128000 },
+ status: "beta",
+ },
+ "mistral-nemo-instruct-2407": {
+ id: "mistral-nemo-instruct-2407",
+ name: "Mistral Nemo Instruct",
+ family: "mistral",
+ attachment: false,
+ reasoning: false,
+ tool_call: true,
+ temperature: true,
+ release_date: "2024-07-18",
+ last_updated: "2024-07-18",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.3, output: 0.3 },
+ limit: { context: 128000, output: 16384 },
+ status: "deprecated",
+ },
+ "deepseek-v3": {
+ id: "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: "2025-03-24",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ limit: { context: 163840, output: 131072 },
+ },
+ "bge-reranker-v2-m3": {
+ id: "bge-reranker-v2-m3",
+ name: "BGE Reranker v2 M3",
+ family: "bge",
+ attachment: false,
+ reasoning: false,
+ tool_call: false,
+ temperature: false,
+ release_date: "2024-03-12",
+ last_updated: "2026-04-30",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.01, output: 0 },
+ limit: { context: 8192, output: 1 },
+ },
+ "anthropic-claude-3.7-sonnet": {
+ id: "anthropic-claude-3.7-sonnet",
+ name: "Claude 3.7 Sonnet",
+ family: "claude-sonnet",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ knowledge: "2024-11",
+ release_date: "2025-02-24",
+ last_updated: "2025-02-24",
+ modalities: { input: ["text", "image"], 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",
+ },
+ "qwen3-tts-voicedesign": {
+ id: "qwen3-tts-voicedesign",
+ name: "Qwen3 TTS VoiceDesign",
+ family: "qwen",
+ attachment: false,
+ reasoning: false,
+ tool_call: false,
+ temperature: false,
+ release_date: "2026-04-21",
+ last_updated: "2026-04-30",
+ modalities: { input: ["text"], output: ["audio"] },
+ open_weights: true,
+ limit: { context: 32768, output: 1 },
+ },
+ "openai-gpt-image-1.5": {
+ id: "openai-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: ["image"] },
+ open_weights: false,
+ cost: { input: 5, output: 10, cache_read: 1 },
+ limit: { context: 0, output: 0 },
+ },
+ "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, output: 128000 },
+ },
+ "anthropic-claude-3.5-sonnet": {
+ id: "anthropic-claude-3.5-sonnet",
+ name: "Claude 3.5 Sonnet",
+ family: "claude-sonnet",
+ attachment: true,
+ reasoning: false,
+ tool_call: true,
+ temperature: true,
+ knowledge: "2024-04",
+ release_date: "2024-06-20",
+ last_updated: "2024-10-22",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 3, output: 15, cache_read: 0.3, cache_write: 3.75 },
+ limit: { context: 200000, output: 8192 },
+ status: "deprecated",
+ },
+ "fal-ai/fast-sdxl": {
+ id: "fal-ai/fast-sdxl",
+ name: "Fast SDXL",
+ family: "stable-diffusion",
+ attachment: false,
+ reasoning: false,
+ tool_call: false,
+ temperature: false,
+ release_date: "2023-07-26",
+ last_updated: "2026-04-16",
+ modalities: { input: ["text"], output: ["image"] },
+ open_weights: true,
+ limit: { context: 0, output: 0 },
+ },
+ "fal-ai/flux/schnell": {
+ id: "fal-ai/flux/schnell",
+ name: "FLUX.1 [schnell]",
+ family: "flux",
+ attachment: false,
+ reasoning: false,
+ tool_call: false,
+ temperature: false,
+ release_date: "2024-08-01",
+ last_updated: "2026-04-16",
+ modalities: { input: ["text"], output: ["image"] },
+ open_weights: true,
+ limit: { context: 0, output: 0 },
+ },
+ "fal-ai/elevenlabs/tts/multilingual-v2": {
+ id: "fal-ai/elevenlabs/tts/multilingual-v2",
+ name: "ElevenLabs Multilingual TTS v2",
+ family: "elevenlabs",
+ attachment: false,
+ reasoning: false,
+ tool_call: false,
+ temperature: false,
+ release_date: "2023-08-22",
+ last_updated: "2026-04-16",
+ modalities: { input: ["text"], output: ["audio"] },
+ open_weights: false,
+ limit: { context: 0, output: 0 },
+ },
+ "fal-ai/stable-audio-25/text-to-audio": {
+ id: "fal-ai/stable-audio-25/text-to-audio",
+ name: "Stable Audio 2.5 (Text-to-Audio)",
+ attachment: false,
+ reasoning: false,
+ tool_call: false,
+ temperature: false,
+ release_date: "2025-10-08",
+ last_updated: "2026-04-16",
+ modalities: { input: ["text"], output: ["audio"] },
+ open_weights: false,
+ limit: { context: 0, output: 0 },
+ },
+ },
+ },
+ 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 },
+ },
+ "mistral-medium-2604": {
+ id: "mistral-medium-2604",
+ name: "Mistral Medium 3.5",
+ family: "mistral-medium",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: true,
+ release_date: "2026-04-29",
+ last_updated: "2026-04-29",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 1.5, output: 7.5 },
+ limit: { context: 262144, output: 262144 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "mistral-medium-latest": {
+ id: "mistral-medium-latest",
+ name: "Mistral Medium (latest)",
+ family: "mistral-medium",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: true,
+ release_date: "2026-04-29",
+ last_updated: "2026-04-29",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 1.5, output: 7.5 },
+ 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: {
+ "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 },
+ },
+ "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 },
+ },
+ "qwen3.5-9b": {
+ id: "qwen3.5-9b",
+ name: "Qwen3.5-9B",
+ attachment: true,
+ reasoning: false,
+ tool_call: true,
+ structured_output: true,
+ temperature: true,
+ release_date: "2026-02-15",
+ last_updated: "2026-02-15",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.1, output: 0.15 },
+ limit: { context: 262144, output: 262144 },
+ },
+ "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, cache_read: 0.26 },
+ 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, cache_read: 0.5 },
+ 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, cache_read: 0.06 },
+ 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: {
+ "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: "2026-03-18",
+ last_updated: "2026-03-18",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.47, output: 1.4 },
+ limit: { context: 202752, output: 196072 },
+ },
+ "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 },
+ },
+ "qwen3-235b-a22b-instruct-2507": {
+ id: "qwen3-235b-a22b-instruct-2507",
+ name: "Qwen3 235B A22B Instruct 2507",
+ family: "qwen",
+ attachment: false,
+ reasoning: true,
+ 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.062, output: 0.408 },
+ limit: { context: 131000, output: 131000 },
+ },
+ "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 },
+ },
+ "claude-opus4-7": {
+ id: "claude-opus4-7",
+ name: "Claude Opus 4.7",
+ family: "claude-opus",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: false,
+ knowledge: "2026-01-31",
+ release_date: "2026-04-16",
+ last_updated: "2026-04-16",
+ modalities: { input: ["text", "image", "pdf"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 5.6, output: 27.99, cache_read: 0.56, cache_write: 6.99 },
+ limit: { context: 1000000, 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: 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 },
+ },
+ "codestral-2508": {
+ id: "codestral-2508",
+ name: "Codestral 2508",
+ family: "mistral",
+ attachment: false,
+ reasoning: false,
+ tool_call: true,
+ temperature: true,
+ knowledge: "2025-03",
+ 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, cache_read: 0.03 },
+ limit: { context: 256000, output: 256000 },
+ },
+ "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 },
+ },
+ "nemotron-3-super-120b-a12b": {
+ id: "nemotron-3-super-120b-a12b",
+ name: "Nemotron 3 Super 120B A12B",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ knowledge: "2025-12",
+ release_date: "2026-03-11",
+ last_updated: "2026-03-11",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.266, output: 0.799 },
+ limit: { context: 262144, output: 262144 },
+ },
+ "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-31",
+ 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-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-04-14",
+ last_updated: "2026-04-14",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 1.31, output: 4.1, cache_read: 0.24 },
+ limit: { context: 204800, output: 131072 },
+ },
+ "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 },
+ },
+ "kimi-k2.6": {
+ id: "kimi-k2.6",
+ name: "Kimi K2.6",
+ family: "kimi-thinking",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ temperature: true,
+ release_date: "2026-04-17",
+ last_updated: "2026-04-17",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.81, output: 3.54, cache_read: 0.2 },
+ limit: { context: 256000, output: 256000 },
+ },
+ "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-31",
+ 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 },
+ },
+ "mixtral-8x7B-instruct-v0.1": {
+ id: "mixtral-8x7B-instruct-v0.1",
+ name: "Mixtral 8x7B Instruct v0.1",
+ attachment: false,
+ reasoning: true,
+ tool_call: false,
+ temperature: true,
+ knowledge: "2023-09",
+ release_date: "2023-12-11",
+ last_updated: "2023-12-11",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.438, output: 0.68 },
+ limit: { context: 32000, output: 32000 },
+ },
+ "hermes-4-70b": {
+ id: "hermes-4-70b",
+ name: "Hermes 4 70B",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ knowledge: "2023-12",
+ release_date: "2025-08-26",
+ last_updated: "2025-08-26",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.116, output: 0.358 },
+ limit: { context: 128000, output: 128000 },
+ },
+ "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 },
+ },
+ "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.266, output: 0.444 },
+ limit: { context: 163840, output: 163840 },
+ },
+ "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 },
+ },
+ "qwen-2.5-72b-instruct": {
+ id: "qwen-2.5-72b-instruct",
+ name: "Qwen2.5 72B Instruct",
+ family: "qwen",
+ attachment: false,
+ reasoning: false,
+ tool_call: true,
+ temperature: true,
+ knowledge: "2024-06",
+ release_date: "2024-09-19",
+ last_updated: "2024-09-19",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.062, output: 0.231 },
+ limit: { context: 33000, output: 33000 },
+ },
+ "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: 0.585, output: 2.307 },
+ limit: { context: 164000, output: 164000 },
+ },
+ "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 },
+ },
+ "qwen3.5-122b-a10b": {
+ id: "qwen3.5-122b-a10b",
+ name: "Qwen3.5 122B A10B",
+ family: "qwen",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ knowledge: "2026-01",
+ release_date: "2026-02-24",
+ last_updated: "2026-02-24",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.444, output: 3.106 },
+ limit: { context: 262144, output: 262144 },
+ },
+ "llama-3.3-70b-instruct": {
+ id: "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.089, output: 0.275 },
+ limit: { context: 131000, output: 131000 },
+ },
+ "mistral-large-2512": {
+ id: "mistral-large-2512",
+ name: "Mistral Large 3 2512",
+ family: "mistral-large",
+ attachment: true,
+ reasoning: false,
+ tool_call: true,
+ temperature: true,
+ knowledge: "2025-12",
+ release_date: "2025-12-01",
+ last_updated: "2025-12-01",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.5, output: 1.5, cache_read: 0.05 },
+ limit: { context: 256000, output: 256000 },
+ },
+ "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: "2026-01",
+ release_date: "2026-02-16",
+ last_updated: "2026-02-16",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.6, output: 3.6 },
+ limit: { context: 250000, output: 250000 },
+ },
+ "deepseek-v4-flash": {
+ id: "deepseek-v4-flash",
+ name: "DeepSeek V4 Flash",
+ family: "deepseek-flash",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ temperature: true,
+ knowledge: "2025-05",
+ release_date: "2026-04-24",
+ last_updated: "2026-04-24",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.133, output: 0.266, cache_read: 0.028 },
+ limit: { context: 1048576, output: 384000 },
+ },
+ "deepseek-v4-pro": {
+ id: "deepseek-v4-pro",
+ name: "DeepSeek V4 Pro",
+ family: "deepseek-thinking",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ temperature: true,
+ knowledge: "2025-05",
+ release_date: "2026-04-24",
+ last_updated: "2026-04-24",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 1.553, output: 3.106, cache_read: 0.145 },
+ limit: { context: 1048576, output: 384000 },
+ },
+ "qwen3-coder-30b-a3b-instruct": {
+ id: "qwen3-coder-30b-a3b-instruct",
+ name: "Qwen3 Coder 30B A3B Instruct",
+ family: "qwen",
+ attachment: false,
+ reasoning: true,
+ 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.053, output: 0.222 },
+ limit: { context: 262000, output: 262000 },
+ },
+ },
+ },
+ 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.6": {
+ id: "moonshotai/Kimi-K2.6",
+ name: "moonshotai/Kimi-K2.6",
+ family: "kimi",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ structured_output: true,
+ temperature: true,
+ release_date: "2026-04-21",
+ last_updated: "2026-04-21",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.95, output: 4, cache_read: 0.16 },
+ 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,
+ interleaved: { field: "reasoning_content" },
+ structured_output: true,
+ temperature: true,
+ 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.25 },
+ 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.6-27b": {
+ id: "alibaba/qwen3.6-27b",
+ name: "Qwen 3.6 27B",
+ family: "qwen3.6",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-04-22",
+ last_updated: "2026-05-01",
+ modalities: { input: ["text", "image", "pdf"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.6, output: 3.5999999999999996 },
+ limit: { context: 256000, output: 256000 },
+ },
+ "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/qwen-3.6-max-preview": {
+ id: "alibaba/qwen-3.6-max-preview",
+ name: "Qwen 3.6 Max Preview",
+ family: "qwen",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-04-20",
+ last_updated: "2026-04-24",
+ modalities: { input: ["text", "image", "pdf"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 1.3, output: 7.8, cache_read: 0.26, cache_write: 1.625 },
+ limit: { context: 240000, output: 64000 },
+ },
+ "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-vl-235b-a22b-instruct": {
+ id: "alibaba/qwen3-vl-235b-a22b-instruct",
+ name: "Qwen3 VL 235B A22B Instruct",
+ family: "qwen",
+ attachment: true,
+ reasoning: false,
+ tool_call: false,
+ temperature: true,
+ release_date: "2025-09-24",
+ last_updated: "2026-05-01",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.39999999999999997, output: 1.5999999999999999 },
+ limit: { context: 131072, output: 129024 },
+ },
+ "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-v4-flash": {
+ id: "deepseek/deepseek-v4-flash",
+ name: "DeepSeek V4 Flash",
+ family: "deepseek",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-04-23",
+ last_updated: "2026-04-24",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.14, output: 0.28, cache_read: 0.028 },
+ limit: { context: 1000000, output: 384000 },
+ },
+ "deepseek/deepseek-v4-pro": {
+ id: "deepseek/deepseek-v4-pro",
+ name: "DeepSeek V4 Pro",
+ family: "deepseek",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-04-23",
+ last_updated: "2026-04-24",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 1.74, output: 3.48, cache_read: 0.145 },
+ limit: { context: 1000000, output: 384000 },
+ },
+ "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-5.1": {
+ id: "zai/glm-5.1",
+ name: "GLM 5.1",
+ family: "glm",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-04-07",
+ last_updated: "2026-04-16",
+ modalities: { input: ["text", "image", "pdf"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 1.4, output: 4.4, cache_read: 0.26 },
+ limit: { context: 202752, output: 202752 },
+ },
+ "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.3": {
+ id: "xai/grok-4.3",
+ name: "Grok 4.3",
+ family: "grok",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-04-30",
+ last_updated: "2026-05-01",
+ modalities: { input: ["text", "image", "pdf"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 1.25, output: 2.5, cache_read: 0.19999999999999998 },
+ limit: { context: 1000000, output: 1000000 },
+ },
+ "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-edit-2": {
+ id: "inception/mercury-edit-2",
+ name: "Mercury Edit 2",
+ attachment: false,
+ reasoning: true,
+ tool_call: false,
+ temperature: true,
+ release_date: "2026-03-30",
+ last_updated: "2026-03-30",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.25, output: 0.75, cache_read: 0.025 },
+ limit: { context: 128000, output: 8192 },
+ },
+ "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,
+ release_date: "2025-02-26",
+ last_updated: "2026-05-01",
+ 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.5": {
+ id: "openai/gpt-5.5",
+ name: "GPT 5.5",
+ family: "gpt",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-04-24",
+ last_updated: "2026-04-24",
+ modalities: { input: ["text", "image", "pdf"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 5, output: 30, cache_read: 0.5 },
+ limit: { context: 1000000, input: 872000, output: 128000 },
+ },
+ "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-5.5-pro": {
+ id: "openai/gpt-5.5-pro",
+ name: "GPT 5.5 Pro",
+ family: "gpt",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-04-24",
+ last_updated: "2026-04-24",
+ modalities: { input: ["text", "image", "pdf"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 30, output: 180 },
+ limit: { context: 1000000, input: 872000, output: 128000 },
+ },
+ "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.1-flash-lite": {
+ id: "google/gemini-3.1-flash-lite",
+ name: "Gemini 3.1 Flash Lite",
+ family: "gemini",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-05-07",
+ last_updated: "2026-05-08",
+ modalities: { input: ["text", "image", "pdf"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.25, output: 1.5, cache_read: 0.03 },
+ limit: { context: 1000000, output: 65000 },
+ },
+ "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.03, 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.125,
+ context_over_200k: { input: 2.5, output: 15, cache_read: 0.25 },
+ },
+ 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.6": {
+ id: "moonshotai/kimi-k2.6",
+ name: "Kimi K2.6",
+ family: "kimi-k2.6",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-04-20",
+ last_updated: "2026-04-24",
+ modalities: { input: ["text", "image", "pdf"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.95, output: 4, cache_read: 0.16 },
+ limit: { context: 262000, output: 262000 },
+ },
+ "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",
+ },
+ "interfaze/interfaze-beta": {
+ id: "interfaze/interfaze-beta",
+ name: "Interfaze Beta",
+ attachment: false,
+ reasoning: true,
+ tool_call: false,
+ temperature: true,
+ release_date: "2025-10-07",
+ last_updated: "2026-04-29",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 1.5, output: 3.5 },
+ limit: { context: 1000000, output: 32000 },
+ },
+ "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-31",
+ 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.7": {
+ id: "anthropic/claude-opus-4.7",
+ name: "Claude Opus 4.7",
+ family: "claude-opus",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: false,
+ release_date: "2026-04-16",
+ last_updated: "2026-04-16",
+ 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-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: 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.5-pro": {
+ id: "xiaomi/mimo-v2.5-pro",
+ name: "MiMo V2.5 Pro",
+ family: "mimo-v2.5-pro",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-04-22",
+ last_updated: "2026-05-01",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 1, output: 3, cache_read: 0.19999999999999998 },
+ limit: { context: 1050000, output: 131000 },
+ },
+ "xiaomi/mimo-v2.5": {
+ id: "xiaomi/mimo-v2.5",
+ name: "MiMo M2.5",
+ family: "mimo-v2.5",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-04-22",
+ last_updated: "2026-05-01",
+ modalities: { input: ["text", "image", "audio", "video"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.39999999999999997, output: 2, cache_read: 0.08 },
+ limit: { context: 1050000, output: 131100 },
+ },
+ "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: {
+ "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 },
+ },
+ "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-08",
+ last_updated: "2025-07-08",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.8, output: 2.4 },
+ limit: { context: 131072, output: 8192 },
+ },
+ "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",
+ },
+ "hermes-2-pro-llama-3-8b": {
+ id: "hermes-2-pro-llama-3-8b",
+ name: "Hermes 2 Pro Llama 3 8B",
+ family: "hermes",
+ 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 },
+ },
+ "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: false,
+ cost: { input: 0.5, output: 1 },
+ 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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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: true,
+ cost: { input: 0.07, output: 0.3, cache_read: 0.01 },
+ limit: { context: 256000, output: 8192 },
+ },
+ "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: true,
+ cost: { input: 0.25, output: 2, cache_read: 0.05 },
+ limit: { context: 256000, output: 8192 },
+ },
+ "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: true,
+ structured_output: true,
+ temperature: true,
+ release_date: "2025-09-15",
+ last_updated: "2025-09-15",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.8, output: 2.4 },
+ limit: { context: 131072, output: 8192 },
+ },
+ "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-02",
+ last_updated: "2025-10-02",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.1, output: 0.1 },
+ limit: { context: 131072, output: 8192 },
+ },
+ "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: true,
+ structured_output: true,
+ temperature: true,
+ release_date: "2025-03-15",
+ last_updated: "2025-03-15",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.3, output: 0.3 },
+ limit: { context: 131072, output: 8192 },
+ },
+ "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: false,
+ temperature: true,
+ release_date: "2025-08-19",
+ last_updated: "2025-08-19",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.1, output: 0.1 },
+ 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 },
+ },
+ "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 },
+ },
+ "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",
+ },
+ "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: false,
+ cost: { input: 1.6, output: 6.4 },
+ limit: { context: 32768, output: 8192 },
+ },
+ "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: true,
+ cost: { input: 0, output: 0 },
+ limit: { context: 128000, output: 16000 },
+ status: "beta",
+ },
+ "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-08",
+ last_updated: "2025-07-08",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.1, output: 0.1 },
+ limit: { context: 131072, output: 8192 },
+ },
+ "minimax-text-01": {
+ id: "minimax-text-01",
+ name: "MiniMax Text 01",
+ family: "minimax",
+ attachment: false,
+ reasoning: true,
+ 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: true,
+ 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.1 },
+ limit: { context: 131072, output: 8192 },
+ },
+ "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: 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.17, output: 0.66 },
+ limit: { context: 8192, output: 2048 },
+ },
+ "qwen3-4b-fp8": {
+ id: "qwen3-4b-fp8",
+ name: "Qwen3 4B FP8",
+ family: "qwen",
+ attachment: false,
+ reasoning: true,
+ 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.03, output: 0.05 },
+ limit: { context: 131072, output: 8192 },
+ },
+ "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: 8192 },
+ },
+ "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 },
+ },
+ "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-09",
+ last_updated: "2025-10-09",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.05, output: 0.4, cache_read: 0.01 },
+ limit: { context: 1000000, output: 32000 },
+ },
+ "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: true,
+ cost: { input: 0.25, output: 2, cache_read: 0.05 },
+ limit: { context: 256000, output: 8192 },
+ },
+ "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-08",
+ last_updated: "2025-07-08",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.8, output: 2.4 },
+ limit: { context: 131072, output: 8192 },
+ },
+ "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: true,
+ cost: { input: 0.25, output: 2, cache_read: 0.05 },
+ limit: { context: 256000, output: 8192 },
+ },
+ "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",
+ },
+ "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-08",
+ last_updated: "2025-07-08",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.1, output: 0.1 },
+ limit: { context: 131072, 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 },
+ },
+ "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: 8192 },
+ },
+ "qwen-plus-latest": {
+ id: "qwen-plus-latest",
+ name: "Qwen Plus 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: false,
+ cost: { input: 0.3, output: 0.9 },
+ limit: { context: 131072, output: 8192 },
+ },
+ "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: 8192 },
+ },
+ "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: 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.24, output: 0.97 },
+ limit: { context: 8192, output: 2048 },
+ },
+ "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-30b-a3b-fp8": {
+ id: "qwen3-30b-a3b-fp8",
+ name: "Qwen3 30B A3B FP8",
+ family: "qwen",
+ attachment: false,
+ reasoning: true,
+ 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.1 },
+ limit: { context: 131072, output: 8192 },
+ },
+ "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 },
+ },
+ "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: false,
+ cost: { input: 3, output: 15, cache_read: 0.6 },
+ limit: { context: 256000, output: 32800 },
+ },
+ "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 },
+ },
+ "qwen3-coder-next": {
+ id: "qwen3-coder-next",
+ name: "Qwen3 Coder Next",
+ family: "qwen",
+ attachment: false,
+ reasoning: true,
+ 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: 0.8, output: 4 },
+ limit: { context: 262144, output: 65536 },
+ },
+ "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 },
+ },
+ "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: true,
+ temperature: true,
+ release_date: "2025-10-02",
+ last_updated: "2025-10-02",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.1, output: 0.1 },
+ limit: { context: 131072, output: 8192 },
+ },
+ "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: true,
+ 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.5, output: 2.5 },
+ limit: { context: 131072, output: 8192 },
+ },
+ "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 },
+ },
+ "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: true,
+ 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 },
+ },
+ "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-15",
+ last_updated: "2025-09-15",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.8, output: 2.4 },
+ limit: { context: 131072, 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,
+ 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 },
+ },
+ "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.05, output: 0.05 },
+ limit: { context: 131072, 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 },
+ },
+ "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: 8192 },
+ },
+ "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: 8192 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "grok-4-20-beta-0309-non-reasoning": {
+ id: "grok-4-20-beta-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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "kimi-k2.5": {
+ id: "kimi-k2.5",
+ name: "Kimi K2.5",
+ family: "kimi-k2.5",
+ 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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "mimo-v2.5-pro": {
+ id: "mimo-v2.5-pro",
+ name: "MiMo-V2.5-Pro",
+ family: "mimo",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ temperature: true,
+ knowledge: "2024-12",
+ release_date: "2026-04-22",
+ last_updated: "2026-04-22",
+ 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: 131072 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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-31",
+ 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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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-15",
+ last_updated: "2026-02-15",
+ modalities: { input: ["text", "image", "video", "audio"], 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: 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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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.4, output: 1.2, reasoning: 4 },
+ limit: { context: 1000000, output: 32768 },
+ },
+ "gpt-5.5": {
+ id: "gpt-5.5",
+ name: "GPT-5.5",
+ family: "gpt",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: false,
+ knowledge: "2025-12-01",
+ release_date: "2026-04-23",
+ last_updated: "2026-04-23",
+ modalities: { input: ["text", "image", "pdf"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 5, output: 30, cache_read: 0.5, context_over_200k: { input: 10, output: 45, cache_read: 1 } },
+ limit: { context: 1050000, input: 922000, output: 128000 },
+ experimental: {
+ modes: {
+ fast: {
+ cost: { input: 12.5, output: 75, cache_read: 1.25 },
+ provider: { body: { service_tier: "priority" } },
+ },
+ },
+ },
+ },
+ "qwen3.6-35b-a3b": {
+ id: "qwen3.6-35b-a3b",
+ name: "Qwen3.6 35B-A3B",
+ family: "qwen",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: true,
+ release_date: "2026-04-17",
+ last_updated: "2026-04-17",
+ modalities: { input: ["text", "image", "video", "audio"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.248, output: 1.485 },
+ 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 },
+ },
+ "claude-opus-4-7": {
+ id: "claude-opus-4-7",
+ name: "Claude Opus 4.7",
+ family: "claude-opus",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: false,
+ knowledge: "2026-01-31",
+ release_date: "2026-04-16",
+ last_updated: "2026-04-16",
+ 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 },
+ },
+ "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 },
+ },
+ "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: false,
+ cost: { input: 0.4, output: 2, cache_read: 0.08 },
+ limit: { context: 262144, output: 131072 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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.125,
+ context_over_200k: { input: 2.5, output: 15, cache_read: 0.25 },
+ },
+ limit: { context: 1048576, output: 65536 },
+ },
+ "mimo-v2.5": {
+ id: "mimo-v2.5",
+ name: "MiMo-V2.5",
+ family: "mimo",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ temperature: true,
+ knowledge: "2024-12",
+ release_date: "2026-04-22",
+ last_updated: "2026-04-22",
+ modalities: { input: ["text", "image", "audio", "video"], output: ["text"] },
+ open_weights: true,
+ cost: {
+ input: 0.4,
+ output: 2,
+ cache_read: 0.08,
+ context_over_200k: { input: 0.8, output: 4, cache_read: 0.16 },
+ },
+ limit: { context: 1048576, 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,
+ 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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "grok-4-20-beta-0309-reasoning": {
+ id: "grok-4-20-beta-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 },
+ },
+ "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 },
+ },
+ "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.276, output: 1.651, cache_read: 0.028, cache_write: 0.344 },
+ limit: { context: 1000000, output: 65536 },
+ },
+ "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 },
+ },
+ "qwen3-max": {
+ id: "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: 65536 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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.03, input_audio: 1 },
+ limit: { context: 1048576, output: 65536 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "gemini-3.1-flash-lite": {
+ id: "gemini-3.1-flash-lite",
+ name: "Gemini 3.1 Flash Lite",
+ family: "gemini-flash-lite",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-01",
+ release_date: "2026-05-07",
+ last_updated: "2026-05-07",
+ 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 },
+ },
+ "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 },
+ },
+ "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-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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ 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 },
+ },
+ "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 },
+ },
+ "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: 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-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 },
+ },
+ "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 },
+ },
+ 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 },
+ },
+ "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 },
+ },
+ "grok-4-3": {
+ id: "grok-4-3",
+ name: "Grok 4.3",
+ family: "grok",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-05-01",
+ last_updated: "2026-05-01",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: false,
+ cost: {
+ input: 1.25,
+ output: 2.5,
+ cache_read: 0.2,
+ context_over_200k: { input: 2.5, output: 5, cache_read: 0.4 },
+ },
+ limit: { context: 1000000, output: 30000 },
+ },
+ "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 },
+ },
+ "deepseek-v4-flash": {
+ id: "deepseek-v4-flash",
+ name: "DeepSeek V4 Flash",
+ family: "deepseek-flash",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-05",
+ release_date: "2026-04-24",
+ last_updated: "2026-04-24",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.14, output: 0.28, cache_read: 0.028 },
+ limit: { context: 1000000, output: 384000 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "kimi-k2.6": {
+ id: "kimi-k2.6",
+ name: "Kimi K2.6",
+ family: "kimi-k2.6",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-01",
+ release_date: "2026-04-21",
+ last_updated: "2026-04-21",
+ modalities: { input: ["text", "image", "video"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.95, output: 4, cache_read: 0.16 },
+ limit: { context: 262144, output: 262144 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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-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 },
+ },
+ "deepseek-v4-pro": {
+ id: "deepseek-v4-pro",
+ name: "DeepSeek V4 Pro",
+ family: "deepseek-thinking",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-05",
+ release_date: "2026-04-24",
+ last_updated: "2026-04-24",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 1.74, output: 3.48, cache_read: 0.145 },
+ limit: { context: 1000000, output: 384000 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "mimo-v2-pro": {
+ id: "mimo-v2-pro",
+ name: "MiMo-V2-Pro",
+ family: "mimo",
+ attachment: false,
+ 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: false,
+ cost: { input: 1, output: 3, cache_read: 0.2, context_over_200k: { input: 2, output: 6, cache_read: 0.4 } },
+ limit: { context: 1048576, output: 131072 },
+ },
+ 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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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-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 },
+ },
+ "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 },
+ },
+ "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: 262144, output: 65536 },
+ },
+ "qwen3.6-max-preview": {
+ id: "qwen3.6-max-preview",
+ name: "Qwen3.6 Max Preview",
+ family: "qwen",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ knowledge: "2025-04",
+ release_date: "2026-04-20",
+ last_updated: "2026-04-20",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 1.3, output: 7.8, cache_read: 0.13, cache_write: 1.625 },
+ limit: { context: 262144, output: 65536 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "gpt-5.5-pro": {
+ id: "gpt-5.5-pro",
+ name: "GPT-5.5 Pro",
+ family: "gpt-pro",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: false,
+ knowledge: "2025-12-01",
+ release_date: "2026-04-23",
+ last_updated: "2026-04-23",
+ modalities: { input: ["text", "image", "pdf"], 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-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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ },
+ },
+ "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-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-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-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-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-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 },
+ },
+ "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",
+ },
+ },
+ "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 },
+ },
+ "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 },
+ provider: { npm: "@ai-sdk/google-vertex/anthropic" },
+ },
+ "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 },
+ },
+ "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-31",
+ 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,
+ context_over_200k: { input: 6, output: 22.5, cache_read: 0.6, cache_write: 7.5 },
+ },
+ limit: { context: 200000, output: 64000 },
+ provider: { npm: "@ai-sdk/google-vertex/anthropic" },
+ },
+ "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 },
+ },
+ "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 },
+ provider: { npm: "@ai-sdk/google-vertex/anthropic" },
+ },
+ "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 },
+ },
+ "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 },
+ provider: { npm: "@ai-sdk/google-vertex/anthropic" },
+ },
+ "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 },
+ },
+ "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 },
+ provider: { npm: "@ai-sdk/google-vertex/anthropic" },
+ },
+ "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-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.125,
+ context_over_200k: { input: 2.5, output: 15, cache_read: 0.25 },
+ },
+ 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 },
+ },
+ "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 },
+ provider: { npm: "@ai-sdk/google-vertex/anthropic" },
+ },
+ "gemini-3.1-flash-lite": {
+ id: "gemini-3.1-flash-lite",
+ name: "Gemini 3.1 Flash Lite",
+ family: "gemini-flash-lite",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-01",
+ release_date: "2026-05-07",
+ last_updated: "2026-05-07",
+ 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 },
+ },
+ "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 },
+ provider: { npm: "@ai-sdk/google-vertex/anthropic" },
+ },
+ "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 },
+ provider: { npm: "@ai-sdk/google-vertex/anthropic" },
+ },
+ "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 },
+ provider: { npm: "@ai-sdk/google-vertex/anthropic" },
+ },
+ "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 },
+ },
+ "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 },
+ provider: { npm: "@ai-sdk/google-vertex/anthropic" },
+ },
+ "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 },
+ },
+ "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-31",
+ 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,
+ context_over_200k: { input: 10, output: 37.5, cache_read: 1, cache_write: 12.5 },
+ },
+ limit: { context: 1000000, output: 128000 },
+ provider: { npm: "@ai-sdk/google-vertex/anthropic" },
+ },
+ "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 },
+ },
+ "claude-opus-4-7@default": {
+ id: "claude-opus-4-7@default",
+ name: "Claude Opus 4.7",
+ family: "claude-opus",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: false,
+ knowledge: "2026-01-31",
+ release_date: "2026-04-16",
+ last_updated: "2026-04-16",
+ 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 },
+ provider: { npm: "@ai-sdk/google-vertex/anthropic" },
+ },
+ },
+ },
+ "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 },
+ },
+ "@cf/moonshotai/kimi-k2.6": {
+ id: "@cf/moonshotai/kimi-k2.6",
+ name: "Kimi K2.6",
+ family: "kimi",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-01",
+ release_date: "2026-04-20",
+ last_updated: "2026-04-20",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.95, output: 4, cache_read: 0.16 },
+ 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.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 },
+ },
+ "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",
+ },
+ },
+ "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 },
+ },
+ "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",
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "kimi-k2.6": {
+ id: "kimi-k2.6",
+ name: "Kimi K2.6",
+ family: "kimi",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: true,
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-01",
+ release_date: "2026-04-22",
+ last_updated: "2026-04-22",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.95, output: 4 },
+ 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-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 },
+ },
+ "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-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: 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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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-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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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,
+ knowledge: "2025-08-31",
+ 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 },
+ provider: {
+ npm: "@ai-sdk/anthropic",
+ api: "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1",
+ },
+ },
+ "gpt-5.5": {
+ id: "gpt-5.5",
+ name: "GPT-5.5",
+ family: "gpt",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: false,
+ knowledge: "2025-12-01",
+ release_date: "2026-04-24",
+ last_updated: "2026-04-24",
+ modalities: { input: ["text", "image", "pdf"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 5, output: 30, cache_read: 0.5, context_over_200k: { input: 10, output: 45, cache_read: 1 } },
+ limit: { context: 1050000, input: 922000, 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-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-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 },
+ },
+ "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 },
+ },
+ "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.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 },
+ },
+ "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": {
+ 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.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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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-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 },
+ },
+ "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-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 },
+ },
+ "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 },
+ },
+ },
+ },
+ 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 },
+ },
+ "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 },
+ },
+ "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 },
+ },
+ "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/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,
+ 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.125,
+ context_over_200k: { input: 2.5, output: 15, cache_read: 0.25 },
+ },
+ 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.03, 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 },
+ },
+ "gemini-3.1-flash-lite": {
+ id: "gemini-3.1-flash-lite",
+ name: "Gemini 3.1 Flash Lite",
+ family: "gemini-flash-lite",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-01",
+ release_date: "2026-05-07",
+ last_updated: "2026-05-07",
+ 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 },
+ },
+ "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 },
+ },
+ "gemma-4-26b-a4b-it": {
+ id: "gemma-4-26b-a4b-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-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-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-k2.5",
+ 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.6": {
+ id: "kimi-k2.6",
+ name: "Kimi K2.6",
+ family: "kimi-k2.6",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-01",
+ release_date: "2026-04-21",
+ last_updated: "2026-04-21",
+ modalities: { input: ["text", "image", "video"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.95, output: 4, cache_read: 0.16 },
+ 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.77, output: 2.75 },
+ 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.33, output: 0.33 },
+ limit: { context: 32000, output: 8192 },
+ },
+ "mistralai/Mistral-Medium-3.5-128B": {
+ id: "mistralai/Mistral-Medium-3.5-128B",
+ name: "Mistral Medium 3.5 128B",
+ family: "mistral-medium",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: true,
+ knowledge: "2026-04",
+ release_date: "2026-04-29",
+ last_updated: "2026-04-29",
+ modalities: { input: ["image", "text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 1.65, output: 5.5 },
+ limit: { context: 262144, 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: 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.99, output: 0.99 },
+ limit: { context: 128000, 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.44, output: 0.99 },
+ limit: { context: 128000, output: 8192 },
+ },
+ "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,
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-12",
+ release_date: "2026-04-02",
+ last_updated: "2026-04-02",
+ modalities: { input: ["audio", "image", "text", "video"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.275, output: 0.55 },
+ limit: { context: 128000, output: 8192 },
+ },
+ },
+ },
+ "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 },
+ },
+ },
+ },
+ neuralwatt: {
+ id: "neuralwatt",
+ env: ["NEURALWATT_API_KEY"],
+ npm: "@ai-sdk/openai-compatible",
+ api: "https://api.neuralwatt.com/v1",
+ name: "Neuralwatt",
+ doc: "https://portal.neuralwatt.com/docs",
+ models: {
+ "glm-5-fast": {
+ id: "glm-5-fast",
+ name: "GLM 5 Fast",
+ family: "glm",
+ attachment: false,
+ reasoning: false,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-04-07",
+ last_updated: "2026-04-07",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 1.1, output: 3.6 },
+ limit: { context: 200000, output: 200000 },
+ },
+ "kimi-k2.6-fast": {
+ id: "kimi-k2.6-fast",
+ name: "Kimi K2.6 Fast",
+ family: "kimi",
+ attachment: true,
+ reasoning: false,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-04-21",
+ last_updated: "2026-04-21",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.69, output: 3.22 },
+ limit: { context: 262144, output: 262144 },
+ },
+ "qwen3.5-397b-fast": {
+ id: "qwen3.5-397b-fast",
+ name: "Qwen3.5 397B Fast",
+ family: "qwen",
+ attachment: false,
+ reasoning: false,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-02-01",
+ last_updated: "2026-02-01",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.69, output: 4.14 },
+ limit: { context: 262144, output: 262144 },
+ },
+ "glm-5.1-fast": {
+ id: "glm-5.1-fast",
+ name: "GLM 5.1 Fast",
+ family: "glm",
+ attachment: false,
+ reasoning: false,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-04-07",
+ last_updated: "2026-04-07",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 1.1, output: 3.6 },
+ limit: { context: 200000, output: 200000 },
+ },
+ "qwen3.6-35b-fast": {
+ id: "qwen3.6-35b-fast",
+ name: "Qwen3.6 35B Fast",
+ family: "qwen3.6",
+ attachment: true,
+ reasoning: false,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-04-01",
+ last_updated: "2026-04-01",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.05, output: 0.1 },
+ limit: { context: 131072, output: 131072 },
+ },
+ "kimi-k2.5-fast": {
+ id: "kimi-k2.5-fast",
+ name: "Kimi K2.5 Fast",
+ family: "kimi",
+ attachment: true,
+ reasoning: false,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-01-27",
+ last_updated: "2026-01-27",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.52, output: 2.59 },
+ limit: { context: 262144, output: 262144 },
+ },
+ "Qwen/Qwen3.5-397B-A17B-FP8": {
+ id: "Qwen/Qwen3.5-397B-A17B-FP8",
+ name: "Qwen3.5 397B A17B FP8",
+ family: "qwen",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ temperature: true,
+ release_date: "2026-02-01",
+ last_updated: "2026-02-01",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.69, output: 4.14 },
+ limit: { context: 262144, output: 262144 },
+ },
+ "Qwen/Qwen3.6-35B-A3B": {
+ id: "Qwen/Qwen3.6-35B-A3B",
+ name: "Qwen3.6 35B A3B",
+ family: "qwen3.6",
+ 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: true,
+ cost: { input: 0.05, output: 0.1 },
+ limit: { context: 131072, output: 131072 },
+ },
+ "zai-org/GLM-5.1-FP8": {
+ id: "zai-org/GLM-5.1-FP8",
+ name: "GLM 5.1 FP8",
+ family: "glm",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ temperature: true,
+ release_date: "2026-04-07",
+ last_updated: "2026-04-07",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 1.1, output: 3.6 },
+ limit: { context: 200000, output: 200000 },
+ },
+ "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: true,
+ reasoning: false,
+ tool_call: true,
+ temperature: true,
+ release_date: "2025-12-09",
+ last_updated: "2025-12-09",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.12, output: 0.35 },
+ limit: { context: 262144, output: 262144 },
+ },
+ "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.16 },
+ limit: { context: 16384, output: 16384 },
+ },
+ "moonshotai/Kimi-K2.6": {
+ id: "moonshotai/Kimi-K2.6",
+ name: "Kimi K2.6",
+ family: "kimi",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ temperature: true,
+ release_date: "2026-04-21",
+ last_updated: "2026-04-21",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.69, output: 3.22 },
+ 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,
+ release_date: "2026-01-27",
+ last_updated: "2026-01-27",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.52, output: 2.59 },
+ 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.35, output: 1.38 },
+ limit: { context: 196608, output: 196608 },
+ },
+ },
+ },
+ 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.6-Plus": {
+ id: "Qwen/Qwen3.6-Plus",
+ name: "Qwen3.6 Plus",
+ family: "qwen",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-04-30",
+ last_updated: "2026-04-30",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.5, output: 3 },
+ limit: { context: 1000000, output: 500000 },
+ },
+ "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 },
+ },
+ "deepseek-ai/DeepSeek-V4-Pro": {
+ id: "deepseek-ai/DeepSeek-V4-Pro",
+ name: "DeepSeek V4 Pro",
+ family: "deepseek",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ structured_output: true,
+ temperature: true,
+ release_date: "2026-04-24",
+ last_updated: "2026-04-24",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 2.1, output: 4.4, cache_read: 0.2 },
+ limit: { context: 512000, output: 384000 },
+ },
+ "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.6": {
+ id: "moonshotai/Kimi-K2.6",
+ name: "Kimi K2.6",
+ family: "kimi-k2.6",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-01",
+ release_date: "2026-04-21",
+ last_updated: "2026-04-21",
+ modalities: { input: ["text", "image", "video"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 1.2, output: 4.5, cache_read: 0.2 },
+ limit: { context: 262144, output: 131000 },
+ },
+ "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 },
+ },
+ "MiniMaxAI/MiniMax-M2.7": {
+ id: "MiniMaxAI/MiniMax-M2.7",
+ name: "MiniMax-M2.7",
+ family: "minimax",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ 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: 202752, 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 },
+ },
+ },
+ },
+ "tencent-tokenhub": {
+ id: "tencent-tokenhub",
+ env: ["TENCENT_TOKENHUB_API_KEY"],
+ npm: "@ai-sdk/openai-compatible",
+ api: "https://tokenhub.tencentmaas.com/v1",
+ name: "Tencent TokenHub",
+ doc: "https://cloud.tencent.com/document/product/1823/130050",
+ models: {
+ "hy3-preview": {
+ id: "hy3-preview",
+ name: "Hy3 preview",
+ family: "Hy",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-04-20",
+ last_updated: "2026-04-20",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0, output: 0, cache_read: 0, cache_write: 0 },
+ limit: { context: 256000, 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-31",
+ 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-opus-4-7": {
+ id: "claude-opus-4-7",
+ name: "Claude Opus 4.7",
+ family: "claude-opus",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: false,
+ knowledge: "2026-01-31",
+ release_date: "2026-04-16",
+ last_updated: "2026-04-16",
+ 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-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-31",
+ 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 },
+ },
+ },
+ },
+ "hpc-ai": {
+ id: "hpc-ai",
+ env: ["HPC_AI_API_KEY"],
+ npm: "@ai-sdk/openai-compatible",
+ api: "https://api.hpc-ai.com/inference/v1",
+ name: "HPC-AI",
+ doc: "https://www.hpc-ai.com/doc/docs/quickstart/",
+ models: {
+ "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-08",
+ last_updated: "2026-04-08",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.66, output: 2, cache_read: 0.12 },
+ limit: { context: 202000, output: 202000 },
+ },
+ "minimax/minimax-m2.5": {
+ id: "minimax/minimax-m2.5",
+ name: "MiniMax M2.5",
+ family: "minimax-m2.5",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ structured_output: false,
+ temperature: true,
+ release_date: "2026-02-12",
+ last_updated: "2026-03-25",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.14, output: 0.56, cache_read: 0.014 },
+ limit: { context: 1000000, 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: { field: "reasoning_content" },
+ structured_output: true,
+ temperature: false,
+ knowledge: "2025-01-01",
+ release_date: "2026-01-01",
+ last_updated: "2026-03-25",
+ modalities: { input: ["text", "image", "video"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.21, output: 1, cache_read: 0.03 },
+ limit: { context: 262144, output: 262144 },
+ },
+ },
+ },
+ 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-7": {
+ id: "duo-chat-opus-4-7",
+ name: "Agentic Chat (Claude Opus 4.7)",
+ family: "claude-opus",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: false,
+ knowledge: "2026-01-31",
+ release_date: "2026-04-16",
+ last_updated: "2026-04-16",
+ 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-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-05-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.5-pro": {
+ id: "mimo-v2.5-pro",
+ name: "MiMo-V2.5-Pro",
+ family: "mimo",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ temperature: true,
+ knowledge: "2024-12",
+ release_date: "2026-04-22",
+ last_updated: "2026-04-22",
+ 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: 131072 },
+ },
+ "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: false,
+ cost: { input: 0.4, output: 2, cache_read: 0.08 },
+ limit: { context: 262144, output: 131072 },
+ },
+ "mimo-v2.5": {
+ id: "mimo-v2.5",
+ name: "MiMo-V2.5",
+ family: "mimo",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ temperature: true,
+ knowledge: "2024-12",
+ release_date: "2026-04-22",
+ last_updated: "2026-04-22",
+ modalities: { input: ["text", "image", "audio", "video"], output: ["text"] },
+ open_weights: true,
+ cost: {
+ input: 0.4,
+ output: 2,
+ cache_read: 0.08,
+ context_over_200k: { input: 0.8, output: 4, cache_read: 0.16 },
+ },
+ limit: { context: 1048576, output: 131072 },
+ },
+ "mimo-v2-pro": {
+ id: "mimo-v2-pro",
+ name: "MiMo-V2-Pro",
+ family: "mimo",
+ attachment: false,
+ 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: false,
+ cost: { input: 1, output: 3, cache_read: 0.2, context_over_200k: { input: 2, output: 6, cache_read: 0.4 } },
+ limit: { context: 1048576, output: 131072 },
+ },
+ "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: 262144, output: 65536 },
+ },
+ },
+ },
+ 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 },
+ },
+ "moonshotai/chat-completion/models/Kimi-K2_6": {
+ id: "moonshotai/chat-completion/models/Kimi-K2_6",
+ name: "Kimi K2.6",
+ family: "kimi-k2.6",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ structured_output: true,
+ temperature: true,
+ knowledge: "2025-01",
+ release_date: "2026-04-21",
+ last_updated: "2026-04-21",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.95, output: 4 },
+ limit: { context: 262144, output: 262144 },
+ },
+ },
+ },
+ "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 },
+ },
+ },
+ },
+ "regolo-ai": {
+ id: "regolo-ai",
+ env: ["REGOLO_API_KEY"],
+ npm: "@ai-sdk/openai-compatible",
+ api: "https://api.regolo.ai/v1",
+ name: "Regolo AI",
+ doc: "https://docs.regolo.ai/",
+ models: {
+ "mistral-small3.2": {
+ id: "mistral-small3.2",
+ name: "Mistral Small 3.2",
+ family: "mistral-small",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ release_date: "2025-01-31",
+ last_updated: "2025-01-31",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.5, output: 2.2 },
+ limit: { context: 120000, output: 120000 },
+ },
+ "qwen3-embedding-8b": {
+ id: "qwen3-embedding-8b",
+ name: "Qwen3-Embedding-8B",
+ family: "qwen",
+ attachment: false,
+ reasoning: false,
+ tool_call: false,
+ temperature: false,
+ release_date: "2026-02-01",
+ last_updated: "2026-02-01",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.1, output: 0.1 },
+ limit: { context: 32768, output: 8192 },
+ },
+ "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,
+ release_date: "2025-04-28",
+ last_updated: "2025-04-28",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.6, output: 2.7 },
+ limit: { context: 128000, output: 16384 },
+ },
+ "qwen3-reranker-4b": {
+ id: "qwen3-reranker-4b",
+ name: "Qwen3-Reranker-4B",
+ family: "qwen",
+ attachment: false,
+ reasoning: false,
+ tool_call: false,
+ temperature: false,
+ release_date: "2026-02-01",
+ last_updated: "2026-02-01",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.12, output: 0.12 },
+ limit: { context: 32768, output: 8192 },
+ },
+ "mistral-small-4-119b": {
+ id: "mistral-small-4-119b",
+ name: "Mistral Small 4 119B",
+ family: "mistral-small",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-03-15",
+ last_updated: "2026-03-15",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.75, output: 3 },
+ limit: { context: 256000, output: 16384 },
+ },
+ "qwen3.5-122b": {
+ id: "qwen3.5-122b",
+ name: "Qwen3.5-122B",
+ family: "qwen",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-02-01",
+ last_updated: "2026-02-01",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.9, output: 3.6 },
+ limit: { context: 262144, output: 16384 },
+ },
+ "qwen-image": {
+ id: "qwen-image",
+ name: "Qwen-Image",
+ family: "qwen",
+ attachment: false,
+ reasoning: false,
+ tool_call: false,
+ temperature: true,
+ release_date: "2026-03-01",
+ last_updated: "2026-03-01",
+ modalities: { input: ["text"], output: ["image"] },
+ open_weights: false,
+ cost: { input: 0.5, output: 2 },
+ limit: { context: 8192, output: 4096 },
+ },
+ "qwen3-coder-next": {
+ id: "qwen3-coder-next",
+ name: "Qwen3-Coder-Next",
+ family: "qwen",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-03-01",
+ last_updated: "2026-03-01",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.3, output: 1.2 },
+ limit: { context: 262144, output: 16384 },
+ },
+ "minimax-m2.5": {
+ id: "minimax-m2.5",
+ name: "MiniMax 2.5",
+ family: "minimax",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-03-10",
+ last_updated: "2026-03-10",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.8, output: 3.5 },
+ limit: { context: 190000, output: 64000 },
+ },
+ "gpt-oss-20b": {
+ id: "gpt-oss-20b",
+ name: "GPT-OSS-20B",
+ family: "gpt-oss",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-03-01",
+ last_updated: "2026-03-01",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.4, output: 1.8 },
+ limit: { context: 128000, output: 16384 },
+ },
+ "qwen3.5-9b": {
+ id: "qwen3.5-9b",
+ name: "Qwen3.5-9B",
+ family: "qwen",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ temperature: true,
+ release_date: "2026-02-01",
+ last_updated: "2026-02-01",
+ modalities: { input: ["text", "image"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0.15, output: 0.6 },
+ 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,
+ temperature: true,
+ release_date: "2025-08-05",
+ last_updated: "2025-08-05",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 1, output: 4.2 },
+ limit: { context: 128000, output: 16384 },
+ },
+ "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,
+ release_date: "2025-04-07",
+ last_updated: "2025-04-07",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: false,
+ cost: { input: 0.05, output: 0.25 },
+ limit: { context: 120000, output: 120000 },
+ },
+ },
+ },
+ "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-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: 8192, output: 16384 },
+ },
+ "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, output: 0, cache_read: 0 },
+ limit: { context: 262144, output: 65536 },
+ },
+ "mimo-v2-pro": {
+ id: "mimo-v2-pro",
+ name: "MiMo-V2-Pro",
+ family: "mimo",
+ attachment: false,
+ 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: false,
+ cost: { input: 0, output: 0, cache_read: 0, context_over_200k: { input: 2, output: 6, cache_read: 0.4 } },
+ limit: { context: 1048576, output: 131072 },
+ },
+ "mimo-v2.5": {
+ id: "mimo-v2.5",
+ name: "MiMo-V2.5",
+ family: "mimo",
+ attachment: true,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ temperature: true,
+ knowledge: "2024-12",
+ release_date: "2026-04-22",
+ last_updated: "2026-04-22",
+ modalities: { input: ["text", "image", "audio", "video"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0, output: 0, cache_read: 0, context_over_200k: { input: 0, output: 0, cache_read: 0 } },
+ limit: { context: 1048576, output: 131072 },
+ },
+ "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: false,
+ cost: { input: 0, output: 0, cache_read: 0 },
+ limit: { context: 262144, output: 131072 },
+ },
+ "mimo-v2.5-pro": {
+ id: "mimo-v2.5-pro",
+ name: "MiMo-V2.5-Pro",
+ family: "mimo",
+ attachment: false,
+ reasoning: true,
+ tool_call: true,
+ interleaved: { field: "reasoning_content" },
+ temperature: true,
+ knowledge: "2024-12",
+ release_date: "2026-04-22",
+ last_updated: "2026-04-22",
+ modalities: { input: ["text"], output: ["text"] },
+ open_weights: true,
+ cost: { input: 0, output: 0, cache_read: 0, context_over_200k: { input: 0, output: 0, cache_read: 0 } },
+ limit: { context: 1048576, output: 131072 },
+ },
+ },
+ },
+ 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/models.ts b/packages/core/src/models.ts
similarity index 81%
rename from packages/opencode/src/provider/models.ts
rename to packages/core/src/models.ts
index fb240e4cf1..4ee17b8e25 100644
--- a/packages/opencode/src/provider/models.ts
+++ b/packages/core/src/models.ts
@@ -1,20 +1,35 @@
-import { Global } from "@opencode-ai/core/global"
import path from "path"
import { Context, Duration, Effect, Layer, Option, Schedule, Schema } from "effect"
import { FetchHttpClient, HttpClient, HttpClientRequest } from "effect/unstable/http"
-import { Installation } from "../installation"
-import { Flag } from "@opencode-ai/core/flag/flag"
-import { Flock } from "@opencode-ai/core/util/flock"
-import { Hash } from "@opencode-ai/core/util/hash"
-import { AppFileSystem } from "@opencode-ai/core/filesystem"
-import { withTransientReadRetry } from "@/util/effect-http-client"
-import { CatalogModelStatus } from "./model-status"
+import { Global } from "./global"
+import { Flag } from "./flag/flag"
+import { Flock } from "./util/flock"
+import { Hash } from "./util/hash"
+import { AppFileSystem } from "./filesystem"
+import { InstallationChannel, InstallationVersion } from "./installation/version"
+
+export const CatalogModelStatus = Schema.Literals(["alpha", "beta", "deprecated"])
+export type CatalogModelStatus = typeof CatalogModelStatus.Type
+
+const USER_AGENT = `opencode/${InstallationChannel}/${InstallationVersion}/${Flag.OPENCODE_CLIENT}`
+
+const CostTier = Schema.Struct({
+ input: Schema.Finite,
+ output: Schema.Finite,
+ cache_read: Schema.optional(Schema.Finite),
+ cache_write: Schema.optional(Schema.Finite),
+ tier: Schema.Struct({
+ type: Schema.Literal("context"),
+ size: Schema.Finite,
+ }),
+})
const Cost = Schema.Struct({
input: Schema.Finite,
output: Schema.Finite,
cache_read: Schema.optional(Schema.Finite),
cache_write: Schema.optional(Schema.Finite),
+ tiers: Schema.optional(Schema.Array(CostTier)),
context_over_200k: Schema.optional(
Schema.Struct({
input: Schema.Finite,
@@ -97,11 +112,21 @@ export interface Interface {
export class Service extends Context.Service()("@opencode/ModelsDev") {}
-export const layer: Layer.Layer = Layer.effect(
+type Requirements = AppFileSystem.Service | HttpClient.HttpClient
+
+export const layer: Layer.Layer = Layer.effect(
Service,
Effect.gen(function* () {
const fs = yield* AppFileSystem.Service
- const http = HttpClient.filterStatusOk(withTransientReadRetry(yield* HttpClient.HttpClient))
+ const http = HttpClient.filterStatusOk(
+ (yield* HttpClient.HttpClient).pipe(
+ HttpClient.retryTransient({
+ retryOn: "errors-and-responses",
+ times: 2,
+ schedule: Schedule.exponential(200).pipe(Schedule.jittered),
+ }),
+ ),
+ )
const source = Flag.OPENCODE_MODELS_URL || "https://models.dev"
const filepath = path.join(
@@ -120,7 +145,7 @@ export const layer: Layer.Layer res.text),
Effect.timeout("10 seconds"),
@@ -177,7 +202,9 @@ export const layer: Layer.Layer Effect.logError("Failed to fetch models.dev", { cause })),
+ Effect.tapCause((cause) =>
+ Effect.logError("Failed to fetch models.dev").pipe(Effect.annotateLogs("cause", cause)),
+ ),
Effect.ignore,
)
})
diff --git a/packages/core/src/plugin.ts b/packages/core/src/plugin.ts
new file mode 100644
index 0000000000..dfcae94685
--- /dev/null
+++ b/packages/core/src/plugin.ts
@@ -0,0 +1,146 @@
+export * as PluginV2 from "./plugin"
+
+import { createDraft, finishDraft, type Draft } from "immer"
+import type { LanguageModelV3 } from "@ai-sdk/provider"
+import { type ProviderV2 } from "./provider"
+import { Context, Effect, Layer, Schema } from "effect"
+import type { ModelV2 } from "./model"
+
+export const ID = Schema.String.pipe(Schema.brand("Plugin.ID"))
+export type ID = typeof ID.Type
+
+type HookSpec = {
+ "provider.update": {
+ input: {}
+ output: {
+ provider: ProviderV2.Info
+ cancel: boolean
+ }
+ }
+ "model.update": {
+ input: {}
+ output: {
+ model: ModelV2.Info
+ cancel: boolean
+ }
+ }
+ "aisdk.language": {
+ input: {
+ model: ModelV2.Info
+ sdk: any
+ options: Record
+ }
+ output: {
+ language?: LanguageModelV3
+ }
+ }
+ "aisdk.sdk": {
+ input: {
+ model: ModelV2.Info
+ package: string
+ options: Record
+ }
+ output: {
+ sdk?: any
+ }
+ }
+}
+
+export type Hooks = {
+ [Name in keyof HookSpec]: Readonly & {
+ -readonly [Field in keyof HookSpec[Name]["output"]]: HookSpec[Name]["output"][Field] extends object
+ ? Draft
+ : HookSpec[Name]["output"][Field]
+ }
+}
+
+export type HookFunctions = {
+ [key in keyof Hooks]?: (input: Hooks[key]) => Effect.Effect
+}
+
+export type HookInput = HookSpec[Name]["input"]
+export type HookOutput = HookSpec[Name]["output"]
+
+export type Effect = Effect.Effect
+
+export function define(input: { id: ID; effect: Effect.Effect }) {
+ return input
+}
+
+export interface Interface {
+ readonly add: (input: { id: ID; effect: Effect }) => Effect.Effect
+ readonly remove: (id: ID) => Effect.Effect
+ readonly trigger: (
+ name: Name,
+ input: HookInput,
+ output: HookOutput,
+ ) => Effect.Effect & HookOutput>
+}
+
+export class Service extends Context.Service()("@opencode/v2/Plugin") {}
+
+export const layer = Layer.effect(
+ Service,
+ Effect.gen(function* () {
+ let hooks: {
+ id: ID
+ hooks: HookFunctions
+ }[] = []
+
+ const svc = Service.of({
+ add: Effect.fn("Plugin.add")(function* (input) {
+ const result = yield* input.effect
+ if (!result) return
+ hooks = [
+ ...hooks.filter((item) => item.id !== input.id),
+ {
+ id: input.id,
+ hooks: result,
+ },
+ ]
+ }),
+ trigger: Effect.fn("Plugin.trigger")(function* (name, input, output) {
+ const draftEntries = new Map>()
+ const event = {
+ ...input,
+ ...output,
+ } as Record
+
+ for (const [field, value] of Object.entries(output)) {
+ if (value && typeof value === "object") {
+ draftEntries.set(field, createDraft(value))
+ event[field] = draftEntries.get(field)
+ }
+ }
+
+ for (const item of hooks) {
+ const match = item.hooks[name]
+ if (!match) continue
+ yield* match(event as any).pipe(
+ Effect.withSpan(`Plugin.hook.${name}`, {
+ attributes: {
+ plugin: item.id,
+ hook: name,
+ },
+ }),
+ )
+ }
+
+ for (const [field, draft] of draftEntries) {
+ event[field] = finishDraft(draft)
+ }
+
+ return event as any
+ }),
+ remove: Effect.fn("Plugin.remove")(function* (id) {
+ hooks = hooks.filter((item) => item.id !== id)
+ }),
+ })
+ return svc
+ }),
+)
+
+export const defaultLayer = layer
+
+// opencode
+// sdcok
diff --git a/packages/core/src/plugin/auth.ts b/packages/core/src/plugin/auth.ts
new file mode 100644
index 0000000000..81cbfbe3f7
--- /dev/null
+++ b/packages/core/src/plugin/auth.ts
@@ -0,0 +1,27 @@
+import { Effect } from "effect"
+import { AuthV2 } from "../auth"
+import { PluginV2 } from "../plugin"
+
+export const AuthPlugin = PluginV2.define({
+ id: PluginV2.ID.make("auth"),
+ effect: Effect.gen(function* () {
+ const auth = yield* AuthV2.Service
+ return {
+ "provider.update": Effect.fn(function* (evt) {
+ const account = yield* auth.active(AuthV2.ServiceID.make(evt.provider.id)).pipe(Effect.orDie)
+ if (!account) return
+ evt.provider.enabled = {
+ via: "auth",
+ service: account.serviceID,
+ }
+ if (account.credential.type === "api") {
+ evt.provider.options.aisdk.provider.apiKey = account.credential.key
+ Object.assign(evt.provider.options.aisdk.provider, account.credential.metadata ?? {})
+ }
+ if (account.credential.type === "oauth") {
+ evt.provider.options.aisdk.provider.apiKey = account.credential.access
+ }
+ }),
+ }
+ }),
+})
diff --git a/packages/core/src/plugin/boot.ts b/packages/core/src/plugin/boot.ts
new file mode 100644
index 0000000000..74560ac85b
--- /dev/null
+++ b/packages/core/src/plugin/boot.ts
@@ -0,0 +1,71 @@
+export * as PluginBoot from "./boot"
+
+import { Context, Deferred, Effect, Layer } from "effect"
+import { AuthV2 } from "../auth"
+import { Catalog } from "../catalog"
+import { Npm } from "../npm"
+import { PluginV2 } from "../plugin"
+import { AuthPlugin } from "./auth"
+import { EnvPlugin } from "./env"
+import { ModelsDevPlugin } from "./models-dev"
+import { ProviderPlugins } from "./provider"
+
+type Plugin = {
+ id: PluginV2.ID
+ effect: Effect.Effect
+}
+
+export interface Interface {
+ readonly wait: () => Effect.Effect
+}
+
+export class Service extends Context.Service()("@opencode/v2/PluginBoot") {}
+
+export const layer: Layer.Layer =
+ Layer.effect(
+ Service,
+ Effect.gen(function* () {
+ const catalog = yield* Catalog.Service
+ const plugin = yield* PluginV2.Service
+ const auth = yield* AuthV2.Service
+ const npm = yield* Npm.Service
+ const done = yield* Deferred.make()
+
+ const add = Effect.fn("PluginBoot.add")(function* (input: Plugin) {
+ yield* plugin.add({
+ id: input.id,
+ effect: input.effect.pipe(
+ Effect.provideService(Catalog.Service, catalog),
+ Effect.provideService(AuthV2.Service, auth),
+ Effect.provideService(Npm.Service, npm),
+ ),
+ })
+ })
+
+ const boot = Effect.gen(function* () {
+ yield* add(EnvPlugin)
+ yield* add(AuthPlugin)
+ for (const item of ProviderPlugins) {
+ yield* add(item)
+ }
+ yield* add(ModelsDevPlugin)
+ }).pipe(Effect.withSpan("PluginBoot.boot"))
+
+ yield* boot.pipe(
+ Effect.exit,
+ Effect.flatMap((exit) => Deferred.done(done, exit)),
+ Effect.forkScoped,
+ )
+
+ return Service.of({
+ wait: () => Deferred.await(done),
+ })
+ }),
+ )
+
+export const defaultLayer = layer.pipe(
+ Layer.provide(Catalog.defaultLayer),
+ Layer.provide(PluginV2.defaultLayer),
+ Layer.provide(Layer.orDie(AuthV2.defaultLayer)),
+ Layer.provide(Npm.defaultLayer),
+)
diff --git a/packages/core/src/plugin/env.ts b/packages/core/src/plugin/env.ts
new file mode 100644
index 0000000000..d63936fa13
--- /dev/null
+++ b/packages/core/src/plugin/env.ts
@@ -0,0 +1,18 @@
+import { Effect } from "effect"
+import { PluginV2 } from "../plugin"
+
+export const EnvPlugin = PluginV2.define({
+ id: PluginV2.ID.make("env"),
+ effect: Effect.gen(function* () {
+ return {
+ "provider.update": Effect.fn(function* (evt) {
+ const key = evt.provider.env.find((item) => process.env[item])
+ if (!key) return
+ evt.provider.enabled = {
+ via: "env",
+ name: key,
+ }
+ }),
+ }
+ }),
+})
diff --git a/packages/core/src/plugin/layer-map.example.ts b/packages/core/src/plugin/layer-map.example.ts
new file mode 100644
index 0000000000..63e33d3f0c
--- /dev/null
+++ b/packages/core/src/plugin/layer-map.example.ts
@@ -0,0 +1,94 @@
+export * as LayerMapExample from "./layer-map.example"
+
+import { Context, Effect, Layer, LayerMap } from "effect"
+import { Npm } from "../npm"
+
+/**
+ * Tutorial: split global services from context-specific services.
+ *
+ * Use this pattern when part of the app should be constructed once at the app edge,
+ * while another part should be cached per request/project/workspace key.
+ *
+ * In this example:
+ * - Npm.Service is the global service. It is not keyed by request context and should
+ * be provided once by the application runtime.
+ * - ConfigService is context-specific. It is built from a RequestContext key and is
+ * cached by LayerMap for that key.
+ * - ConfigServiceMap.layer owns the cache. Provide it once globally, then each
+ * request can provide ConfigServiceMap.get(context) to select the right instance.
+ *
+ * Lifetime model:
+ * - ConfigServiceMap.layer has the app/global lifetime and depends on Npm.Service.
+ * - ConfigServiceMap.get(context) has the request/context lifetime and provides
+ * ConfigService for exactly that context key.
+ * - The cached ConfigService entry stays alive while something is using it. Once idle,
+ * it remains cached for idleTimeToLive, then its scope is finalized.
+ * - invalidate(context) removes the cache entry for future lookups. Active users keep
+ * running on the old instance; the next lookup can create a fresh instance.
+ *
+ * Key model:
+ * - Keys can be strings, structs, classes, arrays, etc.
+ * - Prefer primitive or immutable keys. Effect uses Hash / Equal semantics for cache
+ * lookup, so mutating an object after it has been used as a key is a bug.
+ */
+
+export type RequestContext = {
+ readonly directory: string
+ readonly workspace: string
+}
+
+export class RequestContextRef extends Context.Service()(
+ "@opencode/example/RequestContextRef",
+) {}
+
+export interface ConfigServiceShape {
+ readonly directory: string
+ readonly workspace: string
+ readonly nextUse: () => Effect.Effect
+ readonly which: Npm.Interface["which"]
+}
+
+export class ConfigService extends Context.Service()(
+ "@opencode/example/ConfigService",
+) {}
+
+const configServiceLayer = Layer.effect(
+ ConfigService,
+ Effect.gen(function* () {
+ const context = yield* RequestContextRef
+ const npm = yield* Npm.Service
+
+ let useCount = 0
+
+ return ConfigService.of({
+ directory: context.directory,
+ workspace: context.workspace,
+ nextUse: () => Effect.succeed(++useCount),
+ which: npm.which,
+ })
+ }),
+)
+
+export class ConfigServiceMap extends LayerMap.Service()("@opencode/example/ConfigServiceMap", {
+ lookup: (context: RequestContext) =>
+ configServiceLayer.pipe(Layer.provide(Layer.succeed(RequestContextRef, RequestContextRef.of(context)))),
+ idleTimeToLive: "5 minutes",
+}) {}
+
+export const appLayer = ConfigServiceMap.layer
+
+export const readConfig = Effect.fn("LayerMapExample.readConfig")(function* () {
+ const config = yield* ConfigService
+
+ return {
+ directory: config.directory,
+ workspace: config.workspace,
+ useCount: yield* config.nextUse(),
+ }
+})
+
+export const handleRequest = Effect.fn("LayerMapExample.handleRequest")(function* (context: RequestContext) {
+ return yield* readConfig().pipe(Effect.provide(ConfigServiceMap.get(context)))
+})
+
+export const invalidateContext = (context: RequestContext) => ConfigServiceMap.invalidate(context)
diff --git a/packages/core/src/plugin/models-dev.ts b/packages/core/src/plugin/models-dev.ts
new file mode 100644
index 0000000000..e67c2e75a9
--- /dev/null
+++ b/packages/core/src/plugin/models-dev.ts
@@ -0,0 +1,108 @@
+import { DateTime, Effect } from "effect"
+import { Catalog } from "../catalog"
+import { ModelV2 } from "../model"
+import { ModelsDev } from "../models"
+import { PluginV2 } from "../plugin"
+import { ProviderV2 } from "../provider"
+
+function released(date: string) {
+ const time = Date.parse(date)
+ return DateTime.makeUnsafe(Number.isFinite(time) ? time : 0)
+}
+
+function cost(input: ModelsDev.Model["cost"]) {
+ const base = {
+ input: input?.input ?? 0,
+ output: input?.output ?? 0,
+ cache: {
+ read: input?.cache_read ?? 0,
+ write: input?.cache_write ?? 0,
+ },
+ }
+ if (!input?.context_over_200k) return [base]
+ return [
+ base,
+ {
+ tier: {
+ type: "context" as const,
+ size: 200_000,
+ },
+ input: input.context_over_200k.input,
+ output: input.context_over_200k.output,
+ cache: {
+ read: input.context_over_200k.cache_read ?? 0,
+ write: input.context_over_200k.cache_write ?? 0,
+ },
+ },
+ ]
+}
+
+function variants(model: ModelsDev.Model) {
+ return Object.entries(model.experimental?.modes ?? {}).map(([id, item]) => ({
+ id: ModelV2.VariantID.make(id),
+ headers: { ...(item.provider?.headers ?? {}) },
+ body: { ...(item.provider?.body ?? {}) },
+ aisdk: {
+ provider: {},
+ request: {},
+ },
+ }))
+}
+
+export const ModelsDevPlugin = PluginV2.define({
+ id: PluginV2.ID.make("models-dev"),
+ effect: Effect.gen(function* () {
+ const catalog = yield* Catalog.Service
+ const modelsDev = yield* ModelsDev.Service
+ for (const item of Object.values(yield* modelsDev.get())) {
+ const providerID = ProviderV2.ID.make(item.id)
+ yield* catalog.provider.update(providerID, (provider) => {
+ provider.name = item.name
+ provider.env = [...item.env]
+ provider.endpoint = item.npm
+ ? {
+ type: "aisdk",
+ package: item.npm,
+ url: item.api,
+ }
+ : {
+ type: "unknown",
+ }
+ })
+
+ for (const model of Object.values(item.models)) {
+ const modelID = ModelV2.ID.make(model.id)
+ yield* catalog.model
+ .update(providerID, modelID, (draft) => {
+ draft.name = model.name
+ draft.family = model.family ? ModelV2.Family.make(model.family) : undefined
+ draft.endpoint = model.provider?.npm
+ ? {
+ type: "aisdk",
+ package: model.provider?.npm,
+ url: model.provider.api,
+ }
+ : {
+ type: "unknown",
+ }
+ draft.capabilities = {
+ tools: model.tool_call,
+ input: [...(model.modalities?.input ?? [])],
+ output: [...(model.modalities?.output ?? [])],
+ }
+ draft.variants = variants(model)
+ draft.time.released = released(model.release_date)
+ draft.cost = cost(model.cost)
+ draft.status = model.status ?? "active"
+ draft.enabled = true
+ draft.limit = {
+ context: model.limit.context,
+ input: model.limit.input,
+ output: model.limit.output,
+ }
+ })
+ .pipe(Effect.orDie)
+ }
+ }
+ }).pipe(Effect.provide(ModelsDev.defaultLayer)),
+})
diff --git a/packages/core/src/plugin/provider.ts b/packages/core/src/plugin/provider.ts
new file mode 100644
index 0000000000..1880787495
--- /dev/null
+++ b/packages/core/src/plugin/provider.ts
@@ -0,0 +1 @@
+export { ProviderPlugins } from "./provider/index"
diff --git a/packages/core/src/plugin/provider/alibaba.ts b/packages/core/src/plugin/provider/alibaba.ts
new file mode 100644
index 0000000000..fa5c0a91cf
--- /dev/null
+++ b/packages/core/src/plugin/provider/alibaba.ts
@@ -0,0 +1,15 @@
+import { Effect } from "effect"
+import { PluginV2 } from "../../plugin"
+
+export const AlibabaPlugin = PluginV2.define({
+ id: PluginV2.ID.make("alibaba"),
+ effect: Effect.gen(function* () {
+ return {
+ "aisdk.sdk": Effect.fn(function* (evt) {
+ if (evt.package !== "@ai-sdk/alibaba") return
+ const mod = yield* Effect.promise(() => import("@ai-sdk/alibaba"))
+ evt.sdk = mod.createAlibaba(evt.options)
+ }),
+ }
+ }),
+})
diff --git a/packages/core/src/plugin/provider/amazon-bedrock.ts b/packages/core/src/plugin/provider/amazon-bedrock.ts
new file mode 100644
index 0000000000..366548a0a3
--- /dev/null
+++ b/packages/core/src/plugin/provider/amazon-bedrock.ts
@@ -0,0 +1,94 @@
+import { Effect } from "effect"
+import { PluginV2 } from "../../plugin"
+import { ProviderV2 } from "../../provider"
+
+// Bedrock cross-region inference profiles require regional prefixes only for
+// specific model/region combinations. Keep the mapping narrow and avoid
+// double-prefixing model IDs that models.dev already marks as global/us/eu/etc.
+function resolveModelID(modelID: string, region: string | undefined) {
+ const crossRegionPrefixes = ["global.", "us.", "eu.", "jp.", "apac.", "au."]
+ if (crossRegionPrefixes.some((prefix) => modelID.startsWith(prefix))) return modelID
+
+ const resolvedRegion = region ?? "us-east-1"
+ const regionPrefix = resolvedRegion.split("-")[0]
+ if (regionPrefix === "us") {
+ const requiresPrefix = ["nova-micro", "nova-lite", "nova-pro", "nova-premier", "nova-2", "claude", "deepseek"].some(
+ (item) => modelID.includes(item),
+ )
+ if (requiresPrefix && !resolvedRegion.startsWith("us-gov")) return `${regionPrefix}.${modelID}`
+ return modelID
+ }
+ if (regionPrefix === "eu") {
+ const regionRequiresPrefix = [
+ "eu-west-1",
+ "eu-west-2",
+ "eu-west-3",
+ "eu-north-1",
+ "eu-central-1",
+ "eu-south-1",
+ "eu-south-2",
+ ].some((item) => resolvedRegion.includes(item))
+ const modelRequiresPrefix = ["claude", "nova-lite", "nova-micro", "llama3", "pixtral"].some((item) =>
+ modelID.includes(item),
+ )
+ return regionRequiresPrefix && modelRequiresPrefix ? `${regionPrefix}.${modelID}` : modelID
+ }
+ if (regionPrefix !== "ap") return modelID
+
+ const australia = ["ap-southeast-2", "ap-southeast-4"].includes(resolvedRegion)
+ if (australia && ["anthropic.claude-sonnet-4-5", "anthropic.claude-haiku"].some((item) => modelID.includes(item))) {
+ return `au.${modelID}`
+ }
+
+ const prefix = resolvedRegion === "ap-northeast-1" ? "jp" : "apac"
+ return ["claude", "nova-lite", "nova-micro", "nova-pro"].some((item) => modelID.includes(item))
+ ? `${prefix}.${modelID}`
+ : modelID
+}
+
+export const AmazonBedrockPlugin = PluginV2.define({
+ id: PluginV2.ID.make("amazon-bedrock"),
+ effect: Effect.gen(function* () {
+ return {
+ "provider.update": Effect.fn(function* (evt) {
+ if (evt.provider.id !== ProviderV2.ID.amazonBedrock) return
+ if (evt.provider.endpoint.type !== "aisdk") return
+ if (typeof evt.provider.options.aisdk.provider.endpoint !== "string") return
+ // The AI SDK expects a base URL, but users configure Bedrock private/VPC
+ // endpoints as `endpoint`; move it into the catalog endpoint URL once.
+ evt.provider.endpoint.url = evt.provider.options.aisdk.provider.endpoint
+ delete evt.provider.options.aisdk.provider.endpoint
+ }),
+ "aisdk.sdk": Effect.fn(function* (evt) {
+ if (evt.package !== "@ai-sdk/amazon-bedrock") return
+ const options = { ...evt.options }
+ const profile = typeof options.profile === "string" ? options.profile : process.env.AWS_PROFILE
+ const region = typeof options.region === "string" ? options.region : (process.env.AWS_REGION ?? "us-east-1")
+ const bearerToken =
+ process.env.AWS_BEARER_TOKEN_BEDROCK ??
+ (typeof options.bearerToken === "string" ? options.bearerToken : undefined)
+ if (bearerToken && !process.env.AWS_BEARER_TOKEN_BEDROCK) process.env.AWS_BEARER_TOKEN_BEDROCK = bearerToken
+ const containerCreds = Boolean(
+ process.env.AWS_CONTAINER_CREDENTIALS_RELATIVE_URI || process.env.AWS_CONTAINER_CREDENTIALS_FULL_URI,
+ )
+
+ options.region = region
+ if (typeof options.endpoint === "string") options.baseURL = options.endpoint
+ if (!bearerToken && options.credentialProvider === undefined) {
+ // Do not gate SDK creation on explicit AWS env vars. The default chain
+ // also handles ~/.aws/credentials, SSO, process creds, and instance roles.
+ const { fromNodeProviderChain } = yield* Effect.promise(() => import("@aws-sdk/credential-providers"))
+ options.credentialProvider = fromNodeProviderChain(profile ? { profile } : {})
+ }
+
+ const mod = yield* Effect.promise(() => import("@ai-sdk/amazon-bedrock"))
+ evt.sdk = mod.createAmazonBedrock(options)
+ }),
+ "aisdk.language": Effect.fn(function* (evt) {
+ if (evt.model.providerID !== ProviderV2.ID.amazonBedrock) return
+ const region = typeof evt.options.region === "string" ? evt.options.region : process.env.AWS_REGION
+ evt.language = evt.sdk.languageModel(resolveModelID(evt.model.apiID, region))
+ }),
+ }
+ }),
+})
diff --git a/packages/core/src/plugin/provider/anthropic.ts b/packages/core/src/plugin/provider/anthropic.ts
new file mode 100644
index 0000000000..14851c4a31
--- /dev/null
+++ b/packages/core/src/plugin/provider/anthropic.ts
@@ -0,0 +1,21 @@
+import { Effect } from "effect"
+import { PluginV2 } from "../../plugin"
+import { ProviderV2 } from "../../provider"
+
+export const AnthropicPlugin = PluginV2.define({
+ id: PluginV2.ID.make("anthropic"),
+ effect: Effect.gen(function* () {
+ return {
+ "provider.update": Effect.fn(function* (evt) {
+ if (evt.provider.id !== ProviderV2.ID.anthropic) return
+ evt.provider.options.headers["anthropic-beta"] =
+ "interleaved-thinking-2025-05-14,fine-grained-tool-streaming-2025-05-14"
+ }),
+ "aisdk.sdk": Effect.fn(function* (evt) {
+ if (evt.package !== "@ai-sdk/anthropic") return
+ const mod = yield* Effect.promise(() => import("@ai-sdk/anthropic"))
+ evt.sdk = mod.createAnthropic(evt.options)
+ }),
+ }
+ }),
+})
diff --git a/packages/core/src/plugin/provider/azure.ts b/packages/core/src/plugin/provider/azure.ts
new file mode 100644
index 0000000000..6c29a16103
--- /dev/null
+++ b/packages/core/src/plugin/provider/azure.ts
@@ -0,0 +1,64 @@
+import { Effect } from "effect"
+import { PluginV2 } from "../../plugin"
+import { ProviderV2 } from "../../provider"
+
+function selectLanguage(sdk: any, modelID: string, useChat: boolean) {
+ if (useChat && sdk.chat) return sdk.chat(modelID)
+ if (sdk.responses) return sdk.responses(modelID)
+ if (sdk.messages) return sdk.messages(modelID)
+ if (sdk.chat) return sdk.chat(modelID)
+ return sdk.languageModel(modelID)
+}
+
+export const AzurePlugin = PluginV2.define({
+ id: PluginV2.ID.make("azure"),
+ effect: Effect.gen(function* () {
+ return {
+ "provider.update": Effect.fn(function* (evt) {
+ if (evt.provider.id !== ProviderV2.ID.azure) return
+ const configured = evt.provider.options.aisdk.provider.resourceName
+ const resourceName =
+ typeof configured === "string" && configured.trim() !== "" ? configured : process.env.AZURE_RESOURCE_NAME
+ if (resourceName) evt.provider.options.aisdk.provider.resourceName = resourceName
+ }),
+ "aisdk.sdk": Effect.fn(function* (evt) {
+ if (evt.package !== "@ai-sdk/azure") return
+ if (evt.model.providerID === ProviderV2.ID.azure) {
+ if (
+ !evt.options.resourceName &&
+ !evt.options.baseURL &&
+ (evt.model.endpoint.type !== "aisdk" || !evt.model.endpoint.url)
+ ) {
+ throw new Error(
+ "AZURE_RESOURCE_NAME is missing, set it using env var or reconnecting the azure provider and setting it",
+ )
+ }
+ }
+ const mod = yield* Effect.promise(() => import("@ai-sdk/azure"))
+ evt.sdk = mod.createAzure(evt.options)
+ }),
+ "aisdk.language": Effect.fn(function* (evt) {
+ if (evt.model.providerID !== ProviderV2.ID.azure) return
+ evt.language = selectLanguage(evt.sdk, evt.model.apiID, Boolean(evt.options.useCompletionUrls))
+ }),
+ }
+ }),
+})
+
+export const AzureCognitiveServicesPlugin = PluginV2.define({
+ id: PluginV2.ID.make("azure-cognitive-services"),
+ effect: Effect.gen(function* () {
+ return {
+ "provider.update": Effect.fn(function* (evt) {
+ if (evt.provider.id !== ProviderV2.ID.make("azure-cognitive-services")) return
+ const resourceName = process.env.AZURE_COGNITIVE_SERVICES_RESOURCE_NAME
+ if (resourceName)
+ evt.provider.options.aisdk.provider.baseURL = `https://${resourceName}.cognitiveservices.azure.com/openai`
+ }),
+ "aisdk.language": Effect.fn(function* (evt) {
+ if (evt.model.providerID !== ProviderV2.ID.make("azure-cognitive-services")) return
+ evt.language = selectLanguage(evt.sdk, evt.model.apiID, Boolean(evt.options.useCompletionUrls))
+ }),
+ }
+ }),
+})
diff --git a/packages/core/src/plugin/provider/cerebras.ts b/packages/core/src/plugin/provider/cerebras.ts
new file mode 100644
index 0000000000..b2fadd8bf1
--- /dev/null
+++ b/packages/core/src/plugin/provider/cerebras.ts
@@ -0,0 +1,20 @@
+import { Effect } from "effect"
+import { PluginV2 } from "../../plugin"
+import { ProviderV2 } from "../../provider"
+
+export const CerebrasPlugin = PluginV2.define({
+ id: PluginV2.ID.make("cerebras"),
+ effect: Effect.gen(function* () {
+ return {
+ "provider.update": Effect.fn(function* (evt) {
+ if (evt.provider.id !== ProviderV2.ID.make("cerebras")) return
+ evt.provider.options.headers["X-Cerebras-3rd-Party-Integration"] = "opencode"
+ }),
+ "aisdk.sdk": Effect.fn(function* (evt) {
+ if (evt.package !== "@ai-sdk/cerebras") return
+ const mod = yield* Effect.promise(() => import("@ai-sdk/cerebras"))
+ evt.sdk = mod.createCerebras(evt.options)
+ }),
+ }
+ }),
+})
diff --git a/packages/core/src/plugin/provider/cloudflare-ai-gateway.ts b/packages/core/src/plugin/provider/cloudflare-ai-gateway.ts
new file mode 100644
index 0000000000..ffcd4adcf4
--- /dev/null
+++ b/packages/core/src/plugin/provider/cloudflare-ai-gateway.ts
@@ -0,0 +1,81 @@
+import os from "os"
+import { InstallationVersion } from "../../installation/version"
+import { Effect, Option, Schema } from "effect"
+import { PluginV2 } from "../../plugin"
+
+export const CloudflareAIGatewayPlugin = PluginV2.define({
+ id: PluginV2.ID.make("cloudflare-ai-gateway"),
+ effect: Effect.gen(function* () {
+ return {
+ "aisdk.sdk": Effect.fn(function* (evt) {
+ if (evt.package !== "ai-gateway-provider") return
+ if (evt.options.baseURL) return
+
+ const config = gatewayConfig(evt.options)
+ if (!config) return
+ const metadata = gatewayMetadata(evt.options)
+ const { createAiGateway } = yield* Effect.promise(() => import("ai-gateway-provider")).pipe(Effect.orDie)
+ const { createUnified } = yield* Effect.promise(() => import("ai-gateway-provider/providers/unified")).pipe(
+ Effect.orDie,
+ )
+ const gateway = createAiGateway({
+ accountId: config.accountId,
+ gateway: config.gatewayId,
+ apiKey: config.apiKey,
+ options: gatewayOptions(evt.options, metadata),
+ } as any)
+ const unified = createUnified()
+ evt.sdk = {
+ languageModel(modelID: string) {
+ return gateway(unified(modelID))
+ },
+ }
+ }),
+ }
+ }),
+})
+
+type GatewayConfig = {
+ accountId: string
+ gatewayId: string
+ apiKey: string
+}
+
+const decodeJson = Schema.decodeUnknownOption(Schema.UnknownFromJsonString)
+
+function gatewayConfig(options: Record): GatewayConfig | undefined {
+ const accountId = process.env.CLOUDFLARE_ACCOUNT_ID ?? stringOption(options, "accountId")
+ // AuthPlugin copies CLI prompt metadata into options. The prompt stores the
+ // gateway as gatewayId, while older config examples may use gateway.
+ const gatewayId =
+ process.env.CLOUDFLARE_GATEWAY_ID ?? stringOption(options, "gatewayId") ?? stringOption(options, "gateway")
+ const apiKey = process.env.CLOUDFLARE_API_TOKEN ?? process.env.CF_AIG_TOKEN ?? stringOption(options, "apiKey")
+ if (!accountId || !gatewayId || !apiKey) return undefined
+
+ return { accountId, gatewayId, apiKey }
+}
+
+function gatewayMetadata(options: Record) {
+ // Preserve the legacy cf-aig-metadata header escape hatch for gateway logging
+ // metadata, but prefer the typed metadata option when present.
+ if (options.metadata !== undefined) return options.metadata
+ const raw = (options.headers as Record | undefined)?.["cf-aig-metadata"]
+ return raw ? Option.getOrUndefined(decodeJson(raw)) : undefined
+}
+
+function gatewayOptions(options: Record, metadata: unknown) {
+ return {
+ metadata,
+ cacheTtl: options.cacheTtl,
+ cacheKey: options.cacheKey,
+ skipCache: options.skipCache,
+ collectLog: options.collectLog,
+ headers: {
+ "User-Agent": `opencode/${InstallationVersion} cloudflare-ai-gateway (${os.platform()} ${os.release()}; ${os.arch()})`,
+ },
+ }
+}
+
+function stringOption(options: Record, key: string) {
+ return typeof options[key] === "string" ? options[key] : undefined
+}
diff --git a/packages/core/src/plugin/provider/cloudflare-workers-ai.ts b/packages/core/src/plugin/provider/cloudflare-workers-ai.ts
new file mode 100644
index 0000000000..f39869b57d
--- /dev/null
+++ b/packages/core/src/plugin/provider/cloudflare-workers-ai.ts
@@ -0,0 +1,69 @@
+import os from "os"
+import { InstallationVersion } from "../../installation/version"
+import { Effect } from "effect"
+import { PluginV2 } from "../../plugin"
+import { ProviderV2 } from "../../provider"
+
+const providerID = ProviderV2.ID.make("cloudflare-workers-ai")
+
+export const CloudflareWorkersAIPlugin = PluginV2.define({
+ id: PluginV2.ID.make("cloudflare-workers-ai"),
+ effect: Effect.gen(function* () {
+ return {
+ "provider.update": Effect.fn(function* (evt) {
+ if (evt.provider.id !== providerID) return
+ if (evt.provider.endpoint.type !== "aisdk") return
+ if (evt.provider.endpoint.url) return
+
+ const accountId = resolveAccountId(evt.provider.options.aisdk.provider)
+ if (accountId) evt.provider.endpoint.url = workersEndpoint(accountId)
+ }),
+ "aisdk.sdk": Effect.fn(function* (evt) {
+ if (evt.model.providerID !== providerID) return
+ if (evt.package !== "@ai-sdk/openai-compatible") return
+
+ if (!hasWorkersEndpoint(evt.model.endpoint)) return
+ const mod = yield* Effect.promise(() => import("@ai-sdk/openai-compatible"))
+ evt.sdk = mod.createOpenAICompatible(sdkOptions(evt.options) as any)
+ }),
+ "aisdk.language": Effect.fn(function* (evt) {
+ if (evt.model.providerID !== providerID) return
+ evt.language = evt.sdk.languageModel(evt.model.apiID)
+ }),
+ }
+ }),
+})
+
+function resolveAccountId(options: Record) {
+ return process.env.CLOUDFLARE_ACCOUNT_ID ?? stringOption(options, "accountId")
+}
+
+function workersEndpoint(accountId: string) {
+ return `https://api.cloudflare.com/client/v4/accounts/${accountId}/ai/v1`
+}
+
+function hasWorkersEndpoint(endpoint: ProviderV2.Endpoint) {
+ return endpoint.type === "aisdk" && Boolean(endpoint.url)
+}
+
+function sdkOptions(options: Record) {
+ return {
+ ...options,
+ baseURL: expandAccountId(options.baseURL),
+ apiKey: process.env.CLOUDFLARE_API_KEY ?? options.apiKey,
+ headers: {
+ "User-Agent": `opencode/${InstallationVersion} cloudflare-workers-ai (${os.platform()} ${os.release()}; ${os.arch()})`,
+ ...options.headers,
+ },
+ name: providerID,
+ }
+}
+
+function expandAccountId(baseURL: unknown) {
+ if (typeof baseURL !== "string") return baseURL
+ return baseURL.replaceAll("${CLOUDFLARE_ACCOUNT_ID}", process.env.CLOUDFLARE_ACCOUNT_ID ?? "${CLOUDFLARE_ACCOUNT_ID}")
+}
+
+function stringOption(options: Record, key: string) {
+ return typeof options[key] === "string" ? options[key] : undefined
+}
diff --git a/packages/core/src/plugin/provider/cohere.ts b/packages/core/src/plugin/provider/cohere.ts
new file mode 100644
index 0000000000..991c370d17
--- /dev/null
+++ b/packages/core/src/plugin/provider/cohere.ts
@@ -0,0 +1,15 @@
+import { Effect } from "effect"
+import { PluginV2 } from "../../plugin"
+
+export const CoherePlugin = PluginV2.define({
+ id: PluginV2.ID.make("cohere"),
+ effect: Effect.gen(function* () {
+ return {
+ "aisdk.sdk": Effect.fn(function* (evt) {
+ if (evt.package !== "@ai-sdk/cohere") return
+ const mod = yield* Effect.promise(() => import("@ai-sdk/cohere"))
+ evt.sdk = mod.createCohere(evt.options)
+ }),
+ }
+ }),
+})
diff --git a/packages/core/src/plugin/provider/deepinfra.ts b/packages/core/src/plugin/provider/deepinfra.ts
new file mode 100644
index 0000000000..bbd42f6e28
--- /dev/null
+++ b/packages/core/src/plugin/provider/deepinfra.ts
@@ -0,0 +1,15 @@
+import { Effect } from "effect"
+import { PluginV2 } from "../../plugin"
+
+export const DeepInfraPlugin = PluginV2.define({
+ id: PluginV2.ID.make("deepinfra"),
+ effect: Effect.gen(function* () {
+ return {
+ "aisdk.sdk": Effect.fn(function* (evt) {
+ if (evt.package !== "@ai-sdk/deepinfra") return
+ const mod = yield* Effect.promise(() => import("@ai-sdk/deepinfra"))
+ evt.sdk = mod.createDeepInfra(evt.options)
+ }),
+ }
+ }),
+})
diff --git a/packages/core/src/plugin/provider/dynamic.ts b/packages/core/src/plugin/provider/dynamic.ts
new file mode 100644
index 0000000000..e5abc7009e
--- /dev/null
+++ b/packages/core/src/plugin/provider/dynamic.ts
@@ -0,0 +1,31 @@
+import { Npm } from "../../npm"
+import { Effect, Option } from "effect"
+import { pathToFileURL } from "url"
+import { PluginV2 } from "../../plugin"
+
+export const DynamicProviderPlugin = PluginV2.define({
+ id: PluginV2.ID.make("dynamic-provider"),
+ effect: Effect.gen(function* () {
+ const npm = yield* Npm.Service
+ return {
+ "aisdk.sdk": Effect.fn(function* (evt) {
+ if (evt.sdk) return
+
+ const installedPath = evt.package.startsWith("file://")
+ ? evt.package
+ : Option.getOrUndefined((yield* npm.add(evt.package).pipe(Effect.orDie)).entrypoint)
+ if (!installedPath) throw new Error(`Package ${evt.package} has no import entrypoint`)
+
+ const mod = yield* Effect.promise(async () => {
+ return (await import(
+ installedPath.startsWith("file://") ? installedPath : pathToFileURL(installedPath).href
+ )) as Record any>
+ }).pipe(Effect.orDie)
+ const match = Object.keys(mod).find((name) => name.startsWith("create"))
+ if (!match) throw new Error(`Package ${evt.package} has no provider factory export`)
+
+ evt.sdk = mod[match](evt.options)
+ }),
+ }
+ }),
+})
diff --git a/packages/core/src/plugin/provider/gateway.ts b/packages/core/src/plugin/provider/gateway.ts
new file mode 100644
index 0000000000..5b08ad9ef5
--- /dev/null
+++ b/packages/core/src/plugin/provider/gateway.ts
@@ -0,0 +1,15 @@
+import { Effect } from "effect"
+import { PluginV2 } from "../../plugin"
+
+export const GatewayPlugin = PluginV2.define({
+ id: PluginV2.ID.make("gateway"),
+ effect: Effect.gen(function* () {
+ return {
+ "aisdk.sdk": Effect.fn(function* (evt) {
+ if (evt.package !== "@ai-sdk/gateway") return
+ const mod = yield* Effect.promise(() => import("@ai-sdk/gateway"))
+ evt.sdk = mod.createGateway(evt.options)
+ }),
+ }
+ }),
+})
diff --git a/packages/core/src/plugin/provider/github-copilot.ts b/packages/core/src/plugin/provider/github-copilot.ts
new file mode 100644
index 0000000000..31e57ba12a
--- /dev/null
+++ b/packages/core/src/plugin/provider/github-copilot.ts
@@ -0,0 +1,44 @@
+import { Effect } from "effect"
+import { ModelV2 } from "../../model"
+import { PluginV2 } from "../../plugin"
+import { ProviderV2 } from "../../provider"
+
+function shouldUseResponses(modelID: string) {
+ // Copilot supports Responses for GPT-5 class models, except mini variants
+ // which still need the chat-completions endpoint.
+ const match = /^gpt-(\d+)/.exec(modelID)
+ if (!match) return false
+ return Number(match[1]) >= 5 && !modelID.startsWith("gpt-5-mini")
+}
+
+export const GithubCopilotPlugin = PluginV2.define({
+ id: PluginV2.ID.make("github-copilot"),
+ effect: Effect.gen(function* () {
+ return {
+ "provider.update": Effect.fn(function* (evt) {
+ if (evt.provider.id !== ProviderV2.ID.githubCopilot) return
+ }),
+ "aisdk.sdk": Effect.fn(function* (evt) {
+ if (evt.package !== "@ai-sdk/github-copilot") return
+ const mod = yield* Effect.promise(() => import("../../github-copilot/copilot-provider"))
+ evt.sdk = mod.createOpenaiCompatible(evt.options)
+ }),
+ "aisdk.language": Effect.fn(function* (evt) {
+ if (evt.model.providerID !== ProviderV2.ID.githubCopilot) return
+ if (evt.sdk.responses === undefined && evt.sdk.chat === undefined) {
+ evt.language = evt.sdk.languageModel(evt.model.apiID)
+ return
+ }
+ evt.language = shouldUseResponses(evt.model.apiID)
+ ? evt.sdk.responses(evt.model.apiID)
+ : evt.sdk.chat(evt.model.apiID)
+ }),
+ "model.update": Effect.fn(function* (evt) {
+ if (evt.model.providerID !== ProviderV2.ID.githubCopilot) return
+ // This chat-only alias conflicts with the Copilot GPT-5 Responses route,
+ // so hide it only for Copilot rather than for every provider catalog.
+ if (evt.model.id === ModelV2.ID.make("gpt-5-chat-latest")) evt.cancel = true
+ }),
+ }
+ }),
+})
diff --git a/packages/core/src/plugin/provider/gitlab.ts b/packages/core/src/plugin/provider/gitlab.ts
new file mode 100644
index 0000000000..226f5a45eb
--- /dev/null
+++ b/packages/core/src/plugin/provider/gitlab.ts
@@ -0,0 +1,65 @@
+import os from "os"
+import { InstallationVersion } from "../../installation/version"
+import { Effect } from "effect"
+import { PluginV2 } from "../../plugin"
+import { ProviderV2 } from "../../provider"
+
+export const GitLabPlugin = PluginV2.define({
+ id: PluginV2.ID.make("gitlab"),
+ effect: Effect.gen(function* () {
+ return {
+ "aisdk.sdk": Effect.fn(function* (evt) {
+ if (evt.package !== "gitlab-ai-provider") return
+ const mod = yield* Effect.promise(() => import("gitlab-ai-provider"))
+ evt.sdk = mod.createGitLab({
+ ...evt.options,
+ instanceUrl:
+ typeof evt.options.instanceUrl === "string"
+ ? evt.options.instanceUrl
+ : (process.env.GITLAB_INSTANCE_URL ?? "https://gitlab.com"),
+ apiKey: typeof evt.options.apiKey === "string" ? evt.options.apiKey : process.env.GITLAB_TOKEN,
+ aiGatewayHeaders: {
+ "User-Agent": `opencode/${InstallationVersion} gitlab-ai-provider/${mod.VERSION} (${os.platform()} ${os.release()}; ${os.arch()})`,
+ "anthropic-beta": "context-1m-2025-08-07",
+ ...evt.options.aiGatewayHeaders,
+ },
+ featureFlags: {
+ duo_agent_platform_agentic_chat: true,
+ duo_agent_platform: true,
+ ...evt.options.featureFlags,
+ },
+ })
+ }),
+ "aisdk.language": Effect.fn(function* (evt) {
+ if (evt.model.providerID !== ProviderV2.ID.gitlab) return
+ const featureFlags =
+ typeof evt.options.featureFlags === "object" && evt.options.featureFlags ? evt.options.featureFlags : {}
+ if (evt.model.apiID.startsWith("duo-workflow-")) {
+ const gitlab = yield* Effect.promise(() => import("gitlab-ai-provider")).pipe(Effect.orDie)
+ const workflowRef =
+ typeof evt.model.options.aisdk.request.workflowRef === "string"
+ ? evt.model.options.aisdk.request.workflowRef
+ : undefined
+ const workflowDefinition =
+ typeof evt.model.options.aisdk.request.workflowDefinition === "string"
+ ? evt.model.options.aisdk.request.workflowDefinition
+ : undefined
+ const language = evt.sdk.workflowChat(
+ gitlab.isWorkflowModel(evt.model.apiID) ? evt.model.apiID : "duo-workflow",
+ {
+ featureFlags,
+ workflowDefinition,
+ },
+ )
+ if (workflowRef) language.selectedModelRef = workflowRef
+ evt.language = language
+ return
+ }
+ evt.language = evt.sdk.agenticChat(evt.model.apiID, {
+ aiGatewayHeaders: evt.options.aiGatewayHeaders,
+ featureFlags,
+ })
+ }),
+ }
+ }),
+})
diff --git a/packages/core/src/plugin/provider/google-vertex.ts b/packages/core/src/plugin/provider/google-vertex.ts
new file mode 100644
index 0000000000..0c335df931
--- /dev/null
+++ b/packages/core/src/plugin/provider/google-vertex.ts
@@ -0,0 +1,141 @@
+import { Effect } from "effect"
+import { PluginV2 } from "../../plugin"
+import { ProviderV2 } from "../../provider"
+
+function resolveProject(options: Record) {
+ // models.dev advertises GOOGLE_VERTEX_PROJECT for Vertex, while Google SDKs
+ // and ADC examples commonly use the broader Google Cloud project aliases.
+ return (
+ options.project ??
+ process.env.GOOGLE_VERTEX_PROJECT ??
+ process.env.GOOGLE_CLOUD_PROJECT ??
+ process.env.GCP_PROJECT ??
+ process.env.GCLOUD_PROJECT
+ )
+}
+
+function resolveLocation(options: Record) {
+ return (
+ options.location ??
+ process.env.GOOGLE_VERTEX_LOCATION ??
+ process.env.GOOGLE_CLOUD_LOCATION ??
+ process.env.VERTEX_LOCATION ??
+ "us-central1"
+ )
+}
+
+function vertexEndpoint(location: string) {
+ return location === "global" ? "aiplatform.googleapis.com" : `${location}-aiplatform.googleapis.com`
+}
+
+function replaceVertexVars(value: string, project: string | undefined, location: string) {
+ // Vertex OpenAI-compatible endpoints are stored as templates in the catalog;
+ // expand them after provider config/env project and location have been resolved.
+ return value
+ .replaceAll("${GOOGLE_VERTEX_PROJECT}", project ?? "${GOOGLE_VERTEX_PROJECT}")
+ .replaceAll("${GOOGLE_VERTEX_LOCATION}", location)
+ .replaceAll("${GOOGLE_VERTEX_ENDPOINT}", vertexEndpoint(location))
+}
+
+function authFetch(fetchWithRuntimeOptions?: unknown) {
+ // Native Vertex SDKs handle ADC internally. OpenAI-compatible Vertex endpoints
+ // do not, so inject a Google access token into their fetch path.
+ return async (input: Parameters[0], init?: RequestInit) => {
+ const { GoogleAuth } = await import("google-auth-library")
+ const auth = new GoogleAuth()
+ const client = await auth.getApplicationDefault()
+ const token = await client.credential.getAccessToken()
+ const headers = new Headers(init?.headers)
+ headers.set("Authorization", `Bearer ${token.token}`)
+ return typeof fetchWithRuntimeOptions === "function"
+ ? fetchWithRuntimeOptions(input, { ...init, headers })
+ : fetch(input, { ...init, headers })
+ }
+}
+
+export const GoogleVertexPlugin = PluginV2.define({
+ id: PluginV2.ID.make("google-vertex"),
+ effect: Effect.gen(function* () {
+ return {
+ "provider.update": Effect.fn(function* (evt) {
+ if (evt.provider.id !== ProviderV2.ID.googleVertex) return
+ const project = resolveProject(evt.provider.options.aisdk.provider)
+ const location = String(resolveLocation(evt.provider.options.aisdk.provider))
+ if (project) evt.provider.options.aisdk.provider.project = project
+ evt.provider.options.aisdk.provider.location = location
+ if (evt.provider.endpoint.type === "aisdk" && evt.provider.endpoint.url) {
+ evt.provider.endpoint.url = replaceVertexVars(evt.provider.endpoint.url, project, location)
+ }
+ if (
+ evt.provider.endpoint.type === "aisdk" &&
+ evt.provider.endpoint.package.includes("@ai-sdk/openai-compatible")
+ ) {
+ evt.provider.options.aisdk.provider.fetch = authFetch(evt.provider.options.aisdk.provider.fetch)
+ }
+ }),
+ "aisdk.sdk": Effect.fn(function* (evt) {
+ if (evt.model.providerID === ProviderV2.ID.googleVertex && evt.package.includes("@ai-sdk/openai-compatible")) {
+ evt.options.fetch = authFetch(evt.options.fetch)
+ return
+ }
+ if (evt.package !== "@ai-sdk/google-vertex") return
+ const mod = yield* Effect.promise(() => import("@ai-sdk/google-vertex"))
+ const project = resolveProject(evt.options)
+ const location = resolveLocation(evt.options)
+ const options = { ...evt.options }
+ delete options.fetch
+ evt.sdk = mod.createVertex({
+ ...options,
+ project,
+ location,
+ })
+ }),
+ "aisdk.language": Effect.fn(function* (evt) {
+ if (evt.model.providerID !== ProviderV2.ID.googleVertex) return
+ evt.language = evt.sdk.languageModel(String(evt.model.apiID).trim())
+ }),
+ }
+ }),
+})
+
+export const GoogleVertexAnthropicPlugin = PluginV2.define({
+ id: PluginV2.ID.make("google-vertex-anthropic"),
+ effect: Effect.gen(function* () {
+ return {
+ "provider.update": Effect.fn(function* (evt) {
+ if (evt.provider.id !== ProviderV2.ID.make("google-vertex-anthropic")) return
+ const project =
+ evt.provider.options.aisdk.provider.project ??
+ process.env.GOOGLE_CLOUD_PROJECT ??
+ process.env.GCP_PROJECT ??
+ process.env.GCLOUD_PROJECT
+ const location =
+ evt.provider.options.aisdk.provider.location ??
+ process.env.GOOGLE_CLOUD_LOCATION ??
+ process.env.VERTEX_LOCATION ??
+ "global"
+ if (project) evt.provider.options.aisdk.provider.project = project
+ evt.provider.options.aisdk.provider.location = location
+ }),
+ "aisdk.sdk": Effect.fn(function* (evt) {
+ if (evt.package !== "@ai-sdk/google-vertex/anthropic") return
+ const mod = yield* Effect.promise(() => import("@ai-sdk/google-vertex/anthropic"))
+ evt.sdk = mod.createVertexAnthropic({
+ ...evt.options,
+ project:
+ typeof evt.options.project === "string"
+ ? evt.options.project
+ : (process.env.GOOGLE_CLOUD_PROJECT ?? process.env.GCP_PROJECT ?? process.env.GCLOUD_PROJECT),
+ location:
+ typeof evt.options.location === "string"
+ ? evt.options.location
+ : (process.env.GOOGLE_CLOUD_LOCATION ?? process.env.VERTEX_LOCATION ?? "global"),
+ })
+ }),
+ "aisdk.language": Effect.fn(function* (evt) {
+ if (evt.model.providerID !== ProviderV2.ID.make("google-vertex-anthropic")) return
+ evt.language = evt.sdk.languageModel(String(evt.model.apiID).trim())
+ }),
+ }
+ }),
+})
diff --git a/packages/core/src/plugin/provider/google.ts b/packages/core/src/plugin/provider/google.ts
new file mode 100644
index 0000000000..47e29c6b5d
--- /dev/null
+++ b/packages/core/src/plugin/provider/google.ts
@@ -0,0 +1,15 @@
+import { Effect } from "effect"
+import { PluginV2 } from "../../plugin"
+
+export const GooglePlugin = PluginV2.define({
+ id: PluginV2.ID.make("google"),
+ effect: Effect.gen(function* () {
+ return {
+ "aisdk.sdk": Effect.fn(function* (evt) {
+ if (evt.package !== "@ai-sdk/google") return
+ const mod = yield* Effect.promise(() => import("@ai-sdk/google"))
+ evt.sdk = mod.createGoogleGenerativeAI(evt.options)
+ }),
+ }
+ }),
+})
diff --git a/packages/core/src/plugin/provider/groq.ts b/packages/core/src/plugin/provider/groq.ts
new file mode 100644
index 0000000000..f2052afd1a
--- /dev/null
+++ b/packages/core/src/plugin/provider/groq.ts
@@ -0,0 +1,15 @@
+import { Effect } from "effect"
+import { PluginV2 } from "../../plugin"
+
+export const GroqPlugin = PluginV2.define({
+ id: PluginV2.ID.make("groq"),
+ effect: Effect.gen(function* () {
+ return {
+ "aisdk.sdk": Effect.fn(function* (evt) {
+ if (evt.package !== "@ai-sdk/groq") return
+ const mod = yield* Effect.promise(() => import("@ai-sdk/groq"))
+ evt.sdk = mod.createGroq(evt.options)
+ }),
+ }
+ }),
+})
diff --git a/packages/core/src/plugin/provider/index.ts b/packages/core/src/plugin/provider/index.ts
new file mode 100644
index 0000000000..fd02d322a1
--- /dev/null
+++ b/packages/core/src/plugin/provider/index.ts
@@ -0,0 +1,67 @@
+import { AlibabaPlugin } from "./alibaba"
+import { AmazonBedrockPlugin } from "./amazon-bedrock"
+import { AnthropicPlugin } from "./anthropic"
+import { AzureCognitiveServicesPlugin, AzurePlugin } from "./azure"
+import { CerebrasPlugin } from "./cerebras"
+import { CloudflareAIGatewayPlugin } from "./cloudflare-ai-gateway"
+import { CloudflareWorkersAIPlugin } from "./cloudflare-workers-ai"
+import { CoherePlugin } from "./cohere"
+import { DeepInfraPlugin } from "./deepinfra"
+import { DynamicProviderPlugin } from "./dynamic"
+import { GatewayPlugin } from "./gateway"
+import { GithubCopilotPlugin } from "./github-copilot"
+import { GitLabPlugin } from "./gitlab"
+import { GooglePlugin } from "./google"
+import { GoogleVertexAnthropicPlugin, GoogleVertexPlugin } from "./google-vertex"
+import { GroqPlugin } from "./groq"
+import { KiloPlugin } from "./kilo"
+import { LLMGatewayPlugin } from "./llmgateway"
+import { MistralPlugin } from "./mistral"
+import { NvidiaPlugin } from "./nvidia"
+import { OpenAIPlugin } from "./openai"
+import { OpenAICompatiblePlugin } from "./openai-compatible"
+import { OpencodePlugin } from "./opencode"
+import { OpenRouterPlugin } from "./openrouter"
+import { PerplexityPlugin } from "./perplexity"
+import { SapAICorePlugin } from "./sap-ai-core"
+import { TogetherAIPlugin } from "./togetherai"
+import { VercelPlugin } from "./vercel"
+import { VenicePlugin } from "./venice"
+import { XAIPlugin } from "./xai"
+import { ZenmuxPlugin } from "./zenmux"
+
+export const ProviderPlugins = [
+ AlibabaPlugin,
+ AmazonBedrockPlugin,
+ AnthropicPlugin,
+ AzureCognitiveServicesPlugin,
+ AzurePlugin,
+ CerebrasPlugin,
+ CloudflareAIGatewayPlugin,
+ CloudflareWorkersAIPlugin,
+ CoherePlugin,
+ DeepInfraPlugin,
+ GatewayPlugin,
+ GithubCopilotPlugin,
+ GitLabPlugin,
+ GooglePlugin,
+ GoogleVertexAnthropicPlugin,
+ GoogleVertexPlugin,
+ GroqPlugin,
+ KiloPlugin,
+ LLMGatewayPlugin,
+ MistralPlugin,
+ NvidiaPlugin,
+ OpencodePlugin,
+ OpenAICompatiblePlugin,
+ OpenAIPlugin,
+ OpenRouterPlugin,
+ PerplexityPlugin,
+ SapAICorePlugin,
+ TogetherAIPlugin,
+ VercelPlugin,
+ VenicePlugin,
+ XAIPlugin,
+ ZenmuxPlugin,
+ DynamicProviderPlugin,
+]
diff --git a/packages/core/src/plugin/provider/kilo.ts b/packages/core/src/plugin/provider/kilo.ts
new file mode 100644
index 0000000000..47b8ec99cd
--- /dev/null
+++ b/packages/core/src/plugin/provider/kilo.ts
@@ -0,0 +1,16 @@
+import { Effect } from "effect"
+import { PluginV2 } from "../../plugin"
+import { ProviderV2 } from "../../provider"
+
+export const KiloPlugin = PluginV2.define({
+ id: PluginV2.ID.make("kilo"),
+ effect: Effect.gen(function* () {
+ return {
+ "provider.update": Effect.fn(function* (evt) {
+ if (evt.provider.id !== ProviderV2.ID.make("kilo")) return
+ evt.provider.options.headers["HTTP-Referer"] = "https://opencode.ai/"
+ evt.provider.options.headers["X-Title"] = "opencode"
+ }),
+ }
+ }),
+})
diff --git a/packages/core/src/plugin/provider/llmgateway.ts b/packages/core/src/plugin/provider/llmgateway.ts
new file mode 100644
index 0000000000..da1ab282bd
--- /dev/null
+++ b/packages/core/src/plugin/provider/llmgateway.ts
@@ -0,0 +1,18 @@
+import { Effect } from "effect"
+import { PluginV2 } from "../../plugin"
+import { ProviderV2 } from "../../provider"
+
+export const LLMGatewayPlugin = PluginV2.define({
+ id: PluginV2.ID.make("llmgateway"),
+ effect: Effect.gen(function* () {
+ return {
+ "provider.update": Effect.fn(function* (evt) {
+ if (evt.provider.id !== ProviderV2.ID.make("llmgateway")) return
+ if (evt.provider.enabled === false) return
+ evt.provider.options.headers["HTTP-Referer"] = "https://opencode.ai/"
+ evt.provider.options.headers["X-Title"] = "opencode"
+ evt.provider.options.headers["X-Source"] = "opencode"
+ }),
+ }
+ }),
+})
diff --git a/packages/core/src/plugin/provider/mistral.ts b/packages/core/src/plugin/provider/mistral.ts
new file mode 100644
index 0000000000..e7f0decb79
--- /dev/null
+++ b/packages/core/src/plugin/provider/mistral.ts
@@ -0,0 +1,15 @@
+import { Effect } from "effect"
+import { PluginV2 } from "../../plugin"
+
+export const MistralPlugin = PluginV2.define({
+ id: PluginV2.ID.make("mistral"),
+ effect: Effect.gen(function* () {
+ return {
+ "aisdk.sdk": Effect.fn(function* (evt) {
+ if (evt.package !== "@ai-sdk/mistral") return
+ const mod = yield* Effect.promise(() => import("@ai-sdk/mistral"))
+ evt.sdk = mod.createMistral(evt.options)
+ }),
+ }
+ }),
+})
diff --git a/packages/core/src/plugin/provider/nvidia.ts b/packages/core/src/plugin/provider/nvidia.ts
new file mode 100644
index 0000000000..49ef6af0f6
--- /dev/null
+++ b/packages/core/src/plugin/provider/nvidia.ts
@@ -0,0 +1,17 @@
+import { Effect } from "effect"
+import { PluginV2 } from "../../plugin"
+import { ProviderV2 } from "../../provider"
+
+export const NvidiaPlugin = PluginV2.define({
+ id: PluginV2.ID.make("nvidia"),
+ effect: Effect.gen(function* () {
+ return {
+ "provider.update": Effect.fn(function* (evt) {
+ if (evt.provider.id !== ProviderV2.ID.make("nvidia")) return
+ evt.provider.options.headers["HTTP-Referer"] = "https://opencode.ai/"
+ evt.provider.options.headers["X-Title"] = "opencode"
+ evt.provider.options.headers["X-BILLING-INVOKE-ORIGIN"] ??= "OpenCode"
+ }),
+ }
+ }),
+})
diff --git a/packages/core/src/plugin/provider/openai-compatible.ts b/packages/core/src/plugin/provider/openai-compatible.ts
new file mode 100644
index 0000000000..76c3373706
--- /dev/null
+++ b/packages/core/src/plugin/provider/openai-compatible.ts
@@ -0,0 +1,17 @@
+import { Effect } from "effect"
+import { PluginV2 } from "../../plugin"
+
+export const OpenAICompatiblePlugin = PluginV2.define({
+ id: PluginV2.ID.make("openai-compatible"),
+ effect: Effect.gen(function* () {
+ return {
+ "aisdk.sdk": Effect.fn(function* (evt) {
+ if (evt.sdk) return
+ if (!evt.package.includes("@ai-sdk/openai-compatible")) return
+ if (evt.options.includeUsage !== false) evt.options.includeUsage = true
+ const mod = yield* Effect.promise(() => import("@ai-sdk/openai-compatible"))
+ evt.sdk = mod.createOpenAICompatible(evt.options as any)
+ }),
+ }
+ }),
+})
diff --git a/packages/core/src/plugin/provider/openai.ts b/packages/core/src/plugin/provider/openai.ts
new file mode 100644
index 0000000000..a81455f198
--- /dev/null
+++ b/packages/core/src/plugin/provider/openai.ts
@@ -0,0 +1,27 @@
+import { Effect } from "effect"
+import { ModelV2 } from "../../model"
+import { PluginV2 } from "../../plugin"
+import { ProviderV2 } from "../../provider"
+
+export const OpenAIPlugin = PluginV2.define({
+ id: PluginV2.ID.make("openai"),
+ effect: Effect.gen(function* () {
+ return {
+ "aisdk.sdk": Effect.fn(function* (evt) {
+ if (evt.package !== "@ai-sdk/openai") return
+ const mod = yield* Effect.promise(() => import("@ai-sdk/openai"))
+ evt.sdk = mod.createOpenAI(evt.options)
+ }),
+ "aisdk.language": Effect.fn(function* (evt) {
+ if (evt.model.providerID !== ProviderV2.ID.openai) return
+ evt.language = evt.sdk.responses(evt.model.apiID)
+ }),
+ "model.update": Effect.fn(function* (evt) {
+ if (evt.model.providerID !== ProviderV2.ID.openai) return
+ // OpenAIPlugin sends OpenAI models through Responses; this alias is a
+ // chat-completions-only model, so remove it only from OpenAI's catalog.
+ if (evt.model.id === ModelV2.ID.make("gpt-5-chat-latest")) evt.cancel = true
+ }),
+ }
+ }),
+})
diff --git a/packages/core/src/plugin/provider/opencode.ts b/packages/core/src/plugin/provider/opencode.ts
new file mode 100644
index 0000000000..10bbb62dad
--- /dev/null
+++ b/packages/core/src/plugin/provider/opencode.ts
@@ -0,0 +1,27 @@
+import { Effect } from "effect"
+import { PluginV2 } from "../../plugin"
+import { ProviderV2 } from "../../provider"
+
+export const OpencodePlugin = PluginV2.define({
+ id: PluginV2.ID.make("opencode"),
+ effect: Effect.gen(function* () {
+ let hasKey = false
+ return {
+ "provider.update": Effect.fn(function* (evt) {
+ if (evt.provider.id !== ProviderV2.ID.opencode) return
+ hasKey = Boolean(
+ process.env.OPENCODE_API_KEY ||
+ evt.provider.env.some((item) => process.env[item]) ||
+ evt.provider.options.aisdk.provider.apiKey ||
+ (evt.provider.enabled && evt.provider.enabled.via === "auth"),
+ )
+ if (!hasKey) evt.provider.options.aisdk.provider.apiKey = "public"
+ }),
+ "model.update": Effect.fn(function* (evt) {
+ if (evt.model.providerID !== ProviderV2.ID.opencode) return
+ if (hasKey) return
+ if (evt.model.cost.some((item) => item.input > 0)) evt.cancel = true
+ }),
+ }
+ }),
+})
diff --git a/packages/core/src/plugin/provider/openrouter.ts b/packages/core/src/plugin/provider/openrouter.ts
new file mode 100644
index 0000000000..976eea8c05
--- /dev/null
+++ b/packages/core/src/plugin/provider/openrouter.ts
@@ -0,0 +1,29 @@
+import { Effect } from "effect"
+import { ModelV2 } from "../../model"
+import { PluginV2 } from "../../plugin"
+import { ProviderV2 } from "../../provider"
+
+export const OpenRouterPlugin = PluginV2.define({
+ id: PluginV2.ID.make("openrouter"),
+ effect: Effect.gen(function* () {
+ return {
+ "provider.update": Effect.fn(function* (evt) {
+ if (evt.provider.id !== ProviderV2.ID.openrouter) return
+ evt.provider.options.headers["HTTP-Referer"] = "https://opencode.ai/"
+ evt.provider.options.headers["X-Title"] = "opencode"
+ }),
+ "aisdk.sdk": Effect.fn(function* (evt) {
+ if (evt.package !== "@openrouter/ai-sdk-provider") return
+ const mod = yield* Effect.promise(() => import("@openrouter/ai-sdk-provider"))
+ evt.sdk = mod.createOpenRouter(evt.options)
+ }),
+ "model.update": Effect.fn(function* (evt) {
+ if (evt.model.providerID !== ProviderV2.ID.openrouter) return
+ // These are OpenRouter-specific OpenAI chat aliases that do not work on
+ // the generic path. Keep custom providers with matching IDs untouched.
+ if (evt.model.id === ModelV2.ID.make("gpt-5-chat-latest")) evt.cancel = true
+ if (evt.model.id === ModelV2.ID.make("openai/gpt-5-chat")) evt.cancel = true
+ }),
+ }
+ }),
+})
diff --git a/packages/core/src/plugin/provider/perplexity.ts b/packages/core/src/plugin/provider/perplexity.ts
new file mode 100644
index 0000000000..2415ab7c1a
--- /dev/null
+++ b/packages/core/src/plugin/provider/perplexity.ts
@@ -0,0 +1,15 @@
+import { Effect } from "effect"
+import { PluginV2 } from "../../plugin"
+
+export const PerplexityPlugin = PluginV2.define({
+ id: PluginV2.ID.make("perplexity"),
+ effect: Effect.gen(function* () {
+ return {
+ "aisdk.sdk": Effect.fn(function* (evt) {
+ if (evt.package !== "@ai-sdk/perplexity") return
+ const mod = yield* Effect.promise(() => import("@ai-sdk/perplexity"))
+ evt.sdk = mod.createPerplexity(evt.options)
+ }),
+ }
+ }),
+})
diff --git a/packages/core/src/plugin/provider/sap-ai-core.ts b/packages/core/src/plugin/provider/sap-ai-core.ts
new file mode 100644
index 0000000000..7c57b785bf
--- /dev/null
+++ b/packages/core/src/plugin/provider/sap-ai-core.ts
@@ -0,0 +1,44 @@
+import { Npm } from "../../npm"
+import { Effect, Option } from "effect"
+import { pathToFileURL } from "url"
+import { PluginV2 } from "../../plugin"
+import { ProviderV2 } from "../../provider"
+
+export const SapAICorePlugin = PluginV2.define({
+ id: PluginV2.ID.make("sap-ai-core"),
+ effect: Effect.gen(function* () {
+ const npm = yield* Npm.Service
+ return {
+ "aisdk.sdk": Effect.fn(function* (evt) {
+ if (evt.model.providerID !== ProviderV2.ID.make("sap-ai-core")) return
+ const serviceKey =
+ process.env.AICORE_SERVICE_KEY ??
+ (typeof evt.options.serviceKey === "string" ? evt.options.serviceKey : undefined)
+ if (serviceKey && !process.env.AICORE_SERVICE_KEY) process.env.AICORE_SERVICE_KEY = serviceKey
+
+ const installedPath = evt.package.startsWith("file://")
+ ? evt.package
+ : Option.getOrUndefined((yield* npm.add(evt.package).pipe(Effect.orDie)).entrypoint)
+ if (!installedPath) throw new Error(`Package ${evt.package} has no import entrypoint`)
+
+ const mod = yield* Effect.promise(async () => {
+ return (await import(
+ installedPath.startsWith("file://") ? installedPath : pathToFileURL(installedPath).href
+ )) as Record any>
+ }).pipe(Effect.orDie)
+ const match = Object.keys(mod).find((name) => name.startsWith("create"))
+ if (!match) throw new Error(`Package ${evt.package} has no provider factory export`)
+
+ evt.sdk = mod[match](
+ serviceKey
+ ? { deploymentId: process.env.AICORE_DEPLOYMENT_ID, resourceGroup: process.env.AICORE_RESOURCE_GROUP }
+ : {},
+ )
+ }),
+ "aisdk.language": Effect.fn(function* (evt) {
+ if (evt.model.providerID !== ProviderV2.ID.make("sap-ai-core")) return
+ evt.language = evt.sdk(evt.model.apiID)
+ }),
+ }
+ }),
+})
diff --git a/packages/core/src/plugin/provider/togetherai.ts b/packages/core/src/plugin/provider/togetherai.ts
new file mode 100644
index 0000000000..b1870f2662
--- /dev/null
+++ b/packages/core/src/plugin/provider/togetherai.ts
@@ -0,0 +1,15 @@
+import { Effect } from "effect"
+import { PluginV2 } from "../../plugin"
+
+export const TogetherAIPlugin = PluginV2.define({
+ id: PluginV2.ID.make("togetherai"),
+ effect: Effect.gen(function* () {
+ return {
+ "aisdk.sdk": Effect.fn(function* (evt) {
+ if (evt.package !== "@ai-sdk/togetherai") return
+ const mod = yield* Effect.promise(() => import("@ai-sdk/togetherai"))
+ evt.sdk = mod.createTogetherAI(evt.options)
+ }),
+ }
+ }),
+})
diff --git a/packages/core/src/plugin/provider/venice.ts b/packages/core/src/plugin/provider/venice.ts
new file mode 100644
index 0000000000..8a3b950245
--- /dev/null
+++ b/packages/core/src/plugin/provider/venice.ts
@@ -0,0 +1,15 @@
+import { Effect } from "effect"
+import { PluginV2 } from "../../plugin"
+
+export const VenicePlugin = PluginV2.define({
+ id: PluginV2.ID.make("venice"),
+ effect: Effect.gen(function* () {
+ return {
+ "aisdk.sdk": Effect.fn(function* (evt) {
+ if (evt.package !== "venice-ai-sdk-provider") return
+ const mod = yield* Effect.promise(() => import("venice-ai-sdk-provider"))
+ evt.sdk = mod.createVenice(evt.options)
+ }),
+ }
+ }),
+})
diff --git a/packages/core/src/plugin/provider/vercel.ts b/packages/core/src/plugin/provider/vercel.ts
new file mode 100644
index 0000000000..2108542b16
--- /dev/null
+++ b/packages/core/src/plugin/provider/vercel.ts
@@ -0,0 +1,21 @@
+import { Effect } from "effect"
+import { PluginV2 } from "../../plugin"
+import { ProviderV2 } from "../../provider"
+
+export const VercelPlugin = PluginV2.define({
+ id: PluginV2.ID.make("vercel"),
+ effect: Effect.gen(function* () {
+ return {
+ "provider.update": Effect.fn(function* (evt) {
+ if (evt.provider.id !== ProviderV2.ID.make("vercel")) return
+ evt.provider.options.headers["http-referer"] = "https://opencode.ai/"
+ evt.provider.options.headers["x-title"] = "opencode"
+ }),
+ "aisdk.sdk": Effect.fn(function* (evt) {
+ if (evt.package !== "@ai-sdk/vercel") return
+ const mod = yield* Effect.promise(() => import("@ai-sdk/vercel"))
+ evt.sdk = mod.createVercel(evt.options)
+ }),
+ }
+ }),
+})
diff --git a/packages/core/src/plugin/provider/xai.ts b/packages/core/src/plugin/provider/xai.ts
new file mode 100644
index 0000000000..b54aa7374c
--- /dev/null
+++ b/packages/core/src/plugin/provider/xai.ts
@@ -0,0 +1,20 @@
+import { Effect } from "effect"
+import { PluginV2 } from "../../plugin"
+import { ProviderV2 } from "../../provider"
+
+export const XAIPlugin = PluginV2.define({
+ id: PluginV2.ID.make("xai"),
+ effect: Effect.gen(function* () {
+ return {
+ "aisdk.sdk": Effect.fn(function* (evt) {
+ if (evt.package !== "@ai-sdk/xai") return
+ const mod = yield* Effect.promise(() => import("@ai-sdk/xai"))
+ evt.sdk = mod.createXai(evt.options)
+ }),
+ "aisdk.language": Effect.fn(function* (evt) {
+ if (evt.model.providerID !== ProviderV2.ID.make("xai")) return
+ evt.language = evt.sdk.responses(evt.model.apiID)
+ }),
+ }
+ }),
+})
diff --git a/packages/core/src/plugin/provider/zenmux.ts b/packages/core/src/plugin/provider/zenmux.ts
new file mode 100644
index 0000000000..6bdd426010
--- /dev/null
+++ b/packages/core/src/plugin/provider/zenmux.ts
@@ -0,0 +1,16 @@
+import { Effect } from "effect"
+import { PluginV2 } from "../../plugin"
+import { ProviderV2 } from "../../provider"
+
+export const ZenmuxPlugin = PluginV2.define({
+ id: PluginV2.ID.make("zenmux"),
+ effect: Effect.gen(function* () {
+ return {
+ "provider.update": Effect.fn(function* (evt) {
+ if (evt.provider.id !== ProviderV2.ID.make("zenmux")) return
+ evt.provider.options.headers["HTTP-Referer"] ??= "https://opencode.ai/"
+ evt.provider.options.headers["X-Title"] ??= "opencode"
+ }),
+ }
+ }),
+})
diff --git a/packages/core/src/process.ts b/packages/core/src/process.ts
new file mode 100644
index 0000000000..f076ea4e42
--- /dev/null
+++ b/packages/core/src/process.ts
@@ -0,0 +1,234 @@
+import { Context, Duration, Effect, Fiber, Layer, Schema, Stream } from "effect"
+import type { PlatformError } from "effect/PlatformError"
+import { ChildProcess } from "effect/unstable/process"
+import { ChildProcessSpawner } from "effect/unstable/process/ChildProcessSpawner"
+import { CrossSpawnSpawner } from "./cross-spawn-spawner"
+
+export class AppProcessError extends Schema.TaggedErrorClass()("AppProcessError", {
+ command: Schema.String,
+ exitCode: Schema.optional(Schema.Number),
+ stderr: Schema.optional(Schema.String),
+ cause: Schema.optional(Schema.Defect),
+}) {}
+
+export interface RunOptions {
+ readonly maxOutputBytes?: number
+ readonly maxErrorBytes?: number
+ readonly signal?: AbortSignal
+ readonly timeout?: Duration.Input
+ readonly stdin?: string | Uint8Array | Stream.Stream
+}
+
+export interface RunStreamOptions {
+ readonly signal?: AbortSignal
+ readonly includeStderr?: boolean
+ readonly okExitCodes?: ReadonlyArray
+ readonly maxErrorBytes?: number
+}
+
+export interface RunResult {
+ readonly command: string
+ readonly exitCode: number
+ readonly stdout: Buffer
+ readonly stderr: Buffer
+ readonly stdoutTruncated: boolean
+ readonly stderrTruncated: boolean
+}
+
+export type Interface = ChildProcessSpawner["Service"] & {
+ readonly run: (command: ChildProcess.Command, options?: RunOptions) => Effect.Effect
+ readonly runStream: (
+ command: ChildProcess.Command,
+ options?: RunStreamOptions,
+ ) => Stream.Stream
+}
+
+export class Service extends Context.Service()("@opencode/AppProcess") {}
+
+export const requireSuccess = (result: RunResult): Effect.Effect =>
+ result.exitCode === 0
+ ? Effect.succeed(result)
+ : Effect.fail(
+ new AppProcessError({
+ command: result.command,
+ exitCode: result.exitCode,
+ stderr: result.stderr.toString("utf8"),
+ }),
+ )
+
+export const requireExitIn =
+ (codes: ReadonlyArray) =>
+ (result: RunResult): Effect.Effect =>
+ codes.includes(result.exitCode)
+ ? Effect.succeed(result)
+ : Effect.fail(
+ new AppProcessError({
+ command: result.command,
+ exitCode: result.exitCode,
+ stderr: result.stderr.toString("utf8"),
+ }),
+ )
+
+const describeCommand = (command: ChildProcess.Command): string => {
+ if (command._tag === "StandardCommand") {
+ return command.args.length ? `${command.command} ${command.args.join(" ")}` : command.command
+ }
+ return `${describeCommand(command.left)} | ${describeCommand(command.right)}`
+}
+
+const wrapError = (description: string, cause: unknown): AppProcessError =>
+ cause instanceof AppProcessError ? cause : new AppProcessError({ command: description, cause })
+
+const abortError = (signal: AbortSignal): Error => {
+ const reason = signal.reason
+ if (reason instanceof Error) return reason
+ const err = new Error("Aborted")
+ err.name = "AbortError"
+ return err
+}
+
+const waitForAbort = (signal: AbortSignal) =>
+ Effect.callback((resume) => {
+ if (signal.aborted) {
+ resume(Effect.fail(abortError(signal)))
+ return
+ }
+ const onabort = () => resume(Effect.fail(abortError(signal)))
+ signal.addEventListener("abort", onabort, { once: true })
+ return Effect.sync(() => signal.removeEventListener("abort", onabort))
+ })
+
+const normalizeStdin = (
+ input: string | Uint8Array | Stream.Stream,
+): Stream.Stream =>
+ typeof input === "string"
+ ? Stream.make(new TextEncoder().encode(input))
+ : input instanceof Uint8Array
+ ? Stream.make(input)
+ : input
+
+const collectStream = (stream: Stream.Stream, maxOutputBytes: number | undefined) =>
+ Stream.runFold(
+ stream,
+ () => ({ chunks: [] as Uint8Array[], bytes: 0, truncated: false }),
+ (acc, chunk) => {
+ if (maxOutputBytes === undefined) {
+ acc.chunks.push(chunk)
+ acc.bytes += chunk.length
+ return acc
+ }
+ const remaining = maxOutputBytes - acc.bytes
+ if (remaining > 0) acc.chunks.push(remaining >= chunk.length ? chunk : chunk.slice(0, remaining))
+ acc.bytes += chunk.length
+ acc.truncated = acc.truncated || acc.bytes > maxOutputBytes
+ return acc
+ },
+ ).pipe(Effect.map((x) => ({ buffer: Buffer.concat(x.chunks), truncated: x.truncated })))
+
+export const layer = Layer.effect(
+ Service,
+ Effect.gen(function* () {
+ const spawner = yield* ChildProcessSpawner
+
+ const runCommand = (command: ChildProcess.Command, options?: RunOptions) => {
+ const description = describeCommand(command)
+ const collect = Effect.scoped(
+ Effect.gen(function* () {
+ const handle = yield* spawner.spawn(command)
+ const [stdout, stderr, exitCode] = yield* Effect.all(
+ [
+ collectStream(handle.stdout, options?.maxOutputBytes),
+ collectStream(handle.stderr, options?.maxErrorBytes),
+ handle.exitCode,
+ ],
+ { concurrency: "unbounded" },
+ )
+ return {
+ command: description,
+ exitCode,
+ stdout: stdout.buffer,
+ stderr: stderr.buffer,
+ stdoutTruncated: stdout.truncated,
+ stderrTruncated: stderr.truncated,
+ } satisfies RunResult
+ }),
+ )
+ const timed = options?.timeout
+ ? Effect.timeoutOrElse(collect, {
+ duration: options.timeout,
+ orElse: () => Effect.fail(new AppProcessError({ command: description, cause: new Error("Timed out") })),
+ })
+ : collect
+ const aborted = options?.signal
+ ? timed.pipe(
+ Effect.raceFirst(
+ waitForAbort(options.signal).pipe(Effect.mapError((cause) => wrapError(description, cause))),
+ ),
+ )
+ : timed
+ return aborted.pipe(Effect.catch((cause) => Effect.fail(wrapError(description, cause))))
+ }
+
+ const run = Effect.fn("AppProcess.run")(function* (command: ChildProcess.Command, options?: RunOptions) {
+ if (options?.stdin === undefined) return yield* runCommand(command, options)
+ if (command._tag !== "StandardCommand") {
+ return yield* new AppProcessError({
+ command: describeCommand(command),
+ cause: new Error("stdin option only supports StandardCommand; received PipedCommand"),
+ })
+ }
+ const next = ChildProcess.make(command.command, command.args, {
+ ...command.options,
+ stdin: normalizeStdin(options.stdin),
+ })
+ return yield* runCommand(next, options)
+ })
+
+ const runStream = (
+ command: ChildProcess.Command,
+ options?: RunStreamOptions,
+ ): Stream.Stream => {
+ const description = describeCommand(command)
+ const okExitCodes = options?.okExitCodes
+ const built: Stream.Stream = Stream.unwrap(
+ Effect.gen(function* () {
+ const handle = yield* spawner.spawn(command)
+ const stderrFiber = yield* Effect.forkScoped(
+ collectStream(handle.stderr, options?.maxErrorBytes).pipe(Effect.map((x) => x.buffer.toString("utf8"))),
+ )
+ const source = options?.includeStderr === true ? handle.all : handle.stdout
+ const lines = source.pipe(
+ Stream.decodeText,
+ Stream.splitLines,
+ Stream.filter((line) => line.length > 0),
+ )
+ const tail = Stream.unwrap(
+ Effect.gen(function* () {
+ const code = yield* handle.exitCode
+ if (okExitCodes && okExitCodes.length > 0 && !okExitCodes.includes(code)) {
+ const stderr = yield* Fiber.join(stderrFiber)
+ return Stream.fail(new AppProcessError({ command: description, exitCode: code, stderr }))
+ }
+ return Stream.empty
+ }),
+ )
+ return Stream.concat(lines, tail) as Stream.Stream
+ }),
+ )
+ const mapped = built.pipe(
+ Stream.catch((cause): Stream.Stream => Stream.fail(wrapError(description, cause))),
+ )
+ if (!options?.signal) return mapped
+ const signal = options.signal
+ return mapped.pipe(
+ Stream.interruptWhen(waitForAbort(signal).pipe(Effect.mapError((cause) => wrapError(description, cause)))),
+ )
+ }
+
+ return Service.of({ ...spawner, run, runStream })
+ }),
+)
+
+export const defaultLayer = layer.pipe(Layer.provide(CrossSpawnSpawner.defaultLayer))
+
+export * as AppProcess from "./process"
diff --git a/packages/core/src/provider.ts b/packages/core/src/provider.ts
new file mode 100644
index 0000000000..7c1c966654
--- /dev/null
+++ b/packages/core/src/provider.ts
@@ -0,0 +1,120 @@
+export * as ProviderV2 from "./provider"
+
+import { withStatics } from "./schema"
+import { Schema } from "effect"
+
+export const ID = Schema.String.pipe(
+ Schema.brand("ProviderV2.ID"),
+ withStatics((schema) => ({
+ // Well-known providers
+ 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"),
+ })),
+)
+export type ID = typeof ID.Type
+
+const OpenAIResponses = Schema.Struct({
+ type: Schema.Literal("openai/responses"),
+ url: Schema.String,
+ websocket: Schema.optional(Schema.Boolean),
+})
+
+const OpenAICompletions = Schema.Struct({
+ type: Schema.Literal("openai/completions"),
+ url: Schema.String,
+ reasoning: Schema.Union([
+ Schema.Struct({
+ type: Schema.Literal("reasoning_content"),
+ }),
+ Schema.Struct({
+ type: Schema.Literal("reasoning_details"),
+ }),
+ ]).pipe(Schema.optional),
+})
+export type OpenAICompletions = typeof OpenAICompletions.Type
+
+const AISDK = Schema.Struct({
+ type: Schema.Literal("aisdk"),
+ package: Schema.String,
+ url: Schema.String.pipe(Schema.optional),
+})
+
+const AnthropicMessages = Schema.Struct({
+ type: Schema.Literal("anthropic/messages"),
+ url: Schema.String,
+})
+
+const UnknownEndpoint = Schema.Struct({
+ type: Schema.Literal("unknown"),
+})
+
+export const Endpoint = Schema.Union([
+ UnknownEndpoint,
+ OpenAIResponses,
+ OpenAICompletions,
+ AnthropicMessages,
+ AISDK,
+]).pipe(Schema.toTaggedUnion("type"))
+export type Endpoint = typeof Endpoint.Type
+
+export const Options = Schema.Struct({
+ headers: Schema.Record(Schema.String, Schema.String),
+ body: Schema.Record(Schema.String, Schema.Any),
+ aisdk: Schema.Struct({
+ provider: Schema.Record(Schema.String, Schema.Any),
+ request: Schema.Record(Schema.String, Schema.Any),
+ }),
+})
+export type Options = typeof Options.Type
+
+export class Info extends Schema.Class("ProviderV2.Info")({
+ id: ID,
+ name: Schema.String,
+ enabled: Schema.Union([
+ Schema.Literal(false),
+ Schema.Struct({
+ via: Schema.Literal("env"),
+ name: Schema.String,
+ }),
+ Schema.Struct({
+ via: Schema.Literal("auth"),
+ service: Schema.String,
+ }),
+ Schema.Struct({
+ via: Schema.Literal("custom"),
+ data: Schema.Record(Schema.String, Schema.Any),
+ }),
+ ]),
+ env: Schema.String.pipe(Schema.Array),
+ endpoint: Endpoint,
+ options: Options,
+}) {
+ static empty(providerID: ID) {
+ return new Info({
+ id: providerID,
+ name: providerID,
+ enabled: false,
+ env: [],
+ endpoint: {
+ type: "unknown",
+ },
+ options: {
+ headers: {},
+ body: {},
+ aisdk: {
+ provider: {},
+ request: {},
+ },
+ },
+ })
+ }
+}
diff --git a/packages/core/src/schema.ts b/packages/core/src/schema.ts
index 2a6c02349f..5b4042c736 100644
--- a/packages/core/src/schema.ts
+++ b/packages/core/src/schema.ts
@@ -1,5 +1,4 @@
import { Option, Schema, SchemaGetter } from "effect"
-import { zod, ZodOverride } from "./effect-zod"
/**
* Integer greater than zero.
@@ -21,7 +20,6 @@ export const optionalOmitUndefined = (schema: S) =>
decode: SchemaGetter.passthrough({ strict: false }),
encode: SchemaGetter.transformOptional(Option.filter((value) => value !== undefined)),
}),
- Schema.annotate({ [ZodOverride]: zod(schema).optional() }),
)
/**
diff --git a/packages/opencode/src/v2/session-event.ts b/packages/core/src/session-event.ts
similarity index 72%
rename from packages/opencode/src/v2/session-event.ts
rename to packages/core/src/session-event.ts
index fa211bd8c4..a98d9cc051 100644
--- a/packages/opencode/src/v2/session-event.ts
+++ b/packages/core/src/session-event.ts
@@ -1,12 +1,13 @@
-import { SessionID } from "@/session/schema"
-import { NonNegativeInt } from "@opencode-ai/core/schema"
-import { EventV2 } from "./event"
-import { FileAttachment, Prompt } from "./session-prompt"
import { Schema } from "effect"
-export { FileAttachment }
+import { EventV2 } from "./event"
+import { ModelV2 } from "./model"
+import { NonNegativeInt } from "./schema"
+import { Session } from "./session"
+import { FileAttachment, Prompt } from "./session-prompt"
import { ToolOutput } from "./tool-output"
-import { V2Schema } from "./schema"
-import { Modelv2 } from "./model"
+import { V2Schema } from "./v2-schema"
+
+export { FileAttachment }
export const Source = Schema.Struct({
start: NonNegativeInt,
@@ -15,104 +16,106 @@ export const Source = Schema.Struct({
}).annotate({
identifier: "session.next.event.source",
})
-export type Source = Schema.Schema.Type
+export type Source = typeof Source.Type
const Base = {
timestamp: V2Schema.DateTimeUtcFromMillis,
- sessionID: SessionID,
+ sessionID: Session.ID,
}
+const options = {
+ aggregate: "sessionID",
+ version: 1,
+} as const
+
export const UnknownError = Schema.Struct({
type: Schema.Literal("unknown"),
message: Schema.String,
}).annotate({
identifier: "Session.Error.Unknown",
})
-export type UnknownError = Schema.Schema.Type
+export type UnknownError = typeof UnknownError.Type
export const AgentSwitched = EventV2.define({
type: "session.next.agent.switched",
- aggregate: "sessionID",
- version: 1,
+ ...options,
schema: {
...Base,
agent: Schema.String,
},
})
-export type AgentSwitched = Schema.Schema.Type
+export type AgentSwitched = typeof AgentSwitched.Type
export const ModelSwitched = EventV2.define({
type: "session.next.model.switched",
- aggregate: "sessionID",
- version: 1,
+ ...options,
schema: {
...Base,
- model: Modelv2.Ref,
+ model: ModelV2.Ref,
},
})
-export type ModelSwitched = Schema.Schema.Type
+export type ModelSwitched = typeof ModelSwitched.Type
export const Prompted = EventV2.define({
type: "session.next.prompted",
- aggregate: "sessionID",
- version: 1,
+ ...options,
schema: {
...Base,
prompt: Prompt,
},
})
-export type Prompted = Schema.Schema.Type
+export type Prompted = typeof Prompted.Type
export const Synthetic = EventV2.define({
type: "session.next.synthetic",
- aggregate: "sessionID",
+ ...options,
schema: {
...Base,
text: Schema.String,
},
})
-export type Synthetic = Schema.Schema.Type
+export type Synthetic = typeof Synthetic.Type
export namespace Shell {
export const Started = EventV2.define({
type: "session.next.shell.started",
- aggregate: "sessionID",
+ ...options,
schema: {
...Base,
callID: Schema.String,
command: Schema.String,
},
})
- export type Started = Schema.Schema.Type
+ export type Started = typeof Started.Type
export const Ended = EventV2.define({
type: "session.next.shell.ended",
- aggregate: "sessionID",
+ ...options,
schema: {
...Base,
callID: Schema.String,
output: Schema.String,
},
})
- export type Ended = Schema.Schema.Type
+ export type Ended = typeof Ended.Type
}
export namespace Step {
export const Started = EventV2.define({
type: "session.next.step.started",
- aggregate: "sessionID",
+ ...options,
schema: {
...Base,
agent: Schema.String,
- model: Modelv2.Ref,
+ model: ModelV2.Ref,
snapshot: Schema.String.pipe(Schema.optional),
},
})
- export type Started = Schema.Schema.Type
+ export type Started = typeof Started.Type
export const Ended = EventV2.define({
type: "session.next.step.ended",
- aggregate: "sessionID",
+ ...options,
schema: {
...Base,
finish: Schema.String,
@@ -129,123 +132,123 @@ export namespace Step {
snapshot: Schema.String.pipe(Schema.optional),
},
})
- export type Ended = Schema.Schema.Type
+ export type Ended = typeof Ended.Type
export const Failed = EventV2.define({
type: "session.next.step.failed",
- aggregate: "sessionID",
+ ...options,
schema: {
...Base,
error: UnknownError,
},
})
- export type Failed = Schema.Schema.Type
+ export type Failed = typeof Failed.Type
}
export namespace Text {
export const Started = EventV2.define({
type: "session.next.text.started",
- aggregate: "sessionID",
+ ...options,
schema: {
...Base,
},
})
- export type Started = Schema.Schema.Type
+ export type Started = typeof Started.Type
export const Delta = EventV2.define({
type: "session.next.text.delta",
- aggregate: "sessionID",
+ ...options,
schema: {
...Base,
delta: Schema.String,
},
})
- export type Delta = Schema.Schema.Type
+ export type Delta = typeof Delta.Type
export const Ended = EventV2.define({
type: "session.next.text.ended",
- aggregate: "sessionID",
+ ...options,
schema: {
...Base,
text: Schema.String,
},
})
- export type Ended = Schema.Schema.Type
+ export type Ended = typeof Ended.Type
}
export namespace Reasoning {
export const Started = EventV2.define({
type: "session.next.reasoning.started",
- aggregate: "sessionID",
+ ...options,
schema: {
...Base,
reasoningID: Schema.String,
},
})
- export type Started = Schema.Schema.Type
+ export type Started = typeof Started.Type
export const Delta = EventV2.define({
type: "session.next.reasoning.delta",
- aggregate: "sessionID",
+ ...options,
schema: {
...Base,
reasoningID: Schema.String,
delta: Schema.String,
},
})
- export type Delta = Schema.Schema.Type
+ export type Delta = typeof Delta.Type
export const Ended = EventV2.define({
type: "session.next.reasoning.ended",
- aggregate: "sessionID",
+ ...options,
schema: {
...Base,
reasoningID: Schema.String,
text: Schema.String,
},
})
- export type Ended = Schema.Schema.Type
+ export type Ended = typeof Ended.Type
}
export namespace Tool {
export namespace Input {
export const Started = EventV2.define({
type: "session.next.tool.input.started",
- aggregate: "sessionID",
+ ...options,
schema: {
...Base,
callID: Schema.String,
name: Schema.String,
},
})
- export type Started = Schema.Schema.Type
+ export type Started = typeof Started.Type
export const Delta = EventV2.define({
type: "session.next.tool.input.delta",
- aggregate: "sessionID",
+ ...options,
schema: {
...Base,
callID: Schema.String,
delta: Schema.String,
},
})
- export type Delta = Schema.Schema.Type
+ export type Delta = typeof Delta.Type
export const Ended = EventV2.define({
type: "session.next.tool.input.ended",
- aggregate: "sessionID",
+ ...options,
schema: {
...Base,
callID: Schema.String,
text: Schema.String,
},
})
- export type Ended = Schema.Schema.Type
+ export type Ended = typeof Ended.Type
}
export const Called = EventV2.define({
type: "session.next.tool.called",
- aggregate: "sessionID",
+ ...options,
schema: {
...Base,
callID: Schema.String,
@@ -257,11 +260,11 @@ export namespace Tool {
}),
},
})
- export type Called = Schema.Schema.Type
+ export type Called = typeof Called.Type
export const Progress = EventV2.define({
type: "session.next.tool.progress",
- aggregate: "sessionID",
+ ...options,
schema: {
...Base,
callID: Schema.String,
@@ -269,11 +272,11 @@ export namespace Tool {
content: Schema.Array(ToolOutput.Content),
},
})
- export type Progress = Schema.Schema.Type
+ export type Progress = typeof Progress.Type
export const Success = EventV2.define({
type: "session.next.tool.success",
- aggregate: "sessionID",
+ ...options,
schema: {
...Base,
callID: Schema.String,
@@ -285,11 +288,11 @@ export namespace Tool {
}),
},
})
- export type Success = Schema.Schema.Type
+ export type Success = typeof Success.Type
export const Failed = EventV2.define({
type: "session.next.tool.failed",
- aggregate: "sessionID",
+ ...options,
schema: {
...Base,
callID: Schema.String,
@@ -300,7 +303,7 @@ export namespace Tool {
}),
},
})
- export type Failed = Schema.Schema.Type
+ export type Failed = typeof Failed.Type
}
export const RetryError = Schema.Struct({
@@ -313,49 +316,50 @@ export const RetryError = Schema.Struct({
}).annotate({
identifier: "session.next.retry_error",
})
-export type RetryError = Schema.Schema.Type
+export type RetryError = typeof RetryError.Type
export const Retried = EventV2.define({
type: "session.next.retried",
- aggregate: "sessionID",
+ ...options,
schema: {
...Base,
attempt: Schema.Finite,
error: RetryError,
},
})
-export type Retried = Schema.Schema.Type
+export type Retried = typeof Retried.Type
export namespace Compaction {
export const Started = EventV2.define({
type: "session.next.compaction.started",
- aggregate: "sessionID",
+ ...options,
schema: {
...Base,
reason: Schema.Union([Schema.Literal("auto"), Schema.Literal("manual")]),
},
})
- export type Started = Schema.Schema.Type
+ export type Started = typeof Started.Type
export const Delta = EventV2.define({
type: "session.next.compaction.delta",
- aggregate: "sessionID",
+ ...options,
schema: {
...Base,
text: Schema.String,
},
})
+ export type Delta = typeof Delta.Type
export const Ended = EventV2.define({
type: "session.next.compaction.ended",
- aggregate: "sessionID",
+ ...options,
schema: {
...Base,
text: Schema.String,
include: Schema.String.pipe(Schema.optional),
},
})
- export type Ended = Schema.Schema.Type
+ export type Ended = typeof Ended.Type
}
export const All = Schema.Union(
@@ -392,16 +396,7 @@ export const All = Schema.Union(
},
).pipe(Schema.toTaggedUnion("type"))
-// user
-// assistant
-// assistant
-// assistant
-// user
-// compaction marker
-// -> text
-// assistant
-
-export type Event = Schema.Schema.Type
+export type Event = typeof All.Type
export type Type = Event["type"]
export * as SessionEvent from "./session-event"
diff --git a/packages/opencode/src/v2/session-message-updater.ts b/packages/core/src/session-message-updater.ts
similarity index 100%
rename from packages/opencode/src/v2/session-message-updater.ts
rename to packages/core/src/session-message-updater.ts
diff --git a/packages/opencode/src/v2/session-message.ts b/packages/core/src/session-message.ts
similarity index 89%
rename from packages/opencode/src/v2/session-message.ts
rename to packages/core/src/session-message.ts
index 62fc75fc83..73b6dd7da2 100644
--- a/packages/opencode/src/v2/session-message.ts
+++ b/packages/core/src/session-message.ts
@@ -3,8 +3,8 @@ import { Prompt } from "./session-prompt"
import { SessionEvent } from "./session-event"
import { EventV2 } from "./event"
import { ToolOutput } from "./tool-output"
-import { V2Schema } from "./schema"
-import { Modelv2 } from "./model"
+import { V2Schema } from "./v2-schema"
+import { ModelV2 } from "./model"
export const ID = EventV2.ID
export type ID = Schema.Schema.Type
@@ -20,13 +20,13 @@ const Base = {
export class AgentSwitched extends Schema.Class("Session.Message.AgentSwitched")({
...Base,
type: Schema.Literal("agent-switched"),
- agent: SessionEvent.AgentSwitched.fields.data.fields.agent,
+ agent: SessionEvent.AgentSwitched.data.fields.agent,
}) {}
export class ModelSwitched extends Schema.Class("Session.Message.ModelSwitched")({
...Base,
type: Schema.Literal("model-switched"),
- model: Modelv2.Ref,
+ model: ModelV2.Ref,
}) {}
export class User extends Schema.Class("Session.Message.User")({
@@ -43,16 +43,16 @@ export class User extends Schema.Class("Session.Message.User")({
export class Synthetic extends Schema.Class("Session.Message.Synthetic")({
...Base,
- sessionID: SessionEvent.Synthetic.fields.data.fields.sessionID,
- text: SessionEvent.Synthetic.fields.data.fields.text,
+ sessionID: SessionEvent.Synthetic.data.fields.sessionID,
+ text: SessionEvent.Synthetic.data.fields.text,
type: Schema.Literal("synthetic"),
}) {}
export class Shell extends Schema.Class("Session.Message.Shell")({
...Base,
type: Schema.Literal("shell"),
- callID: SessionEvent.Shell.Started.fields.data.fields.callID,
- command: SessionEvent.Shell.Started.fields.data.fields.command,
+ callID: SessionEvent.Shell.Started.data.fields.callID,
+ command: SessionEvent.Shell.Started.data.fields.command,
output: Schema.String,
time: Schema.Struct({
created: V2Schema.DateTimeUtcFromMillis,
@@ -130,7 +130,7 @@ export class Assistant extends Schema.Class("Session.Message.Assistan
...Base,
type: Schema.Literal("assistant"),
agent: Schema.String,
- model: SessionEvent.Step.Started.fields.data.fields.model,
+ model: SessionEvent.Step.Started.data.fields.model,
content: AssistantContent.pipe(Schema.Array),
snapshot: Schema.Struct({
start: Schema.String.pipe(Schema.optional),
@@ -147,7 +147,7 @@ export class Assistant extends Schema.Class("Session.Message.Assistan
write: Schema.Finite,
}),
}).pipe(Schema.optional),
- error: SessionEvent.Step.Failed.fields.data.fields.error.pipe(Schema.optional),
+ error: SessionEvent.Step.Failed.data.fields.error.pipe(Schema.optional),
time: Schema.Struct({
created: V2Schema.DateTimeUtcFromMillis,
completed: V2Schema.DateTimeUtcFromMillis.pipe(Schema.optional),
@@ -156,7 +156,7 @@ export class Assistant extends Schema.Class("Session.Message.Assistan
export class Compaction extends Schema.Class("Session.Message.Compaction")({
type: Schema.Literal("compaction"),
- reason: SessionEvent.Compaction.Started.fields.data.fields.reason,
+ reason: SessionEvent.Compaction.Started.data.fields.reason,
summary: Schema.String,
include: Schema.String.pipe(Schema.optional),
...Base,
diff --git a/packages/opencode/src/v2/session-prompt.ts b/packages/core/src/session-prompt.ts
similarity index 100%
rename from packages/opencode/src/v2/session-prompt.ts
rename to packages/core/src/session-prompt.ts
diff --git a/packages/core/src/session.ts b/packages/core/src/session.ts
new file mode 100644
index 0000000000..756531e328
--- /dev/null
+++ b/packages/core/src/session.ts
@@ -0,0 +1,13 @@
+export * as Session from "./session"
+
+import { Schema } from "effect"
+import { withStatics } from "./schema"
+import { Identifier } from "./util/identifier"
+
+export const ID = Schema.String.check(Schema.isStartsWith("ses")).pipe(
+ Schema.brand("SessionID"),
+ withStatics((schema) => ({
+ descending: (id?: string) => schema.make(id ?? "ses_" + Identifier.descending()),
+ })),
+)
+export type ID = typeof ID.Type
diff --git a/packages/opencode/src/v2/tool-output.ts b/packages/core/src/tool-output.ts
similarity index 100%
rename from packages/opencode/src/v2/tool-output.ts
rename to packages/core/src/tool-output.ts
diff --git a/packages/core/src/util/error.ts b/packages/core/src/util/error.ts
index 9d3b7c661a..7338571f29 100644
--- a/packages/core/src/util/error.ts
+++ b/packages/core/src/util/error.ts
@@ -1,8 +1,8 @@
-import z from "zod"
+import { Schema } from "effect"
export abstract class NamedError extends Error {
- abstract schema(): z.core.$ZodType
- abstract toObject(): { name: string; data: any }
+ abstract schema(): Schema.Top
+ abstract toObject(): { name: string; data: unknown }
static hasName(error: unknown, name: string): boolean {
return (
@@ -10,30 +10,42 @@ export abstract class NamedError extends Error {
)
}
- static create(name: Name, data: Data) {
- const schema = z
- .object({
- name: z.literal(name),
- data,
- })
- .meta({
- ref: name,
- })
+ static create(
+ name: Name,
+ fields: Fields,
+ ): ReturnType>>
+ static create(
+ name: Name,
+ data: DataSchema,
+ ): ReturnType>
+ static create(name: Name, data: Schema.Top | Schema.Struct.Fields) {
+ return NamedError.createSchemaClass(name, Schema.isSchema(data) ? data : Schema.Struct(data))
+ }
+
+ private static createSchemaClass(name: Name, data: DataSchema) {
+ const schema = Schema.Struct({
+ name: Schema.Literal(name),
+ data,
+ }).annotate({ identifier: name })
+ type Data = Schema.Schema.Type
+
const result = class extends NamedError {
public static readonly Schema = schema
+ public static readonly EffectSchema = schema
+ public static readonly tag = name
- public override readonly name = name as Name
+ public override readonly name = name
constructor(
- public readonly data: z.input,
+ public readonly data: Data,
options?: ErrorOptions,
) {
super(name, options)
this.name = name
}
- static isInstance(input: any): input is InstanceType {
- return typeof input === "object" && "name" in input && input.name === name
+ static isInstance(input: unknown): input is InstanceType {
+ return NamedError.hasName(input, name)
}
schema() {
@@ -51,10 +63,7 @@ export abstract class NamedError extends Error {
return result
}
- public static readonly Unknown = NamedError.create(
- "UnknownError",
- z.object({
- message: z.string(),
- }),
- )
+ public static readonly Unknown = NamedError.create("UnknownError", {
+ message: Schema.String,
+ })
}
diff --git a/packages/core/src/util/fn.ts b/packages/core/src/util/fn.ts
deleted file mode 100644
index 9efe4622fc..0000000000
--- a/packages/core/src/util/fn.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import { z } from "zod"
-
-export function fn(schema: T, cb: (input: z.infer) => Result) {
- const result = (input: z.infer) => {
- const parsed = schema.parse(input)
- return cb(parsed)
- }
- result.force = (input: z.infer) => cb(input)
- result.schema = schema
- return result
-}
diff --git a/packages/core/src/util/log.ts b/packages/core/src/util/log.ts
index e1962aed4c..3b5249cdc3 100644
--- a/packages/core/src/util/log.ts
+++ b/packages/core/src/util/log.ts
@@ -4,11 +4,14 @@ import path from "path"
import fs from "fs/promises"
import { createWriteStream } from "fs"
import * as Global from "../global"
-import z from "zod"
+import { Schema } from "effect"
import { Glob } from "./glob"
-export const Level = z.enum(["DEBUG", "INFO", "WARN", "ERROR"]).meta({ ref: "LogLevel", description: "Log level" })
-export type Level = z.infer
+export const Level = Schema.Literals(["DEBUG", "INFO", "WARN", "ERROR"]).annotate({
+ identifier: "LogLevel",
+ description: "Log level",
+})
+export type Level = Schema.Schema.Type
const levelPriority: Record = {
DEBUG: 0,
@@ -17,6 +20,7 @@ const levelPriority: Record = {
ERROR: 3,
}
const keep = 10
+const initializedRunID = "OPENCODE_LOG_INITIALIZED_RUN_ID"
let level: Level = "INFO"
@@ -67,7 +71,10 @@ export async function init(options: Options) {
Global.Path.log,
options.dev ? "dev.log" : new Date().toISOString().split(".")[0].replace(/:/g, "") + ".log",
)
- await fs.truncate(logpath).catch(() => {})
+ const runID = process.env.OPENCODE_RUN_ID
+ const shouldTruncate = !options.dev || !runID || process.env[initializedRunID] !== runID
+ if (shouldTruncate) await fs.truncate(logpath).catch(() => {})
+ if (options.dev && runID) process.env[initializedRunID] = runID
const stream = createWriteStream(logpath, { flags: "a" })
write = async (msg: any) => {
return new Promise((resolve, reject) => {
diff --git a/packages/opencode/src/v2/schema.ts b/packages/core/src/v2-schema.ts
similarity index 88%
rename from packages/opencode/src/v2/schema.ts
rename to packages/core/src/v2-schema.ts
index 44587b838a..a34b0b1516 100644
--- a/packages/opencode/src/v2/schema.ts
+++ b/packages/core/src/v2-schema.ts
@@ -7,4 +7,4 @@ export const DateTimeUtcFromMillis = Schema.Finite.pipe(
}),
)
-export * as V2Schema from "./schema"
+export * as V2Schema from "./v2-schema"
diff --git a/packages/core/test/catalog.test.ts b/packages/core/test/catalog.test.ts
new file mode 100644
index 0000000000..594f42d1c8
--- /dev/null
+++ b/packages/core/test/catalog.test.ts
@@ -0,0 +1,233 @@
+import { describe, expect } from "bun:test"
+import { DateTime, Effect, Fiber, Layer, Option, Stream } from "effect"
+import { Catalog } from "@opencode-ai/core/catalog"
+import { EventV2 } from "@opencode-ai/core/event"
+import { Location } from "@opencode-ai/core/location"
+import { ModelV2 } from "@opencode-ai/core/model"
+import { PluginV2 } from "@opencode-ai/core/plugin"
+import { ProviderV2 } from "@opencode-ai/core/provider"
+import { testEffect } from "./lib/effect"
+
+const locationLayer = Layer.succeed(Location.Service, Location.Service.of({ directory: "test" }))
+const it = testEffect(
+ Catalog.layer.pipe(
+ Layer.provideMerge(EventV2.defaultLayer),
+ Layer.provideMerge(PluginV2.defaultLayer),
+ Layer.provideMerge(locationLayer),
+ ),
+)
+
+describe("CatalogV2", () => {
+ it.effect("normalizes provider baseURL into endpoint url", () =>
+ Effect.gen(function* () {
+ const catalog = yield* Catalog.Service
+ const providerID = ProviderV2.ID.make("test")
+
+ yield* catalog.provider.update(providerID, (provider) => {
+ provider.endpoint = {
+ type: "aisdk",
+ package: "@ai-sdk/openai-compatible",
+ url: "https://default.example.com",
+ }
+ provider.options.aisdk.provider.baseURL = "https://override.example.com"
+ })
+
+ const provider = yield* catalog.provider.get(providerID)
+
+ expect(provider.endpoint).toEqual({
+ type: "aisdk",
+ package: "@ai-sdk/openai-compatible",
+ url: "https://override.example.com",
+ })
+ expect(provider.options.aisdk.provider.baseURL).toBeUndefined()
+ }),
+ )
+
+ it.effect("normalizes model baseURL into endpoint url", () =>
+ Effect.gen(function* () {
+ const catalog = yield* Catalog.Service
+ const providerID = ProviderV2.ID.make("test")
+ const modelID = ModelV2.ID.make("model")
+
+ yield* catalog.provider.update(providerID, (provider) => {
+ provider.endpoint = {
+ type: "aisdk",
+ package: "@ai-sdk/openai-compatible",
+ url: "https://provider.example.com",
+ }
+ })
+ yield* catalog.model.update(providerID, modelID, (model) => {
+ model.endpoint = {
+ type: "aisdk",
+ package: "@ai-sdk/openai-compatible",
+ url: "https://model.example.com",
+ }
+ model.options.aisdk.provider.baseURL = "https://override.example.com"
+ })
+
+ const model = yield* catalog.model.get(providerID, modelID)
+
+ expect(model.endpoint).toEqual({
+ type: "aisdk",
+ package: "@ai-sdk/openai-compatible",
+ url: "https://override.example.com",
+ })
+ expect(model.options.aisdk.provider.baseURL).toBeUndefined()
+ }),
+ )
+
+ it.effect("publishes model updated events", () =>
+ Effect.gen(function* () {
+ const catalog = yield* Catalog.Service
+ const events = yield* EventV2.Service
+ const providerID = ProviderV2.ID.make("test")
+ const modelID = ModelV2.ID.make("model")
+ const fiber = yield* events
+ .subscribe(Catalog.Event.ModelUpdated)
+ .pipe(Stream.take(1), Stream.runCollect, Effect.forkScoped)
+
+ yield* Effect.yieldNow
+ yield* catalog.provider.update(providerID, () => {})
+ yield* catalog.model.update(providerID, modelID, (model) => {
+ model.name = "Updated Model"
+ })
+ const event = Array.from(yield* Fiber.join(fiber))[0]
+
+ expect(event?.type).toBe("catalog.model.updated")
+ expect(event?.data.model.providerID).toBe(providerID)
+ expect(event?.data.model.id).toBe(modelID)
+ expect(event?.data.model.name).toBe("Updated Model")
+ expect(event?.location).toEqual({ directory: "test" })
+ }),
+ )
+
+ it.effect("resolves unknown model endpoint from provider endpoint", () =>
+ Effect.gen(function* () {
+ const catalog = yield* Catalog.Service
+ const providerID = ProviderV2.ID.make("test")
+ const modelID = ModelV2.ID.make("model")
+
+ yield* catalog.provider.update(providerID, (provider) => {
+ provider.endpoint = {
+ type: "aisdk",
+ package: "@ai-sdk/openai-compatible",
+ url: "https://provider.example.com",
+ }
+ })
+ yield* catalog.model.update(providerID, modelID, () => {})
+
+ const model = yield* catalog.model.get(providerID, modelID)
+
+ expect(model.endpoint).toEqual({
+ type: "aisdk",
+ package: "@ai-sdk/openai-compatible",
+ url: "https://provider.example.com",
+ })
+ }),
+ )
+
+ it.effect("runs provider hooks after baseURL is normalized", () =>
+ Effect.gen(function* () {
+ const catalog = yield* Catalog.Service
+ const plugin = yield* PluginV2.Service
+ const providerID = ProviderV2.ID.make("test")
+ const seen: unknown[] = []
+
+ yield* plugin.add({
+ id: PluginV2.ID.make("test"),
+ effect: Effect.succeed({
+ "provider.update": (evt) =>
+ Effect.sync(() => {
+ seen.push(evt.provider.endpoint.type)
+ if (evt.provider.endpoint.type === "aisdk") seen.push(evt.provider.endpoint.url)
+ seen.push(evt.provider.options.aisdk.provider.baseURL)
+ }),
+ }),
+ })
+ yield* catalog.provider.update(providerID, (provider) => {
+ provider.endpoint = {
+ type: "aisdk",
+ package: "@ai-sdk/openai-compatible",
+ }
+ provider.options.aisdk.provider.baseURL = "https://provider.example.com"
+ })
+
+ expect(seen).toEqual(["aisdk", "https://provider.example.com", undefined])
+ }),
+ )
+
+ it.effect("resolves provider and model option merges", () =>
+ Effect.gen(function* () {
+ const catalog = yield* Catalog.Service
+ const providerID = ProviderV2.ID.make("test")
+ const modelID = ModelV2.ID.make("model")
+
+ yield* catalog.provider.update(providerID, (provider) => {
+ provider.options.headers.provider = "provider"
+ provider.options.headers.shared = "provider"
+ provider.options.body.provider = true
+ provider.options.aisdk.provider.provider = true
+ })
+ yield* catalog.model.update(providerID, modelID, (model) => {
+ model.options.headers.model = "model"
+ model.options.headers.shared = "model"
+ model.options.body.model = true
+ model.options.aisdk.provider.model = true
+ model.options.aisdk.request.request = true
+ })
+
+ const model = yield* catalog.model.get(providerID, modelID)
+
+ expect(model.options.headers).toEqual({ provider: "provider", shared: "model", model: "model" })
+ expect(model.options.body).toEqual({ provider: true, model: true })
+ expect(model.options.aisdk.provider).toEqual({ provider: true, model: true })
+ expect(model.options.aisdk.request).toEqual({ request: true })
+ }),
+ )
+
+ it.effect("falls back to newest available model when no default is configured", () =>
+ Effect.gen(function* () {
+ const catalog = yield* Catalog.Service
+ const providerID = ProviderV2.ID.make("test")
+
+ yield* catalog.provider.update(providerID, (provider) => {
+ provider.enabled = { via: "custom", data: {} }
+ })
+ yield* catalog.model.update(providerID, ModelV2.ID.make("old"), (model) => {
+ model.time.released = DateTime.makeUnsafe(1000)
+ })
+ yield* catalog.model.update(providerID, ModelV2.ID.make("new"), (model) => {
+ model.time.released = DateTime.makeUnsafe(2000)
+ })
+
+ const model = yield* catalog.model.default()
+
+ expect(Option.getOrUndefined(model)?.id).toMatch("new")
+ }),
+ )
+
+ it.effect("small model prefers small keyword candidates before cost scoring", () =>
+ Effect.gen(function* () {
+ const catalog = yield* Catalog.Service
+ const providerID = ProviderV2.ID.make("test")
+
+ yield* catalog.provider.update(providerID, () => {})
+ yield* catalog.model.update(providerID, ModelV2.ID.make("cheap-large"), (model) => {
+ model.capabilities.input = ["text"]
+ model.capabilities.output = ["text"]
+ model.cost = [{ input: 1, output: 1, cache: { read: 0, write: 0 } }]
+ model.time.released = DateTime.makeUnsafe(Date.now())
+ })
+ yield* catalog.model.update(providerID, ModelV2.ID.make("expensive-mini"), (model) => {
+ model.capabilities.input = ["text"]
+ model.capabilities.output = ["text"]
+ model.cost = [{ input: 10, output: 10, cache: { read: 0, write: 0 } }]
+ model.time.released = DateTime.makeUnsafe(Date.now())
+ })
+
+ const model = yield* catalog.model.small(providerID)
+
+ expect(Option.getOrUndefined(model)?.id).toMatch("expensive-mini")
+ }),
+ )
+})
diff --git a/packages/core/test/event.test.ts b/packages/core/test/event.test.ts
new file mode 100644
index 0000000000..b67b2897a1
--- /dev/null
+++ b/packages/core/test/event.test.ts
@@ -0,0 +1,132 @@
+import { describe, expect } from "bun:test"
+import { Effect, Fiber, Layer, Schema, Stream } from "effect"
+import { EventV2 } from "@opencode-ai/core/event"
+import { Location } from "@opencode-ai/core/location"
+import { testEffect } from "./lib/effect"
+
+const locationLayer = Layer.succeed(
+ Location.Service,
+ Location.Service.of({ directory: "project", workspaceID: "workspace" }),
+)
+const it = testEffect(EventV2.layer.pipe(Layer.provideMerge(locationLayer)))
+const itWithoutLocation = testEffect(EventV2.layer)
+
+const Message = EventV2.define({
+ type: "test.message",
+ schema: {
+ text: Schema.String,
+ },
+})
+
+const GlobalMessage = EventV2.define({
+ type: "test.global",
+ schema: {
+ text: Schema.String,
+ },
+})
+
+const VersionedMessage = EventV2.define({
+ type: "test.versioned",
+ version: 2,
+ schema: {
+ text: Schema.String,
+ },
+})
+
+describe("EventV2", () => {
+ it.effect("publishes events with the current location", () =>
+ Effect.gen(function* () {
+ const events = yield* EventV2.Service
+ const fiber = yield* events.subscribe(Message).pipe(Stream.take(1), Stream.runCollect, Effect.forkScoped)
+ yield* Effect.yieldNow
+ const event = yield* events.publish(Message, { text: "hello" })
+ const received = Array.from(yield* Fiber.join(fiber))
+
+ expect(received).toEqual([event])
+ expect(event.type).toBe("test.message")
+ expect(event).not.toHaveProperty("version")
+ expect(event.data).toEqual({ text: "hello" })
+ expect(event.location).toEqual({ directory: "project", workspaceID: "workspace" })
+ }),
+ )
+
+ itWithoutLocation.effect("omits location when no location is available", () =>
+ Effect.gen(function* () {
+ const events = yield* EventV2.Service
+ const event = yield* events.publish(GlobalMessage, { text: "hello" })
+
+ expect(event).not.toHaveProperty("location")
+ expect(event.type).toBe("test.global")
+ }),
+ )
+
+ it.effect("publishes definition version", () =>
+ Effect.gen(function* () {
+ const events = yield* EventV2.Service
+ const event = yield* events.publish(VersionedMessage, { text: "hello" })
+
+ expect(event.type).toBe("test.versioned")
+ expect(event.version).toBe(2)
+ }),
+ )
+
+ it.effect("stores definitions in the exported registry", () =>
+ Effect.sync(() => {
+ expect(EventV2.registry.get(Message.type)).toBe(Message)
+ }),
+ )
+
+ it.effect("publishes to typed and wildcard subscriptions", () =>
+ Effect.gen(function* () {
+ const events = yield* EventV2.Service
+ const typed = yield* events.subscribe(Message).pipe(Stream.take(1), Stream.runCollect, Effect.forkScoped)
+ const wildcard = yield* events.all().pipe(Stream.take(1), Stream.runCollect, Effect.forkScoped)
+ yield* Effect.yieldNow
+ const event = yield* events.publish(Message, { text: "hello" })
+
+ expect(Array.from(yield* Fiber.join(typed))).toEqual([event])
+ expect(Array.from(yield* Fiber.join(wildcard))).toEqual([event])
+ }),
+ )
+
+ it.effect("runs sync handlers inline", () =>
+ Effect.gen(function* () {
+ const events = yield* EventV2.Service
+ const received = new Array()
+ const unsubscribe = yield* events.sync((event) =>
+ Effect.sync(() => {
+ received.push(event)
+ }),
+ )
+
+ const event = yield* events.publish(Message, { text: "hello" })
+ yield* unsubscribe
+ yield* events.publish(Message, { text: "after unsubscribe" })
+
+ expect(received).toEqual([event])
+ }),
+ )
+
+ it.effect("runs sync handlers before publishing to streams", () =>
+ Effect.gen(function* () {
+ const events = yield* EventV2.Service
+ const received = new Array()
+ const fiber = yield* events.all().pipe(
+ Stream.take(1),
+ Stream.runForEach(() => Effect.sync(() => received.push("stream"))),
+ Effect.forkScoped,
+ )
+ yield* events.sync((event) =>
+ Effect.sync(() => {
+ received.push(event.type)
+ }),
+ )
+
+ yield* Effect.yieldNow
+ yield* events.publish(Message, { text: "hello" })
+ yield* Fiber.join(fiber)
+
+ expect(received).toEqual([Message.type, "stream"])
+ }),
+ )
+})
diff --git a/packages/opencode/test/provider/copilot/convert-to-copilot-messages.test.ts b/packages/core/test/github-copilot/convert-to-copilot-messages.test.ts
similarity index 99%
rename from packages/opencode/test/provider/copilot/convert-to-copilot-messages.test.ts
rename to packages/core/test/github-copilot/convert-to-copilot-messages.test.ts
index 6f874db6d2..65f4b6a536 100644
--- a/packages/opencode/test/provider/copilot/convert-to-copilot-messages.test.ts
+++ b/packages/core/test/github-copilot/convert-to-copilot-messages.test.ts
@@ -1,4 +1,4 @@
-import { convertToOpenAICompatibleChatMessages as convertToCopilotMessages } from "@/provider/sdk/copilot/chat/convert-to-openai-compatible-chat-messages"
+import { convertToOpenAICompatibleChatMessages as convertToCopilotMessages } from "@opencode-ai/core/github-copilot/chat/convert-to-openai-compatible-chat-messages"
import { describe, test, expect } from "bun:test"
describe("system messages", () => {
diff --git a/packages/opencode/test/provider/copilot/copilot-chat-model.test.ts b/packages/core/test/github-copilot/copilot-chat-model.test.ts
similarity index 99%
rename from packages/opencode/test/provider/copilot/copilot-chat-model.test.ts
rename to packages/core/test/github-copilot/copilot-chat-model.test.ts
index 389a72bb37..bc1e2ecd95 100644
--- a/packages/opencode/test/provider/copilot/copilot-chat-model.test.ts
+++ b/packages/core/test/github-copilot/copilot-chat-model.test.ts
@@ -1,4 +1,4 @@
-import { OpenAICompatibleChatLanguageModel } from "@/provider/sdk/copilot/chat/openai-compatible-chat-language-model"
+import { OpenAICompatibleChatLanguageModel } from "@opencode-ai/core/github-copilot/chat/openai-compatible-chat-language-model"
import { describe, test, expect, mock } from "bun:test"
import type { LanguageModelV3Prompt } from "@ai-sdk/provider"
diff --git a/packages/opencode/test/provider/models.test.ts b/packages/core/test/models.test.ts
similarity index 93%
rename from packages/opencode/test/provider/models.test.ts
rename to packages/core/test/models.test.ts
index 7ccf126a9c..0ade327a53 100644
--- a/packages/opencode/test/provider/models.test.ts
+++ b/packages/core/test/models.test.ts
@@ -4,8 +4,8 @@ import { HttpClient, HttpClientResponse } from "effect/unstable/http"
import { AppFileSystem } from "@opencode-ai/core/filesystem"
import { Flag } from "@opencode-ai/core/flag/flag"
import { Global } from "@opencode-ai/core/global"
-import { ModelsDev } from "../../src/provider/models"
-import { it } from "../lib/effect"
+import { ModelsDev } from "@opencode-ai/core/models"
+import { it } from "./lib/effect"
import { rm, writeFile, utimes, mkdir } from "fs/promises"
import path from "path"
@@ -70,13 +70,16 @@ const fixture2: Record = {
interface MockState {
body: string
status: number
- calls: Array<{ url: string }>
+ calls: Array<{ url: string; userAgent: string | null }>
}
const makeMockClient = (state: Ref.Ref) =>
HttpClient.make((request) =>
Effect.gen(function* () {
- yield* Ref.update(state, (s) => ({ ...s, calls: [...s.calls, { url: request.url }] }))
+ yield* Ref.update(state, (s) => ({
+ ...s,
+ calls: [...s.calls, { url: request.url, userAgent: request.headers["user-agent"] ?? null }],
+ }))
const s = yield* Ref.get(state)
return HttpClientResponse.fromWeb(request, new Response(s.body, { status: s.status }))
}),
@@ -133,14 +136,14 @@ describe("ModelsDev Service", () => {
}),
)
- it.live("get() returns {} when disk empty and fetch disabled", () =>
+ it.live("get() returns bundled snapshot when disk empty and fetch disabled", () =>
Effect.gen(function* () {
const state = yield* Ref.make(initialState)
const result = yield* provided(
state,
ModelsDev.Service.use((s) => s.get()),
)
- expect(result).toEqual({})
+ expect(Object.keys(result).length).toBeGreaterThan(0)
const final = yield* Ref.get(state)
expect(final.calls).toEqual([])
}),
@@ -202,6 +205,7 @@ describe("ModelsDev Service", () => {
const final = yield* Ref.get(state)
expect(final.calls.length).toBe(1)
expect(final.calls[0].url).toContain("/api.json")
+ expect(final.calls[0].userAgent).toContain("/cli")
}),
)
@@ -251,7 +255,7 @@ describe("ModelsDev Service", () => {
}),
)
expect(result).toEqual(fixture)
- // withTransientReadRetry retries 5xx, so calls may be > 1.
+ // retryTransient retries 5xx, so calls may be > 1.
const final = yield* Ref.get(state)
expect(final.calls.length).toBeGreaterThanOrEqual(1)
}),
diff --git a/packages/core/test/plugin/fixtures/provider-factory.ts b/packages/core/test/plugin/fixtures/provider-factory.ts
new file mode 100644
index 0000000000..7278c231dd
--- /dev/null
+++ b/packages/core/test/plugin/fixtures/provider-factory.ts
@@ -0,0 +1,9 @@
+export function createFixtureProvider(options: Record) {
+ const captured = Object.fromEntries(Object.entries(options))
+ return Object.assign((modelID: string) => ({ modelID, options: captured }), {
+ options: captured,
+ languageModel(modelID: string) {
+ return { modelID, options: captured }
+ },
+ })
+}
diff --git a/packages/core/test/plugin/provider-alibaba.test.ts b/packages/core/test/plugin/provider-alibaba.test.ts
new file mode 100644
index 0000000000..06e6f969fd
--- /dev/null
+++ b/packages/core/test/plugin/provider-alibaba.test.ts
@@ -0,0 +1,67 @@
+import { describe, expect } from "bun:test"
+import { createAlibaba } from "@ai-sdk/alibaba"
+import { Effect } from "effect"
+import { ModelV2 } from "@opencode-ai/core/model"
+import { PluginV2 } from "@opencode-ai/core/plugin"
+import { AlibabaPlugin } from "@opencode-ai/core/plugin/provider/alibaba"
+import { it, model } from "./provider-helper"
+
+describe("AlibabaPlugin", () => {
+ it.effect("creates an Alibaba SDK for @ai-sdk/alibaba", () =>
+ Effect.gen(function* () {
+ const plugin = yield* PluginV2.Service
+ yield* plugin.add(AlibabaPlugin)
+ const result = yield* plugin.trigger(
+ "aisdk.sdk",
+ { model: model("alibaba", "qwen"), package: "@ai-sdk/alibaba", options: { name: "alibaba" } },
+ {},
+ )
+ expect(result.sdk).toBeDefined()
+ }),
+ )
+
+ it.effect("ignores non-Alibaba SDK packages", () =>
+ Effect.gen(function* () {
+ const plugin = yield* PluginV2.Service
+ yield* plugin.add(AlibabaPlugin)
+ const result = yield* plugin.trigger(
+ "aisdk.sdk",
+ { model: model("alibaba", "qwen"), package: "@ai-sdk/openai-compatible", options: { name: "alibaba" } },
+ {},
+ )
+ expect(result.sdk).toBeUndefined()
+ }),
+ )
+
+ it.effect("matches the old bundled Alibaba SDK provider naming", () =>
+ Effect.gen(function* () {
+ const plugin = yield* PluginV2.Service
+ yield* plugin.add(AlibabaPlugin)
+ const result = yield* plugin.trigger(
+ "aisdk.sdk",
+ {
+ model: model("custom-alibaba", "qwen"),
+ package: "@ai-sdk/alibaba",
+ options: { name: "custom-alibaba", apiKey: "test" },
+ },
+ {},
+ )
+ const expected = createAlibaba({ apiKey: "test", ...{ name: "custom-alibaba" } }).languageModel("qwen")
+ const actual = result.sdk?.languageModel("qwen")
+ expect(actual?.provider).toBe(expected.provider)
+ expect(actual?.modelId).toBe(expected.modelId)
+ }),
+ )
+
+ it.effect("uses the old default languageModel(apiID) behavior", () =>
+ Effect.gen(function* () {
+ const plugin = yield* PluginV2.Service
+ yield* plugin.add(AlibabaPlugin)
+ const item = model("alibaba", "alias", { apiID: ModelV2.ID.make("qwen-plus") })
+ const result = yield* plugin.trigger("aisdk.sdk", { model: item, package: "@ai-sdk/alibaba", options: {} }, {})
+ const language = result.sdk?.languageModel(item.apiID)
+ expect(language?.modelId).toBe("qwen-plus")
+ expect(language?.provider).toBe("alibaba.chat")
+ }),
+ )
+})
diff --git a/packages/core/test/plugin/provider-amazon-bedrock.test.ts b/packages/core/test/plugin/provider-amazon-bedrock.test.ts
new file mode 100644
index 0000000000..c70ada08d9
--- /dev/null
+++ b/packages/core/test/plugin/provider-amazon-bedrock.test.ts
@@ -0,0 +1,465 @@
+import { describe, expect } from "bun:test"
+import { Effect } from "effect"
+import { PluginV2 } from "@opencode-ai/core/plugin"
+import { AmazonBedrockPlugin } from "@opencode-ai/core/plugin/provider/amazon-bedrock"
+import { fakeSelectorSdk, it, model, provider, withEnv } from "./provider-helper"
+
+function bedrockBaseURL(sdk: unknown, modelID = "anthropic.claude-sonnet-4-5") {
+ const language = (sdk as { languageModel: (id: string) => unknown }).languageModel(modelID)
+ return (language as { config: { baseUrl: () => string } }).config.baseUrl()
+}
+
+function bedrockFetch(sdk: unknown, modelID = "anthropic.claude-sonnet-4-5") {
+ const language = (sdk as { languageModel: (id: string) => unknown }).languageModel(modelID)
+ return (
+ language as { config: { fetch: (input: Parameters[0], init?: RequestInit) => Promise } }
+ ).config.fetch
+}
+
+describe("AmazonBedrockPlugin", () => {
+ it.effect("moves endpoint option to endpoint URL", () =>
+ Effect.gen(function* () {
+ const plugin = yield* PluginV2.Service
+ yield* plugin.add(AmazonBedrockPlugin)
+ const result = yield* plugin.trigger(
+ "provider.update",
+ {},
+ {
+ provider: provider("amazon-bedrock", {
+ options: {
+ headers: {},
+ body: {},
+ aisdk: { provider: { endpoint: "https://bedrock.example" }, request: {} },
+ },
+ }),
+ cancel: false,
+ },
+ )
+ expect(result.provider.endpoint).toEqual({
+ type: "aisdk",
+ package: "test-provider",
+ url: "https://bedrock.example",
+ })
+ expect(result.provider.options.aisdk.provider.endpoint).toBeUndefined()
+ }),
+ )
+
+ it.effect("prefers endpoint over baseURL for SDK base URL", () =>
+ withEnv({ AWS_BEARER_TOKEN_BEDROCK: undefined, AWS_PROFILE: undefined, AWS_ACCESS_KEY_ID: undefined }, () =>
+ Effect.gen(function* () {
+ const plugin = yield* PluginV2.Service
+ yield* plugin.add(AmazonBedrockPlugin)
+ const result = yield* plugin.trigger(
+ "aisdk.sdk",
+ {
+ model: model("amazon-bedrock", "anthropic.claude-sonnet-4-5"),
+ package: "@ai-sdk/amazon-bedrock",
+ options: {
+ name: "amazon-bedrock",
+ bearerToken: "token",
+ baseURL: "https://base.example",
+ endpoint: "https://endpoint.example",
+ region: "us-east-1",
+ },
+ },
+ {},
+ )
+ expect(bedrockBaseURL(result.sdk)).toBe("https://endpoint.example")
+ }),
+ ),
+ )
+
+ it.effect("uses baseURL as SDK base URL", () =>
+ withEnv({ AWS_BEARER_TOKEN_BEDROCK: undefined, AWS_PROFILE: undefined, AWS_ACCESS_KEY_ID: undefined }, () =>
+ Effect.gen(function* () {
+ const plugin = yield* PluginV2.Service
+ yield* plugin.add(AmazonBedrockPlugin)
+ const result = yield* plugin.trigger(
+ "aisdk.sdk",
+ {
+ model: model("amazon-bedrock", "anthropic.claude-sonnet-4-5"),
+ package: "@ai-sdk/amazon-bedrock",
+ options: {
+ name: "amazon-bedrock",
+ bearerToken: "token",
+ baseURL: "https://base.example",
+ region: "us-east-1",
+ },
+ },
+ {},
+ )
+ expect(bedrockBaseURL(result.sdk)).toBe("https://base.example")
+ }),
+ ),
+ )
+
+ it.effect("creates SDK without explicit credential env so the default AWS chain can resolve credentials", () =>
+ withEnv(
+ {
+ AWS_ACCESS_KEY_ID: undefined,
+ AWS_BEARER_TOKEN_BEDROCK: undefined,
+ AWS_CONTAINER_CREDENTIALS_FULL_URI: undefined,
+ AWS_CONTAINER_CREDENTIALS_RELATIVE_URI: undefined,
+ AWS_PROFILE: undefined,
+ AWS_REGION: undefined,
+ AWS_WEB_IDENTITY_TOKEN_FILE: undefined,
+ },
+ () =>
+ Effect.gen(function* () {
+ const plugin = yield* PluginV2.Service
+ yield* plugin.add(AmazonBedrockPlugin)
+ const result = yield* plugin.trigger(
+ "aisdk.sdk",
+ {
+ model: model("amazon-bedrock", "anthropic.claude-sonnet-4-5"),
+ package: "@ai-sdk/amazon-bedrock",
+ options: { name: "amazon-bedrock" },
+ },
+ {},
+ )
+ expect(result.sdk).toBeDefined()
+ expect(bedrockBaseURL(result.sdk)).toBe("https://bedrock-runtime.us-east-1.amazonaws.com")
+ }),
+ ),
+ )
+
+ it.effect("uses config region over AWS_REGION for SDK base URL", () =>
+ withEnv({ AWS_BEARER_TOKEN_BEDROCK: "token", AWS_REGION: "us-east-1" }, () =>
+ Effect.gen(function* () {
+ const plugin = yield* PluginV2.Service
+ yield* plugin.add(AmazonBedrockPlugin)
+ const result = yield* plugin.trigger(
+ "aisdk.sdk",
+ {
+ model: model("amazon-bedrock", "anthropic.claude-sonnet-4-5"),
+ package: "@ai-sdk/amazon-bedrock",
+ options: { name: "amazon-bedrock", region: "eu-west-1" },
+ },
+ {},
+ )
+ expect(bedrockBaseURL(result.sdk)).toBe("https://bedrock-runtime.eu-west-1.amazonaws.com")
+ }),
+ ),
+ )
+
+ it.effect("uses AWS_REGION for SDK base URL when config region is absent", () =>
+ withEnv({ AWS_BEARER_TOKEN_BEDROCK: "token", AWS_REGION: "eu-west-1" }, () =>
+ Effect.gen(function* () {
+ const plugin = yield* PluginV2.Service
+ yield* plugin.add(AmazonBedrockPlugin)
+ const result = yield* plugin.trigger(
+ "aisdk.sdk",
+ {
+ model: model("amazon-bedrock", "anthropic.claude-sonnet-4-5"),
+ package: "@ai-sdk/amazon-bedrock",
+ options: { name: "amazon-bedrock" },
+ },
+ {},
+ )
+ expect(bedrockBaseURL(result.sdk)).toBe("https://bedrock-runtime.eu-west-1.amazonaws.com")
+ }),
+ ),
+ )
+
+ it.effect("defaults SDK region to us-east-1", () =>
+ withEnv({ AWS_BEARER_TOKEN_BEDROCK: "token", AWS_REGION: undefined }, () =>
+ Effect.gen(function* () {
+ const plugin = yield* PluginV2.Service
+ yield* plugin.add(AmazonBedrockPlugin)
+ const result = yield* plugin.trigger(
+ "aisdk.sdk",
+ {
+ model: model("amazon-bedrock", "anthropic.claude-sonnet-4-5"),
+ package: "@ai-sdk/amazon-bedrock",
+ options: { name: "amazon-bedrock" },
+ },
+ {},
+ )
+ expect(bedrockBaseURL(result.sdk)).toBe("https://bedrock-runtime.us-east-1.amazonaws.com")
+ }),
+ ),
+ )
+
+ it.effect("loads bearer token option into env and uses bearer auth", () =>
+ withEnv({ AWS_ACCESS_KEY_ID: undefined, AWS_BEARER_TOKEN_BEDROCK: undefined, AWS_PROFILE: undefined }, () =>
+ Effect.gen(function* () {
+ const plugin = yield* PluginV2.Service
+ const headers: Array