From cacff74d6d03d7bc9883d21ee54856f926a7898f Mon Sep 17 00:00:00 2001 From: src-opn Date: Tue, 12 May 2026 18:36:44 -0700 Subject: [PATCH 01/16] feat(inference): add OpenWork inference proxy --- apps/app/src/app/lib/den.ts | 6 +- ee/apps/den-api/.env.example | 4 + ee/apps/den-api/src/env.ts | 6 + ee/apps/den-api/src/inference.ts | 571 ++ .../den-api/src/organization-member-hooks.ts | 46 + ee/apps/den-api/src/orgs.ts | 4 + ee/apps/den-api/src/routes/org/index.ts | 2 + ee/apps/den-api/src/routes/org/inference.ts | 95 + .../den-api/src/routes/org/llm-providers.ts | 54 +- ee/apps/den-web/app/(den)/_lib/den-org.ts | 4 + .../_components/inference-screen.tsx | 1 + .../app/(den)/dashboard/inference/page.tsx | 5 + .../_components/inference-screen.tsx | 156 + .../_components/llm-provider-data.tsx | 21 +- .../llm-provider-detail-screen.tsx | 2 +- .../llm-provider-editor-screen.tsx | 12 +- .../_components/llm-providers-screen.tsx | 6 +- .../_components/org-dashboard-shell.tsx | 11 + .../o/[orgSlug]/dashboard/inference/page.tsx | 5 + .../den-web/app/api/_lib/upstream-proxy.ts | 3 +- ee/apps/inference/.env.example | 13 + ee/apps/inference/package.json | 26 + ee/apps/inference/src/app.ts | 37 + ee/apps/inference/src/db.ts | 8 + ee/apps/inference/src/env.ts | 81 + ee/apps/inference/src/index.ts | 2 + ee/apps/inference/src/keys.ts | 34 + ee/apps/inference/src/limits.ts | 74 + ee/apps/inference/src/load-env.ts | 1 + ee/apps/inference/src/model-catalog.ts | 26 + ee/apps/inference/src/proxy.ts | 246 + ee/apps/inference/src/server.ts | 7 + ee/apps/inference/src/webhooks.ts | 219 + ee/apps/inference/tsconfig.json | 14 + .../den-db/drizzle/0015_inference_proxy.sql | 99 + .../den-db/drizzle/meta/0009_snapshot.json | 2557 +++++++ .../den-db/drizzle/meta/0010_snapshot.json | 4607 ++++++++++++ .../den-db/drizzle/meta/0011_snapshot.json | 4965 +++++++++++++ .../den-db/drizzle/meta/0012_snapshot.json | 4972 +++++++++++++ .../den-db/drizzle/meta/0013_snapshot.json | 4980 +++++++++++++ .../den-db/drizzle/meta/0014_snapshot.json | 5618 +++++++++++++++ .../den-db/drizzle/meta/0015_snapshot.json | 6266 +++++++++++++++++ ee/packages/den-db/drizzle/meta/_journal.json | 7 + ee/packages/den-db/package.json | 5 + ee/packages/den-db/src/schema/index.ts | 1 + ee/packages/den-db/src/schema/inference.ts | 243 + .../src/schema/sharables/llm-providers.ts | 2 +- ee/packages/den-db/tsup.config.ts | 1 + ee/packages/utils/src/typeid.ts | 8 + package.json | 2 + packages/types/package.json | 5 + packages/types/src/den/inference.ts | 51 + packages/types/src/index.ts | 1 + packages/types/tsup.config.ts | 1 + pnpm-lock.yaml | 37 + scripts/dev-local.mjs | 8 +- 56 files changed, 36198 insertions(+), 40 deletions(-) create mode 100644 ee/apps/den-api/src/inference.ts create mode 100644 ee/apps/den-api/src/organization-member-hooks.ts create mode 100644 ee/apps/den-api/src/routes/org/inference.ts create mode 100644 ee/apps/den-web/app/(den)/dashboard/_components/inference-screen.tsx create mode 100644 ee/apps/den-web/app/(den)/dashboard/inference/page.tsx create mode 100644 ee/apps/den-web/app/(den)/o/[orgSlug]/dashboard/_components/inference-screen.tsx create mode 100644 ee/apps/den-web/app/(den)/o/[orgSlug]/dashboard/inference/page.tsx create mode 100644 ee/apps/inference/.env.example create mode 100644 ee/apps/inference/package.json create mode 100644 ee/apps/inference/src/app.ts create mode 100644 ee/apps/inference/src/db.ts create mode 100644 ee/apps/inference/src/env.ts create mode 100644 ee/apps/inference/src/index.ts create mode 100644 ee/apps/inference/src/keys.ts create mode 100644 ee/apps/inference/src/limits.ts create mode 100644 ee/apps/inference/src/load-env.ts create mode 100644 ee/apps/inference/src/model-catalog.ts create mode 100644 ee/apps/inference/src/proxy.ts create mode 100644 ee/apps/inference/src/server.ts create mode 100644 ee/apps/inference/src/webhooks.ts create mode 100644 ee/apps/inference/tsconfig.json create mode 100644 ee/packages/den-db/drizzle/0015_inference_proxy.sql create mode 100644 ee/packages/den-db/drizzle/meta/0009_snapshot.json create mode 100644 ee/packages/den-db/drizzle/meta/0010_snapshot.json create mode 100644 ee/packages/den-db/drizzle/meta/0011_snapshot.json create mode 100644 ee/packages/den-db/drizzle/meta/0012_snapshot.json create mode 100644 ee/packages/den-db/drizzle/meta/0013_snapshot.json create mode 100644 ee/packages/den-db/drizzle/meta/0014_snapshot.json create mode 100644 ee/packages/den-db/drizzle/meta/0015_snapshot.json create mode 100644 ee/packages/den-db/src/schema/inference.ts create mode 100644 packages/types/src/den/inference.ts diff --git a/apps/app/src/app/lib/den.ts b/apps/app/src/app/lib/den.ts index 4e21907ac..bc501f5ec 100644 --- a/apps/app/src/app/lib/den.ts +++ b/apps/app/src/app/lib/den.ts @@ -108,7 +108,7 @@ export type DenOrgLlmProviderModel = { export type DenOrgLlmProvider = { id: string; - source: "models_dev" | "custom"; + source: "models_dev" | "custom" | "openwork"; providerId: string; name: string; providerConfig: Record; @@ -868,7 +868,9 @@ function parseDenOrgLlmProvider(value: unknown): DenOrgLlmProvider | null { typeof value.id !== "string" || typeof value.providerId !== "string" || typeof value.name !== "string" || - (value.source !== "models_dev" && value.source !== "custom") + (value.source !== "models_dev" && + value.source !== "custom" && + value.source !== "openwork") ) { return null; } diff --git a/ee/apps/den-api/.env.example b/ee/apps/den-api/.env.example index c59895cc2..418d02c6c 100644 --- a/ee/apps/den-api/.env.example +++ b/ee/apps/den-api/.env.example @@ -36,3 +36,7 @@ POLAR_RETURN_URL= DAYTONA_API_KEY= DAYTONA_API_URL=https://app.daytona.io/api OPENWORK_DEV_MODE=1 + + +OPENROUTER_MANAGEMENT_API_KEY= +OPENROUTER_WORKSPACE_ID= diff --git a/ee/apps/den-api/src/env.ts b/ee/apps/den-api/src/env.ts index b12dda425..1839226a4 100644 --- a/ee/apps/den-api/src/env.ts +++ b/ee/apps/den-api/src/env.ts @@ -91,6 +91,9 @@ const EnvSchema = z.object({ DAYTONA_CREATE_TIMEOUT_SECONDS: z.string().optional(), DAYTONA_DELETE_TIMEOUT_SECONDS: z.string().optional(), DAYTONA_HEALTHCHECK_TIMEOUT_MS: z.string().optional(), + INFERENCE_PROXY_BASE_URL: z.string().optional(), + OPENROUTER_MANAGEMENT_API_KEY: z.string().optional(), + OPENROUTER_WORKSPACE_ID: z.string().optional(), }).superRefine((value, ctx) => { const inferredMode = value.DB_MODE ?? (value.DATABASE_URL ? "mysql" : "planetscale") @@ -212,6 +215,9 @@ export const env = { workerActivityBaseUrl: optionalString(parsed.WORKER_ACTIVITY_BASE_URL) ?? parsed.BETTER_AUTH_URL.trim().replace(/\/+$/, ""), + inferenceProxyBaseUrl: optionalString(parsed.INFERENCE_PROXY_BASE_URL) ?? "http://127.0.0.1:8791", + openRouterManagementApiKey: optionalString(parsed.OPENROUTER_MANAGEMENT_API_KEY), + openRouterWorkspaceId: optionalString(parsed.OPENROUTER_WORKSPACE_ID), render: { apiBase: parsed.RENDER_API_BASE ?? "https://api.render.com/v1", apiKey: parsed.RENDER_API_KEY, diff --git a/ee/apps/den-api/src/inference.ts b/ee/apps/den-api/src/inference.ts new file mode 100644 index 000000000..dfe280b33 --- /dev/null +++ b/ee/apps/den-api/src/inference.ts @@ -0,0 +1,571 @@ +import { createHash, randomBytes } from "node:crypto" +import { and, eq, inArray, sql } from "@openwork-ee/den-db/drizzle" +import { + InferenceKeyTable, + InferenceOrgLimitPolicyTable, + InferenceOrgUpstreamProviderKeyTable, + InferenceOrgUsageBucketTable, + LlmProviderAccessTable, + LlmProviderModelTable, + LlmProviderTable, + MemberTable, + OrganizationTable, +} from "@openwork-ee/den-db/schema" +import { createDenTypeId, type DenTypeId } from "@openwork-ee/utils/typeid" +import { + INFERENCE_MODEL_ALIASES, + INFERENCE_RESET_STRATEGY_BY_WINDOW_TYPE, + INFERENCE_TIER_LIMITS, + INFERENCE_WINDOW_DURATIONS_MS, +} from "@openwork/types/den/inference" +import type { InferenceOrganizationMetadata, InferenceTier, InferenceWindowType } from "@openwork/types/den/inference" +import { db } from "./db.js" +import { env } from "./env.js" + +type OrgId = typeof OrganizationTable.$inferSelect.id +type MemberId = typeof MemberTable.$inferSelect.id + +const OPENWORK_PROVIDER_ID = "openwork" +const OPENROUTER_PROVIDER = "openrouter" +const OPENROUTER_KEYS_URL = "https://openrouter.ai/api/v1/keys" + +function isRecord(value: unknown): value is Record { + return typeof value === "object" && value !== null && !Array.isArray(value) +} + +function sha256(value: string) { + return createHash("sha256").update(value).digest("hex") +} + +function createUserFacingInferenceKey() { + return `ow_inf_${randomBytes(32).toString("base64url")}` +} + +function keyPrefix(key: string) { + return key.slice(0, 16) +} + +export function readInferenceMetadata(metadata: Record | null): InferenceOrganizationMetadata | null { + if (!isRecord(metadata?.inference)) { + return null + } + + const inference = metadata.inference + if (inference.enabled !== true || inference.tier !== "tier1" && inference.tier !== "tier2") { + return null + } + + return { enabled: true, tier: inference.tier } +} + +function setInferenceMetadata(metadata: Record | null, inference: InferenceOrganizationMetadata | null) { + const next = { ...(metadata ?? {}) } + if (inference) { + next.inference = inference + } else { + delete next.inference + } + return next +} + +async function activeMemberCount(organizationId: OrgId) { + const [row] = await db + .select({ count: sql`count(*)` }) + .from(MemberTable) + .where(eq(MemberTable.organizationId, organizationId)) + return Math.max(0, Number(row?.count ?? 0)) +} + +async function listOrgMembers(organizationId: OrgId) { + return db.select({ id: MemberTable.id }).from(MemberTable).where(eq(MemberTable.organizationId, organizationId)) +} + +function addWindow(start: Date, windowType: InferenceWindowType) { + return new Date(start.getTime() + INFERENCE_WINDOW_DURATIONS_MS[windowType]) +} + +function currentWindow(input: { anchorAt: Date | null; currentEnd: Date | null; windowType: InferenceWindowType; now: Date }) { + let start = input.currentEnd ?? input.anchorAt ?? input.now + let end = addWindow(start, input.windowType) + while (end <= input.now) { + start = end + end = addWindow(start, input.windowType) + } + return { start, end } +} + +function buildOpenWorkProviderConfig() { + return { + id: OPENWORK_PROVIDER_ID, + name: "OpenWork", + npm: "@openrouter/ai-sdk-provider", + env: ["OPENWORK_API_KEY"], + doc: "OpenWork-managed inference proxy for organization models.", + api: `${env.inferenceProxyBaseUrl.replace(/\/+$/, "")}/api/v1`, + options: { + baseURL: `${env.inferenceProxyBaseUrl.replace(/\/+$/, "")}/api/v1`, + }, + } +} + +function buildOpenWorkModelRows(llmProviderId: DenTypeId<"llmProvider">, now: Date) { + return Object.entries(INFERENCE_MODEL_ALIASES).map(([alias, model]) => ({ + id: createDenTypeId("llmProviderModel"), + llmProviderId, + modelId: `${OPENWORK_PROVIDER_ID}/${alias}`, + name: model.displayName, + modelConfig: { + id: `${OPENWORK_PROVIDER_ID}/${alias}`, + name: model.displayName, + }, + createdAt: now, + })) +} + +async function revokeMemberInferenceKeys(memberId: MemberId) { + await db + .update(InferenceKeyTable) + .set({ status: "revoked", revoked_at: new Date() }) + .where(and(eq(InferenceKeyTable.org_membership_id, memberId), eq(InferenceKeyTable.status, "active"))) +} + +async function deleteOpenWorkProviders(where: { organizationId: OrgId; memberId?: MemberId }) { + const providerWhere = where.memberId + ? and( + eq(LlmProviderTable.organizationId, where.organizationId), + eq(LlmProviderTable.createdByOrgMembershipId, where.memberId), + eq(LlmProviderTable.source, "openwork"), + eq(LlmProviderTable.providerId, OPENWORK_PROVIDER_ID), + ) + : and( + eq(LlmProviderTable.organizationId, where.organizationId), + eq(LlmProviderTable.source, "openwork"), + eq(LlmProviderTable.providerId, OPENWORK_PROVIDER_ID), + ) + + const providers = await db.select({ id: LlmProviderTable.id }).from(LlmProviderTable).where(providerWhere) + if (providers.length === 0) { + return + } + + const providerIds = providers.map((provider) => provider.id) + await db.transaction(async (tx) => { + await tx.delete(LlmProviderAccessTable).where(inArray(LlmProviderAccessTable.llmProviderId, providerIds)) + await tx.delete(LlmProviderModelTable).where(inArray(LlmProviderModelTable.llmProviderId, providerIds)) + await tx.delete(LlmProviderTable).where(inArray(LlmProviderTable.id, providerIds)) + }) +} + +async function createMemberInferenceKey(input: { organizationId: OrgId; memberId: MemberId }) { + const key = createUserFacingInferenceKey() + await db.insert(InferenceKeyTable).values({ + id: createDenTypeId("inferenceKey"), + organization_id: input.organizationId, + org_membership_id: input.memberId, + name: "OpenWork Models", + key_hash: sha256(key), + key_prefix: keyPrefix(key), + status: "active", + }) + return key +} + +async function ensureOpenWorkLlmProviderForMember(input: { organizationId: OrgId; memberId: MemberId; inferenceKey: string }) { + const now = new Date() + const providerRows = await db + .select({ id: LlmProviderTable.id }) + .from(LlmProviderTable) + .where(and( + eq(LlmProviderTable.organizationId, input.organizationId), + eq(LlmProviderTable.createdByOrgMembershipId, input.memberId), + eq(LlmProviderTable.source, "openwork"), + eq(LlmProviderTable.providerId, OPENWORK_PROVIDER_ID), + )) + .limit(1) + + const providerConfig = buildOpenWorkProviderConfig() + const providerId = providerRows[0]?.id ?? createDenTypeId("llmProvider") + + await db.transaction(async (tx) => { + if (providerRows[0]) { + await tx + .update(LlmProviderTable) + .set({ name: "OpenWork Models", providerConfig, apiKey: input.inferenceKey, updatedAt: now }) + .where(eq(LlmProviderTable.id, providerId)) + await tx.delete(LlmProviderModelTable).where(eq(LlmProviderModelTable.llmProviderId, providerId)) + await tx.delete(LlmProviderAccessTable).where(eq(LlmProviderAccessTable.llmProviderId, providerId)) + } else { + await tx.insert(LlmProviderTable).values({ + id: providerId, + organizationId: input.organizationId, + createdByOrgMembershipId: input.memberId, + source: "openwork", + providerId: OPENWORK_PROVIDER_ID, + name: "OpenWork Models", + providerConfig, + apiKey: input.inferenceKey, + createdAt: now, + updatedAt: now, + }) + } + + await tx.insert(LlmProviderModelTable).values(buildOpenWorkModelRows(providerId, now)) + await tx.insert(LlmProviderAccessTable).values({ + id: createDenTypeId("llmProviderAccess"), + llmProviderId: providerId, + orgMembershipId: input.memberId, + teamId: null, + createdAt: now, + }) + }) +} + +async function ensureMemberInferenceAccess(input: { organizationId: OrgId; memberId: MemberId }) { + const key = await createMemberInferenceKey(input) + await ensureOpenWorkLlmProviderForMember({ ...input, inferenceKey: key }) +} + +export async function syncInferenceForOrganizationMembers(input: { organizationId: OrgId }) { + const [organization] = await db + .select({ metadata: OrganizationTable.metadata }) + .from(OrganizationTable) + .where(eq(OrganizationTable.id, input.organizationId)) + .limit(1) + + const inference = readInferenceMetadata(organization?.metadata ?? null) + if (!inference) { + return + } + + const members = await listOrgMembers(input.organizationId) + await syncInferenceLimitPolicies({ organizationId: input.organizationId, tier: inference.tier, memberCount: members.length }) + + for (const member of members) { + const [provider] = await db + .select({ id: LlmProviderTable.id }) + .from(LlmProviderTable) + .where(and( + eq(LlmProviderTable.organizationId, input.organizationId), + eq(LlmProviderTable.createdByOrgMembershipId, member.id), + eq(LlmProviderTable.source, "openwork"), + eq(LlmProviderTable.providerId, OPENWORK_PROVIDER_ID), + )) + .limit(1) + const [key] = await db + .select({ id: InferenceKeyTable.id }) + .from(InferenceKeyTable) + .where(and( + eq(InferenceKeyTable.organization_id, input.organizationId), + eq(InferenceKeyTable.org_membership_id, member.id), + eq(InferenceKeyTable.status, "active"), + )) + .limit(1) + + if (!provider || !key) { + await revokeMemberInferenceKeys(member.id) + await ensureMemberInferenceAccess({ organizationId: input.organizationId, memberId: member.id }) + } + } +} + +export async function syncInferenceAfterMemberChange(input: { + organizationId: OrgId + memberId: MemberId + memberCount: number + change: "added" | "removed" +}) { + if (input.change === "removed") { + await revokeMemberInferenceKeys(input.memberId) + await deleteOpenWorkProviders({ organizationId: input.organizationId, memberId: input.memberId }) + } + + const [organization] = await db + .select({ metadata: OrganizationTable.metadata }) + .from(OrganizationTable) + .where(eq(OrganizationTable.id, input.organizationId)) + .limit(1) + const inference = readInferenceMetadata(organization?.metadata ?? null) + if (!inference) { + return + } + + await syncInferenceLimitPolicies({ organizationId: input.organizationId, tier: inference.tier, memberCount: input.memberCount }) + + if (input.change === "added") { + await ensureMemberInferenceAccess({ organizationId: input.organizationId, memberId: input.memberId }) + } +} + +async function syncInferenceLimitPolicies(input: { organizationId: OrgId; tier: InferenceTier; memberCount: number }) { + const now = new Date() + for (const [windowType, baseLimit] of Object.entries(INFERENCE_TIER_LIMITS[input.tier])) { + const limit = baseLimit * input.memberCount + await db + .insert(InferenceOrgLimitPolicyTable) + .values({ + id: createDenTypeId("inferenceOrgLimitPolicy"), + organization_id: input.organizationId, + window_type: windowType as keyof typeof INFERENCE_TIER_LIMITS[InferenceTier], + limit_amount: limit, + reset_strategy: INFERENCE_RESET_STRATEGY_BY_WINDOW_TYPE[windowType as keyof typeof INFERENCE_TIER_LIMITS[InferenceTier]], + anchor_at: now, + }) + .onDuplicateKeyUpdate({ + set: { + limit_amount: limit, + reset_strategy: INFERENCE_RESET_STRATEGY_BY_WINDOW_TYPE[windowType as keyof typeof INFERENCE_TIER_LIMITS[InferenceTier]], + }, + }) + } + + const policies = await db + .select({ + id: InferenceOrgLimitPolicyTable.id, + windowType: InferenceOrgLimitPolicyTable.window_type, + resetStrategy: InferenceOrgLimitPolicyTable.reset_strategy, + anchorAt: InferenceOrgLimitPolicyTable.anchor_at, + currentBucketId: InferenceOrgLimitPolicyTable.current_bucket_id, + limitAmount: InferenceOrgLimitPolicyTable.limit_amount, + }) + .from(InferenceOrgLimitPolicyTable) + .where(eq(InferenceOrgLimitPolicyTable.organization_id, input.organizationId)) + + for (const policy of policies) { + const currentBucket = policy.currentBucketId + ? (await db.select().from(InferenceOrgUsageBucketTable).where(eq(InferenceOrgUsageBucketTable.id, policy.currentBucketId)).limit(1))[0] + : null + + if (currentBucket && currentBucket.window_start_at <= now && currentBucket.window_end_at > now) { + await db + .update(InferenceOrgUsageBucketTable) + .set({ limit_amount: policy.limitAmount }) + .where(eq(InferenceOrgUsageBucketTable.id, currentBucket.id)) + continue + } + + const window = policy.resetStrategy === "anchored" + ? currentWindow({ + anchorAt: policy.anchorAt, + currentEnd: currentBucket?.window_end_at ?? null, + windowType: policy.windowType, + now, + }) + : { start: now, end: addWindow(now, policy.windowType) } + const bucketId = createDenTypeId("inferenceOrgUsageBucket") + await db.insert(InferenceOrgUsageBucketTable).values({ + id: bucketId, + organization_id: input.organizationId, + policy_id: policy.id, + window_start_at: window.start, + window_end_at: window.end, + limit_amount: policy.limitAmount, + used_amount: 0, + }) + await db + .update(InferenceOrgLimitPolicyTable) + .set({ current_bucket_id: bucketId }) + .where(eq(InferenceOrgLimitPolicyTable.id, policy.id)) + } +} + +type OpenRouterKeyCreateResponse = { + key: string + data: { + hash: string + workspace_id?: string | null + } +} + +function isOpenRouterKeyCreateResponse(value: unknown): value is OpenRouterKeyCreateResponse { + if (!isRecord(value) || typeof value.key !== "string" || !isRecord(value.data)) { + return false + } + return typeof value.data.hash === "string" +} + +async function createOpenRouterOrgApiKey(input: { organizationId: OrgId }) { + if (!env.openRouterManagementApiKey) { + throw new Error("openrouter_management_api_key_missing") + } + + const body: Record = { + name: `OpenWork org ${input.organizationId}`, + include_byok_in_limit: false, + } + if (env.openRouterWorkspaceId) { + body.workspace_id = env.openRouterWorkspaceId + } + + const response = await fetch(OPENROUTER_KEYS_URL, { + method: "POST", + headers: { + authorization: `Bearer ${env.openRouterManagementApiKey}`, + "content-type": "application/json", + accept: "application/json", + }, + body: JSON.stringify(body), + }) + const payload = await response.json().catch(() => null) + if (!response.ok) { + const message = isRecord(payload?.error) && typeof payload.error.message === "string" + ? payload.error.message + : `OpenRouter key creation failed with status ${response.status}.` + throw new Error(message) + } + if (!isOpenRouterKeyCreateResponse(payload)) { + throw new Error("OpenRouter key creation response was incomplete.") + } + + return { + key: payload.key, + externalKeyHash: payload.data.hash, + externalWorkspaceId: typeof payload.data.workspace_id === "string" ? payload.data.workspace_id : null, + } +} + +async function deleteOpenRouterOrgApiKey(externalKeyHash: string) { + if (!env.openRouterManagementApiKey) { + throw new Error("openrouter_management_api_key_missing") + } + + const response = await fetch(`${OPENROUTER_KEYS_URL}/${encodeURIComponent(externalKeyHash)}`, { + method: "DELETE", + headers: { + authorization: `Bearer ${env.openRouterManagementApiKey}`, + accept: "application/json", + }, + }) + + if (response.ok || response.status === 404) { + return + } + + const payload = await response.json().catch(() => null) + const message = isRecord(payload?.error) && typeof payload.error.message === "string" + ? payload.error.message + : `OpenRouter key deletion failed with status ${response.status}.` + throw new Error(message) +} + +async function revokeOrgUpstreamProviderKeys(organizationId: OrgId) { + const rows = await db + .select({ + id: InferenceOrgUpstreamProviderKeyTable.id, + externalKeyHash: InferenceOrgUpstreamProviderKeyTable.external_key_hash, + }) + .from(InferenceOrgUpstreamProviderKeyTable) + .where(and( + eq(InferenceOrgUpstreamProviderKeyTable.organization_id, organizationId), + eq(InferenceOrgUpstreamProviderKeyTable.provider, OPENROUTER_PROVIDER), + eq(InferenceOrgUpstreamProviderKeyTable.status, "active"), + )) + + for (const row of rows) { + if (row.externalKeyHash) { + await deleteOpenRouterOrgApiKey(row.externalKeyHash) + } + } + + if (rows.length > 0) { + await db + .update(InferenceOrgUpstreamProviderKeyTable) + .set({ status: "revoked", revoked_at: new Date() }) + .where(inArray(InferenceOrgUpstreamProviderKeyTable.id, rows.map((row) => row.id))) + } +} + +async function ensureOrgUpstreamProviderKey(organizationId: OrgId) { + const [existing] = await db + .select({ id: InferenceOrgUpstreamProviderKeyTable.id }) + .from(InferenceOrgUpstreamProviderKeyTable) + .where(and( + eq(InferenceOrgUpstreamProviderKeyTable.organization_id, organizationId), + eq(InferenceOrgUpstreamProviderKeyTable.provider, OPENROUTER_PROVIDER), + eq(InferenceOrgUpstreamProviderKeyTable.status, "active"), + )) + .limit(1) + + if (existing) { + return + } + + const openRouterKey = await createOpenRouterOrgApiKey({ organizationId }) + + await db + .insert(InferenceOrgUpstreamProviderKeyTable) + .values({ + id: createDenTypeId("inferenceOrgProviderKey"), + organization_id: organizationId, + provider: OPENROUTER_PROVIDER, + external_key_hash: openRouterKey.externalKeyHash, + external_workspace_id: openRouterKey.externalWorkspaceId, + encrypted_api_key: openRouterKey.key, + key_prefix: keyPrefix(openRouterKey.key), + status: "active", + revoked_at: null, + }) + .onDuplicateKeyUpdate({ + set: { + external_key_hash: openRouterKey.externalKeyHash, + external_workspace_id: openRouterKey.externalWorkspaceId, + encrypted_api_key: openRouterKey.key, + key_prefix: keyPrefix(openRouterKey.key), + status: "active", + revoked_at: null, + }, + }) +} + +export async function getInferenceStatus(organizationId: OrgId) { + const [organization] = await db + .select({ metadata: OrganizationTable.metadata }) + .from(OrganizationTable) + .where(eq(OrganizationTable.id, organizationId)) + .limit(1) + const memberCount = await activeMemberCount(organizationId) + const inference = readInferenceMetadata(organization?.metadata ?? null) + return { + enabled: inference?.enabled === true, + tier: inference?.tier ?? "tier1", + memberCount, + proxyBaseUrl: env.inferenceProxyBaseUrl, + upstreamProviderConfigured: Boolean(env.openRouterManagementApiKey), + } +} + +export async function setInferenceEnabled(input: { organizationId: OrgId; enabled: boolean; tier?: InferenceTier }) { + const [organization] = await db + .select({ metadata: OrganizationTable.metadata }) + .from(OrganizationTable) + .where(eq(OrganizationTable.id, input.organizationId)) + .limit(1) + if (!organization) { + return null + } + + if (!input.enabled) { + const members = await listOrgMembers(input.organizationId) + await revokeOrgUpstreamProviderKeys(input.organizationId) + await db + .update(OrganizationTable) + .set({ metadata: setInferenceMetadata(organization.metadata, null) }) + .where(eq(OrganizationTable.id, input.organizationId)) + if (members.length > 0) { + await db + .update(InferenceKeyTable) + .set({ status: "revoked", revoked_at: new Date() }) + .where(and(eq(InferenceKeyTable.organization_id, input.organizationId), inArray(InferenceKeyTable.org_membership_id, members.map((member) => member.id)))) + } + await deleteOpenWorkProviders({ organizationId: input.organizationId }) + return getInferenceStatus(input.organizationId) + } + + const tier = input.tier ?? readInferenceMetadata(organization.metadata)?.tier ?? "tier1" + await ensureOrgUpstreamProviderKey(input.organizationId) + await db + .update(OrganizationTable) + .set({ metadata: setInferenceMetadata(organization.metadata, { enabled: true, tier }) }) + .where(eq(OrganizationTable.id, input.organizationId)) + await syncInferenceForOrganizationMembers({ organizationId: input.organizationId }) + return getInferenceStatus(input.organizationId) +} diff --git a/ee/apps/den-api/src/organization-member-hooks.ts b/ee/apps/den-api/src/organization-member-hooks.ts new file mode 100644 index 000000000..0de20073f --- /dev/null +++ b/ee/apps/den-api/src/organization-member-hooks.ts @@ -0,0 +1,46 @@ +import { eq, sql } from "@openwork-ee/den-db/drizzle" +import { MemberTable, OrganizationTable } from "@openwork-ee/den-db/schema" +import { db } from "./db.js" +import { syncInferenceAfterMemberChange } from "./inference.js" + +type OrgId = typeof OrganizationTable.$inferSelect.id +type MemberId = typeof MemberTable.$inferSelect.id + +export type OrganizationMemberChange = "added" | "removed" + +type OrganizationMemberChangeHookInput = { + organizationId: OrgId + memberId: MemberId + memberCount: number + change: OrganizationMemberChange +} + +type OrganizationMemberChangeHook = (input: OrganizationMemberChangeHookInput) => Promise + +const organizationMemberChangeHooks: OrganizationMemberChangeHook[] = [ + syncInferenceAfterMemberChange, +] + +async function countOrganizationMembers(organizationId: OrgId) { + const [row] = await db + .select({ count: sql`count(*)` }) + .from(MemberTable) + .where(eq(MemberTable.organizationId, organizationId)) + return Math.max(0, Number(row?.count ?? 0)) +} + +export async function runPostOrganizationMemberChangeHooks(input: { + organizationId: OrgId + memberId: MemberId + change: OrganizationMemberChange +}) { + const memberCount = await countOrganizationMembers(input.organizationId) + for (const hook of organizationMemberChangeHooks) { + await hook({ ...input, memberCount }) + } + + // Future billing hook: + // await stripe.subscriptions.update(subscriptionId, { + // items: [{ id: seatItemId, quantity: memberCount }], + // }) +} diff --git a/ee/apps/den-api/src/orgs.ts b/ee/apps/den-api/src/orgs.ts index 179622021..99cd5410c 100644 --- a/ee/apps/den-api/src/orgs.ts +++ b/ee/apps/den-api/src/orgs.ts @@ -12,6 +12,7 @@ import { import { normalizeDesktopAppRestrictions, type DesktopAppRestrictions } from "@openwork/types/den/desktop-app-restrictions" import { createDenTypeId, normalizeDenTypeId } from "@openwork-ee/utils/typeid" import { db } from "./db.js" +import { runPostOrganizationMemberChangeHooks } from "./organization-member-hooks.js" import { DEFAULT_ORGANIZATION_LIMITS, normalizeOrganizationMetadata, serializeOrganizationMetadata } from "./organization-limits.js" import { denDefaultDynamicOrganizationRoles, denOrganizationStaticRoles } from "./organization-access.js" @@ -458,6 +459,7 @@ export async function acceptInvitationForUser(input: { } const member = await acceptInvitation(invitation, input.userId) + await runPostOrganizationMemberChangeHooks({ organizationId: invitation.organizationId, memberId: member.id, change: "added" }) return { invitation, member, @@ -955,5 +957,7 @@ export async function removeOrganizationMember(input: { await tx.delete(MemberTable).where(eq(MemberTable.id, member.id)) }) + await runPostOrganizationMemberChangeHooks({ organizationId: input.organizationId, memberId: member.id, change: "removed" }) + return member } diff --git a/ee/apps/den-api/src/routes/org/index.ts b/ee/apps/den-api/src/routes/org/index.ts index 40bd0d3d6..93d5595fb 100644 --- a/ee/apps/den-api/src/routes/org/index.ts +++ b/ee/apps/den-api/src/routes/org/index.ts @@ -4,6 +4,7 @@ import { LEGACY_ORG_PROXY_HEADER } from "../../middleware/user-organizations.js" import type { OrgRouteVariables } from "./shared.js" import { registerOrgCoreRoutes } from "./core.js" import { registerOrgInvitationRoutes } from "./invitations.js" +import { registerOrgInferenceRoutes } from "./inference.js" import { registerOrgLlmProviderRoutes } from "./llm-providers.js" import { registerOrgMemberRoutes } from "./members.js" import { registerPluginArchRoutes } from "./plugin-system/routes.js" @@ -40,6 +41,7 @@ function extractLegacyOrgProxyTarget(pathname: string) { export function registerOrgRoutes(app: Hono) { registerOrgCoreRoutes(app) registerOrgApiKeyRoutes(app) + registerOrgInferenceRoutes(app) registerOrgInvitationRoutes(app) registerOrgLlmProviderRoutes(app) registerOrgMemberRoutes(app) diff --git a/ee/apps/den-api/src/routes/org/inference.ts b/ee/apps/den-api/src/routes/org/inference.ts new file mode 100644 index 000000000..0ce100798 --- /dev/null +++ b/ee/apps/den-api/src/routes/org/inference.ts @@ -0,0 +1,95 @@ +import type { Hono } from "hono" +import { describeRoute } from "hono-openapi" +import { z } from "zod" +import { getInferenceStatus, setInferenceEnabled } from "../../inference.js" +import { jsonValidator, requireUserMiddleware, resolveOrganizationContextMiddleware } from "../../middleware/index.js" +import { forbiddenSchema, invalidRequestSchema, jsonResponse, unauthorizedSchema } from "../../openapi.js" +import type { OrgRouteVariables } from "./shared.js" +import { ensureOwner } from "./shared.js" + +const inferenceSettingsSchema = z.object({ + enabled: z.boolean(), + tier: z.enum(["tier1", "tier2"]).optional(), +}) + +const inferenceStatusSchema = z.object({ + enabled: z.boolean(), + tier: z.enum(["tier1", "tier2"]), + memberCount: z.number(), + proxyBaseUrl: z.string(), + upstreamProviderConfigured: z.boolean(), +}).meta({ ref: "InferenceStatus" }) + +const inferenceStatusResponseSchema = z.object({ + inference: inferenceStatusSchema, +}).meta({ ref: "InferenceStatusResponse" }) + +const inferenceProviderMissingSchema = z.object({ + error: z.literal("openrouter_management_api_key_missing"), + message: z.string(), +}).meta({ ref: "InferenceProviderMissingError" }) + +export function registerOrgInferenceRoutes(app: Hono) { + app.get( + "/v1/inference", + describeRoute({ + tags: ["Inference"], + summary: "Get inference settings", + description: "Returns OpenWork Models enablement and limit context for the active organization.", + responses: { + 200: jsonResponse("Inference settings returned successfully.", inferenceStatusResponseSchema), + 401: jsonResponse("The caller must be signed in to read inference settings.", unauthorizedSchema), + }, + }), + requireUserMiddleware, + resolveOrganizationContextMiddleware, + async (c) => { + const payload = c.get("organizationContext") + return c.json({ inference: await getInferenceStatus(payload.organization.id) }) + }, + ) + + app.patch( + "/v1/inference", + describeRoute({ + tags: ["Inference"], + summary: "Update inference settings", + description: "Enables or disables OpenWork Models for the active organization.", + responses: { + 200: jsonResponse("Inference settings updated successfully.", inferenceStatusResponseSchema), + 400: jsonResponse("The inference settings request was invalid.", z.union([invalidRequestSchema, inferenceProviderMissingSchema])), + 401: jsonResponse("The caller must be signed in to update inference settings.", unauthorizedSchema), + 403: jsonResponse("Only workspace owners can update inference settings.", forbiddenSchema), + }, + }), + requireUserMiddleware, + resolveOrganizationContextMiddleware, + jsonValidator(inferenceSettingsSchema), + async (c) => { + const permission = ensureOwner(c) + if (!permission.ok) { + return c.json(permission.response, 403) + } + + const payload = c.get("organizationContext") + const input = c.req.valid("json") + + try { + const inference = await setInferenceEnabled({ + organizationId: payload.organization.id, + enabled: input.enabled, + tier: input.tier, + }) + return c.json({ inference }) + } catch (error) { + if (error instanceof Error && error.message === "openrouter_management_api_key_missing") { + return c.json({ + error: "openrouter_management_api_key_missing", + message: "Set OPENROUTER_MANAGEMENT_API_KEY on Den API before enabling OpenWork Models.", + }, 400) + } + throw error + } + }, + ) +} diff --git a/ee/apps/den-api/src/routes/org/llm-providers.ts b/ee/apps/den-api/src/routes/org/llm-providers.ts index 7b8f7efd9..965a865fe 100644 --- a/ee/apps/den-api/src/routes/org/llm-providers.ts +++ b/ee/apps/den-api/src/routes/org/llm-providers.ts @@ -15,6 +15,7 @@ import { db } from "../../db.js" import { jsonValidator, paramValidator, + queryValidator, requireUserMiddleware, resolveMemberTeamsMiddleware, resolveOrganizationContextMiddleware, @@ -44,6 +45,10 @@ const providerCatalogParamsSchema = z.object({ const orgLlmProviderParamsSchema = idParamSchema("llmProviderId", "llmProvider") +const llmProviderListQuerySchema = z.object({ + scope: z.enum(["usable", "manageable"]).optional().default("usable"), +}) + const customModelSchema = z.object({ id: z.string().trim().min(1).max(255), name: z.string().trim().min(1).max(255), @@ -146,12 +151,7 @@ async function canAccessLlmProvider(input: { llmProviderId: LlmProviderId currentMemberId: MemberId memberTeams: Array<{ id: TeamId }> - isAdmin: boolean }) { - if (input.isAdmin) { - return true - } - const access = await listAccessibleProviderAccess({ organizationId: input.organizationId, currentMemberId: input.currentMemberId, @@ -337,31 +337,35 @@ async function loadLlmProviders(input: { currentMemberId: MemberId memberTeams: Array<{ id: TeamId }> isAdmin: boolean + scope: "usable" | "manageable" }) { - const accessibleAccess = input.isAdmin - ? [] - : await listAccessibleProviderAccess({ - organizationId: input.organizationId, - currentMemberId: input.currentMemberId, - memberTeams: input.memberTeams, - }) + const accessibleAccess = await listAccessibleProviderAccess({ + organizationId: input.organizationId, + currentMemberId: input.currentMemberId, + memberTeams: input.memberTeams, + }) const accessibleProviderIds = [...new Set(accessibleAccess.map((entry) => entry.llmProviderId))] - if (!input.isAdmin && accessibleProviderIds.length === 0) { + if (input.scope === "usable" && accessibleProviderIds.length === 0) { return [] } + const providerWhere = input.scope === "manageable" + ? input.isAdmin + ? eq(LlmProviderTable.organizationId, input.organizationId) + : and( + eq(LlmProviderTable.organizationId, input.organizationId), + eq(LlmProviderTable.createdByOrgMembershipId, input.currentMemberId), + ) + : and( + eq(LlmProviderTable.organizationId, input.organizationId), + inArray(LlmProviderTable.id, accessibleProviderIds), + ) + const providers = await db .select() .from(LlmProviderTable) - .where( - input.isAdmin - ? eq(LlmProviderTable.organizationId, input.organizationId) - : and( - eq(LlmProviderTable.organizationId, input.organizationId), - inArray(LlmProviderTable.id, accessibleProviderIds), - ), - ) + .where(providerWhere) .orderBy(desc(LlmProviderTable.updatedAt)) if (providers.length === 0) { @@ -560,7 +564,7 @@ export function registerOrgLlmProviderRoutes { + const query = c.req.valid("query") const payload = c.get("organizationContext") const memberTeams = c.get("memberTeams") ?? [] const providers = await loadLlmProviders({ @@ -578,6 +584,7 @@ export function registerOrgLlmProviderRoutes; +} diff --git a/ee/apps/den-web/app/(den)/o/[orgSlug]/dashboard/_components/inference-screen.tsx b/ee/apps/den-web/app/(den)/o/[orgSlug]/dashboard/_components/inference-screen.tsx new file mode 100644 index 000000000..80399dc5e --- /dev/null +++ b/ee/apps/den-web/app/(den)/o/[orgSlug]/dashboard/_components/inference-screen.tsx @@ -0,0 +1,156 @@ +"use client"; + +import { useEffect, useState } from "react"; +import { Sparkles } from "lucide-react"; +import { DashboardPageTemplate } from "../../../../_components/ui/dashboard-page-template"; +import { DenButton } from "../../../../_components/ui/button"; +import { getErrorMessage, requestJson } from "../../../../_lib/den-flow"; +import { useOrgDashboard } from "../_providers/org-dashboard-provider"; + +type InferenceStatus = { + enabled: boolean; + tier: "tier1" | "tier2"; + memberCount: number; + proxyBaseUrl: string; + upstreamProviderConfigured: boolean; +}; + +function parseInferenceStatus(payload: unknown): InferenceStatus | null { + if (!payload || typeof payload !== "object" || !("inference" in payload)) { + return null; + } + const inference = (payload as { inference?: unknown }).inference; + if (!inference || typeof inference !== "object") { + return null; + } + const value = inference as Partial; + if (typeof value.enabled !== "boolean" || value.tier !== "tier1" && value.tier !== "tier2") { + return null; + } + return { + enabled: value.enabled, + tier: value.tier, + memberCount: typeof value.memberCount === "number" ? value.memberCount : 0, + proxyBaseUrl: typeof value.proxyBaseUrl === "string" ? value.proxyBaseUrl : "", + upstreamProviderConfigured: value.upstreamProviderConfigured === true, + }; +} + +export function InferenceScreen() { + const { orgContext, refreshOrgData } = useOrgDashboard(); + const [status, setStatus] = useState(null); + const [loading, setLoading] = useState(true); + const [saving, setSaving] = useState(false); + const [error, setError] = useState(null); + + async function loadStatus() { + setLoading(true); + setError(null); + try { + const { response, payload } = await requestJson("/v1/inference", { method: "GET" }, 12000); + if (!response.ok) { + throw new Error(getErrorMessage(payload, `Failed to load inference settings (${response.status}).`)); + } + const parsed = parseInferenceStatus(payload); + if (!parsed) { + throw new Error("Inference settings response was incomplete."); + } + setStatus(parsed); + } catch (loadError) { + setError(loadError instanceof Error ? loadError.message : "Failed to load inference settings."); + } finally { + setLoading(false); + } + } + + useEffect(() => { + void loadStatus(); + }, [orgContext?.organization.id]); + + async function toggleEnabled() { + if (!status) return; + setSaving(true); + setError(null); + try { + const { response, payload } = await requestJson( + "/v1/inference", + { + method: "PATCH", + body: JSON.stringify({ enabled: !status.enabled, tier: status.tier }), + }, + 20000, + ); + if (!response.ok) { + throw new Error(getErrorMessage(payload, `Failed to update inference settings (${response.status}).`)); + } + const parsed = parseInferenceStatus(payload); + if (!parsed) { + throw new Error("Inference settings response was incomplete."); + } + setStatus(parsed); + await refreshOrgData(); + } catch (saveError) { + setError(saveError instanceof Error ? saveError.message : "Failed to update inference settings."); + } finally { + setSaving(false); + } + } + + const enabled = status?.enabled === true; + + return ( + +
+ {error ? ( +
+ {error} +
+ ) : null} + +
+
+
+
+ {loading ? "Checking" : enabled ? "Enabled" : "Disabled"} +
+

+ Enable OpenWork Models +

+

+ Adds the OpenWork provider to each member with models like openwork/model1 and openwork/model2. Disabling removes org metadata and revokes active inference keys. +

+
+ + {enabled ? "Disable" : "Enable"} + +
+
+ +
+
+

Tier

+

{status?.tier ?? "tier1"}

+
+
+

Members counted

+

{status?.memberCount ?? orgContext?.members.length ?? 0}

+
+
+

Upstream key

+

{status?.upstreamProviderConfigured ? "Configured" : "Missing"}

+
+
+ +
+ Proxy base URL: {status?.proxyBaseUrl || "Not configured"} +
+
+
+ ); +} diff --git a/ee/apps/den-web/app/(den)/o/[orgSlug]/dashboard/_components/llm-provider-data.tsx b/ee/apps/den-web/app/(den)/o/[orgSlug]/dashboard/_components/llm-provider-data.tsx index 145a78f20..da9d1a8a1 100644 --- a/ee/apps/den-web/app/(den)/o/[orgSlug]/dashboard/_components/llm-provider-data.tsx +++ b/ee/apps/den-web/app/(den)/o/[orgSlug]/dashboard/_components/llm-provider-data.tsx @@ -3,7 +3,7 @@ import { useEffect, useState } from "react"; import { getErrorMessage, requestJson } from "../../../../_lib/den-flow"; -export type DenLlmProviderSource = "models_dev" | "custom"; +export type DenLlmProviderSource = "models_dev" | "custom" | "openwork"; export type DenLlmProviderModel = { id: string; @@ -174,7 +174,10 @@ function asLlmProvider(value: unknown): DenLlmProvider | null { const createdByOrgMembershipId = asString(value.createdByOrgMembershipId); const providerId = asString(value.providerId); const name = asString(value.name); - const source = value.source === "models_dev" || value.source === "custom" ? value.source : null; + const source = + value.source === "models_dev" || value.source === "custom" || value.source === "openwork" + ? value.source + : null; if (!id || !organizationId || !createdByOrgMembershipId || !providerId || !name || !source) { return null; } @@ -386,10 +389,14 @@ export async function requestLlmProviderCatalogDetail(orgId: string, providerId: return detail; } -export function useOrgLlmProviders(orgId: string | null) { +export function useOrgLlmProviders( + orgId: string | null, + options: { scope?: "usable" | "manageable" } = {}, +) { const [llmProviders, setLlmProviders] = useState([]); const [busy, setBusy] = useState(false); const [error, setError] = useState(null); + const scope = options.scope ?? "manageable"; async function loadProviders() { if (!orgId) { @@ -401,7 +408,11 @@ export function useOrgLlmProviders(orgId: string | null) { setBusy(true); setError(null); try { - const { response, payload } = await requestJson(`/v1/llm-providers`, { method: "GET" }, 15000); + const { response, payload } = await requestJson( + `/v1/llm-providers?scope=${encodeURIComponent(scope)}`, + { method: "GET" }, + 15000, + ); if (!response.ok) { throw new Error(getErrorMessage(payload, `Failed to load providers (${response.status}).`)); } @@ -419,7 +430,7 @@ export function useOrgLlmProviders(orgId: string | null) { useEffect(() => { void loadProviders(); - }, [orgId]); + }, [orgId, scope]); return { llmProviders, diff --git a/ee/apps/den-web/app/(den)/o/[orgSlug]/dashboard/_components/llm-provider-detail-screen.tsx b/ee/apps/den-web/app/(den)/o/[orgSlug]/dashboard/_components/llm-provider-detail-screen.tsx index 245e73876..0f589d4bd 100644 --- a/ee/apps/den-web/app/(den)/o/[orgSlug]/dashboard/_components/llm-provider-detail-screen.tsx +++ b/ee/apps/den-web/app/(den)/o/[orgSlug]/dashboard/_components/llm-provider-detail-screen.tsx @@ -145,7 +145,7 @@ export function LlmProviderDetailScreen({
- {provider.canManage ? ( + {provider.canManage && provider.source !== "openwork" ? ( <> ("models_dev"); + const [source, setSource] = useState("models_dev"); const [accessTab, setAccessTab] = useState<"teams" | "people">("teams"); const [accessQuery, setAccessQuery] = useState(""); const [catalogProviders, setCatalogProviders] = useState< @@ -130,7 +131,7 @@ export function LlmProviderEditorScreen({ useEffect(() => { if (provider) { - setSource(provider.source); + setSource(provider.source === "custom" ? "custom" : "models_dev"); setSelectedProviderId(provider.providerId); setProviderName(provider.name); setSelectedModelIds(provider.models.map((entry) => entry.id)); @@ -264,6 +265,11 @@ export function LlmProviderEditorScreen({ return; } + if (provider?.source === "openwork") { + setSaveError("OpenWork-managed providers are controlled from Inference settings."); + return; + } + if (!providerName.trim()) { setSaveError("Give this provider a name."); return; diff --git a/ee/apps/den-web/app/(den)/o/[orgSlug]/dashboard/_components/llm-providers-screen.tsx b/ee/apps/den-web/app/(den)/o/[orgSlug]/dashboard/_components/llm-providers-screen.tsx index f56cdb990..3a897a38b 100644 --- a/ee/apps/den-web/app/(den)/o/[orgSlug]/dashboard/_components/llm-providers-screen.tsx +++ b/ee/apps/den-web/app/(den)/o/[orgSlug]/dashboard/_components/llm-providers-screen.tsx @@ -12,17 +12,19 @@ import { } from "../../../../_lib/den-org"; import { useOrgDashboard } from "../_providers/org-dashboard-provider"; import { + type DenLlmProviderSource, formatProviderTimestamp, getProviderDocUrl, getProviderEnvNames, useOrgLlmProviders, } from "./llm-provider-data"; -function getProviderSourceLabel(source: "models_dev" | "custom") { +function getProviderSourceLabel(source: DenLlmProviderSource) { + if (source === "openwork") return "OpenWork"; return source === "custom" ? "Custom" : "Catalog"; } -function getProviderSourceIcon(source: "models_dev" | "custom") { +function getProviderSourceIcon(source: DenLlmProviderSource) { return source === "custom" ? CodeXml : Cpu; } diff --git a/ee/apps/den-web/app/(den)/o/[orgSlug]/dashboard/_components/org-dashboard-shell.tsx b/ee/apps/den-web/app/(den)/o/[orgSlug]/dashboard/_components/org-dashboard-shell.tsx index 14ffe7779..1a1a925e5 100644 --- a/ee/apps/den-web/app/(den)/o/[orgSlug]/dashboard/_components/org-dashboard-shell.tsx +++ b/ee/apps/den-web/app/(den)/o/[orgSlug]/dashboard/_components/org-dashboard-shell.tsx @@ -16,6 +16,7 @@ import { MessageSquare, Puzzle, SlidersHorizontal, + Sparkles, Store, Users, } from "lucide-react"; @@ -28,6 +29,7 @@ import { getCustomLlmProvidersRoute, getOrgAccessFlags, getIntegrationsRoute, + getInferenceRoute, getMembersRoute, getOrgDashboardRoute, getOrgSettingsRoute, @@ -112,6 +114,9 @@ function getDashboardPageTitle(pathname: string, orgSlug: string | null) { if (pathname.startsWith(getCustomLlmProvidersRoute(orgSlug))) { return "LLM Providers"; } + if (pathname.startsWith(getInferenceRoute(orgSlug))) { + return "Inference"; + } if (pathname.startsWith(getSkillHubsRoute(orgSlug))) { return "Skill Hubs"; } @@ -176,6 +181,12 @@ export function OrgDashboardShell({ children }: { children: React.ReactNode }) { label: "LLM Providers", icon: Cpu, }, + { + href: activeOrg ? getInferenceRoute(activeOrg.slug) : "#", + label: "Inference", + icon: Sparkles, + badge: "Beta", + }, // NOTE: Skill Hubs soft-disabled — uncomment to re-enable // { // href: activeOrg ? getSkillHubsRoute(activeOrg.slug) : "#", diff --git a/ee/apps/den-web/app/(den)/o/[orgSlug]/dashboard/inference/page.tsx b/ee/apps/den-web/app/(den)/o/[orgSlug]/dashboard/inference/page.tsx new file mode 100644 index 000000000..0da1ca64c --- /dev/null +++ b/ee/apps/den-web/app/(den)/o/[orgSlug]/dashboard/inference/page.tsx @@ -0,0 +1,5 @@ +import { InferenceScreen } from "../_components/inference-screen"; + +export default function InferencePage() { + return ; +} diff --git a/ee/apps/den-web/app/api/_lib/upstream-proxy.ts b/ee/apps/den-web/app/api/_lib/upstream-proxy.ts index 35db6ead8..ca214a1f2 100644 --- a/ee/apps/den-web/app/api/_lib/upstream-proxy.ts +++ b/ee/apps/den-web/app/api/_lib/upstream-proxy.ts @@ -134,7 +134,7 @@ function applyCorsHeaders(request: NextRequest, headers: Headers): void { headers.set("access-control-allow-origin", allowOrigin); headers.set("access-control-allow-credentials", "true"); headers.set("access-control-allow-methods", "GET,POST,PUT,PATCH,DELETE,OPTIONS"); - headers.set("access-control-allow-headers", "Content-Type,Authorization,X-Api-Key,X-Request-Id,X-Requested-With"); + headers.set("access-control-allow-headers", "Content-Type,Authorization,X-Api-Key,X-Request-Id,X-Requested-With,X-OpenWork-Legacy-Org-Id"); headers.append("vary", "Origin"); } @@ -189,6 +189,7 @@ function buildHeaders(request: NextRequest, contentType: string | null): Headers "user-agent", "x-requested-with", "x-api-key", + "x-openwork-legacy-org-id", "origin", "x-forwarded-for", ]; diff --git a/ee/apps/inference/.env.example b/ee/apps/inference/.env.example new file mode 100644 index 000000000..d7cc3a00d --- /dev/null +++ b/ee/apps/inference/.env.example @@ -0,0 +1,13 @@ +PORT=8791 +CORS_ORIGINS=http://localhost:3000 +DATABASE_URL=mysql://root:password@127.0.0.1:3306/openwork_den +DB_MODE=mysql +DATABASE_HOST= +DATABASE_USERNAME= +DATABASE_PASSWORD= +DEN_DB_ENCRYPTION_KEY=local-dev-db-encryption-key-please-change-1234567890 +INFERENCE_PROXY_BASE_URL=http://localhost:8791 +OPENROUTER_UPSTREAM_URL=https://openrouter.ai/api/v1 +INFERENCE_ADMIN_TOKEN=local-dev-admin-token +INFERENCE_WEBHOOK_SECRET=local-dev-webhook-secret +INFERENCE_CREDITS_PER_DOLLAR=1000000 diff --git a/ee/apps/inference/package.json b/ee/apps/inference/package.json new file mode 100644 index 000000000..d5f496a0b --- /dev/null +++ b/ee/apps/inference/package.json @@ -0,0 +1,26 @@ +{ + "name": "@openwork-ee/inference", + "private": true, + "type": "module", + "scripts": { + "dev": "tsx watch src/server.ts", + "dev:local": "sh -lc 'OPENWORK_DEV_MODE=1 PORT=${INFERENCE_PORT:-8791} tsx watch src/server.ts'", + "build": "tsc -p tsconfig.json", + "start": "node dist/server.js" + }, + "dependencies": { + "@hono/node-server": "^1.13.8", + "@openwork-ee/den-db": "workspace:*", + "@openwork-ee/utils": "workspace:*", + "@openwork/types": "workspace:*", + "dotenv": "^16.4.5", + "drizzle-orm": "^0.45.1", + "hono": "^4.7.2", + "zod": "^4.3.6" + }, + "devDependencies": { + "@types/node": "^20.11.30", + "tsx": "^4.15.7", + "typescript": "^5.5.4" + } +} diff --git a/ee/apps/inference/src/app.ts b/ee/apps/inference/src/app.ts new file mode 100644 index 000000000..dbca4ea22 --- /dev/null +++ b/ee/apps/inference/src/app.ts @@ -0,0 +1,37 @@ +import "./load-env.js" +import { cors } from "hono/cors" +import { Hono } from "hono" +import { logger } from "hono/logger" +import { z } from "zod" +import { env } from "./env.js" +import { registerProxyRoutes } from "./proxy.js" +import { registerWebhookRoutes } from "./webhooks.js" + +const app = new Hono() + +app.use("*", logger()) + +if (env.corsOrigins.length > 0) { + app.use("*", cors({ + origin: env.corsOrigins, + credentials: true, + allowHeaders: ["Content-Type", "Authorization", "X-Api-Key", "X-Webhook-Signature", "X-Test-Connection"], + allowMethods: ["GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS"], + maxAge: 600, + })) +} + +app.get("/health", (c) => c.json({ ok: true, service: "inference" })) + +registerProxyRoutes(app) +registerWebhookRoutes(app) + +app.onError((error, c) => { + if (error instanceof z.ZodError) { + return c.json({ error: "invalid_request", issues: error.issues }, 400) + } + console.error(error) + return c.json({ error: "internal_server_error" }, 500) +}) + +export default app diff --git a/ee/apps/inference/src/db.ts b/ee/apps/inference/src/db.ts new file mode 100644 index 000000000..bf48dfb13 --- /dev/null +++ b/ee/apps/inference/src/db.ts @@ -0,0 +1,8 @@ +import { createDenDb } from "@openwork-ee/den-db" +import { env } from "./env.js" + +export const { db } = createDenDb({ + databaseUrl: env.databaseUrl, + mode: env.dbMode, + planetscale: env.planetscale, +}) diff --git a/ee/apps/inference/src/env.ts b/ee/apps/inference/src/env.ts new file mode 100644 index 000000000..1b7116120 --- /dev/null +++ b/ee/apps/inference/src/env.ts @@ -0,0 +1,81 @@ +import "./load-env.js" +import type { DenDbMode, PlanetScaleCredentials } from "@openwork-ee/den-db" +import { z } from "zod" + +const EnvSchema = z.object({ + PORT: z.string().optional(), + CORS_ORIGINS: z.string().optional(), + DATABASE_URL: z.string().min(1).optional(), + DB_MODE: z.enum(["mysql", "planetscale"]).optional(), + DATABASE_HOST: z.string().min(1).optional(), + DATABASE_USERNAME: z.string().min(1).optional(), + DATABASE_PASSWORD: z.string().optional(), + DEN_DB_ENCRYPTION_KEY: z.string().trim().min(32), + INFERENCE_PROXY_BASE_URL: z.string().optional(), + OPENROUTER_UPSTREAM_URL: z.string().optional(), + INFERENCE_ADMIN_TOKEN: z.string().optional(), + INFERENCE_WEBHOOK_SECRET: z.string().optional(), + INFERENCE_CREDITS_PER_DOLLAR: z.string().optional(), +}).superRefine((value, ctx) => { + const mode = value.DB_MODE ?? (value.DATABASE_URL ? "mysql" : "planetscale") + if (mode === "mysql" && !value.DATABASE_URL) { + ctx.addIssue({ code: z.ZodIssueCode.custom, path: ["DATABASE_URL"], message: "DATABASE_URL is required in mysql mode" }) + } + if (mode === "planetscale") { + for (const key of ["DATABASE_HOST", "DATABASE_USERNAME", "DATABASE_PASSWORD"] as const) { + if (!value[key]) { + ctx.addIssue({ code: z.ZodIssueCode.custom, path: [key], message: `${key} is required in planetscale mode` }) + } + } + } +}) + +const parsed = EnvSchema.parse(process.env) + +function optionalString(value: string | undefined) { + const trimmed = value?.trim() + return trimmed ? trimmed : undefined +} + +function splitCsv(value: string | undefined) { + return (value ?? "").split(",").map((entry) => entry.trim()).filter(Boolean) +} + +function normalizeUrl(value: string) { + return value.replace(/\/+$/, "") +} + +function parsePort(value: string | undefined) { + const port = Number(value ?? "8791") + if (!Number.isInteger(port) || port <= 0 || port > 65535) { + throw new Error("PORT must be an integer between 1 and 65535") + } + return port +} + +function parseCreditsPerDollar(value: string | undefined) { + const credits = Number(value ?? "1000000") + if (!Number.isFinite(credits) || credits <= 0) { + throw new Error("INFERENCE_CREDITS_PER_DOLLAR must be a positive number") + } + return credits +} + +const planetscale: PlanetScaleCredentials | null = + parsed.DATABASE_HOST && parsed.DATABASE_USERNAME && parsed.DATABASE_PASSWORD !== undefined + ? { host: parsed.DATABASE_HOST, username: parsed.DATABASE_USERNAME, password: parsed.DATABASE_PASSWORD } + : null + +export const env = { + port: parsePort(parsed.PORT), + corsOrigins: splitCsv(parsed.CORS_ORIGINS), + databaseUrl: parsed.DATABASE_URL, + dbMode: (parsed.DB_MODE ?? (parsed.DATABASE_URL ? "mysql" : "planetscale")) as DenDbMode, + planetscale, + dbEncryptionKey: parsed.DEN_DB_ENCRYPTION_KEY, + proxyBaseUrl: optionalString(parsed.INFERENCE_PROXY_BASE_URL), + openRouterUpstreamUrl: normalizeUrl(parsed.OPENROUTER_UPSTREAM_URL ?? "https://openrouter.ai/api/v1"), + adminToken: optionalString(parsed.INFERENCE_ADMIN_TOKEN), + webhookSecret: optionalString(parsed.INFERENCE_WEBHOOK_SECRET), + creditsPerDollar: parseCreditsPerDollar(parsed.INFERENCE_CREDITS_PER_DOLLAR), +} diff --git a/ee/apps/inference/src/index.ts b/ee/apps/inference/src/index.ts new file mode 100644 index 000000000..27a9df507 --- /dev/null +++ b/ee/apps/inference/src/index.ts @@ -0,0 +1,2 @@ +export { default as app } from "./app.js" +export { env } from "./env.js" diff --git a/ee/apps/inference/src/keys.ts b/ee/apps/inference/src/keys.ts new file mode 100644 index 000000000..5b6dfe4c7 --- /dev/null +++ b/ee/apps/inference/src/keys.ts @@ -0,0 +1,34 @@ +import { createHash, timingSafeEqual } from "node:crypto" +import { and, eq } from "drizzle-orm" +import { InferenceKeyTable, InferenceOrgUpstreamProviderKeyTable } from "@openwork-ee/den-db" +import { normalizeDenTypeId } from "@openwork-ee/utils/typeid" +import { db } from "./db.js" + +export function sha256(value: string) { + return createHash("sha256").update(value).digest("hex") +} + +export function constantTimeEquals(a: string, b: string) { + const left = new Uint8Array(Buffer.from(a)) + const right = new Uint8Array(Buffer.from(b)) + return left.length === right.length && timingSafeEqual(left, right) +} + +export async function findActiveInferenceKey(rawKey: string) { + const [row] = await db.select().from(InferenceKeyTable).where(eq(InferenceKeyTable.key_hash, sha256(rawKey))).limit(1) + if (!row || row.status !== "active") { + return null + } + return row +} + +export async function getOpenRouterProviderKey(organizationId: string) { + const rows = await db.select().from(InferenceOrgUpstreamProviderKeyTable) + .where(and( + eq(InferenceOrgUpstreamProviderKeyTable.organization_id, normalizeDenTypeId("organization", organizationId)), + eq(InferenceOrgUpstreamProviderKeyTable.provider, "openrouter"), + eq(InferenceOrgUpstreamProviderKeyTable.status, "active"), + )) + .limit(1) + return rows[0] ?? null +} diff --git a/ee/apps/inference/src/limits.ts b/ee/apps/inference/src/limits.ts new file mode 100644 index 000000000..82d8a86c6 --- /dev/null +++ b/ee/apps/inference/src/limits.ts @@ -0,0 +1,74 @@ +import { eq } from "drizzle-orm" +import { InferenceOrgLimitPolicyTable, InferenceOrgUsageBucketTable } from "@openwork-ee/den-db" +import { createDenTypeId, normalizeDenTypeId, type DenTypeId } from "@openwork-ee/utils/typeid" +import { INFERENCE_WINDOW_DURATIONS_MS } from "@openwork/types/den/inference" +import type { InferenceWindowType } from "@openwork/types/den/inference" +import { db } from "./db.js" + +export type BucketMetadata = Partial>> + +function addWindow(start: Date, windowType: InferenceWindowType) { + return new Date(start.getTime() + INFERENCE_WINDOW_DURATIONS_MS[windowType]) +} + +function nextAnchoredWindow(input: { anchorAt: Date | null; currentEnd: Date | null; windowType: InferenceWindowType; now: Date }) { + let start = input.currentEnd ?? input.anchorAt ?? input.now + let end = addWindow(start, input.windowType) + while (end <= input.now) { + start = end + end = addWindow(start, input.windowType) + } + return { start, end } +} + +async function ensureBucket(policy: typeof InferenceOrgLimitPolicyTable.$inferSelect, now: Date) { + const current = policy.current_bucket_id + ? (await db.select().from(InferenceOrgUsageBucketTable).where(eq(InferenceOrgUsageBucketTable.id, policy.current_bucket_id)).limit(1))[0] + : null + if (current && current.window_start_at <= now && current.window_end_at > now) { + return current + } + + const window = policy.reset_strategy === "anchored" + ? nextAnchoredWindow({ + anchorAt: policy.anchor_at, + currentEnd: current?.window_end_at ?? null, + windowType: policy.window_type, + now, + }) + : { start: now, end: addWindow(now, policy.window_type) } + const id = createDenTypeId("inferenceOrgUsageBucket") + + await db.insert(InferenceOrgUsageBucketTable).values({ + id, + organization_id: policy.organization_id, + policy_id: policy.id, + window_start_at: window.start, + window_end_at: window.end, + limit_amount: policy.limit_amount, + used_amount: 0, + }) + await db.update(InferenceOrgLimitPolicyTable).set({ current_bucket_id: id }).where(eq(InferenceOrgLimitPolicyTable.id, policy.id)) + + return (await db.select().from(InferenceOrgUsageBucketTable).where(eq(InferenceOrgUsageBucketTable.id, id)).limit(1))[0] +} + +export async function ensureUsableBuckets(organizationId: string, now = new Date()) { + const orgId = normalizeDenTypeId("organization", organizationId) + const policies = await db.select().from(InferenceOrgLimitPolicyTable).where(eq(InferenceOrgLimitPolicyTable.organization_id, orgId)) + const bucketIds: BucketMetadata = {} + + for (const policy of policies) { + const bucket = await ensureBucket(policy, now) + if (!bucket) { + continue + } + const remaining = bucket.limit_amount - bucket.used_amount + if (remaining <= 0) { + return { ok: false as const, bucketIds, limitedBy: bucket.id, windowType: policy.window_type } + } + bucketIds[policy.window_type] = bucket.id + } + + return { ok: true as const, bucketIds } +} diff --git a/ee/apps/inference/src/load-env.ts b/ee/apps/inference/src/load-env.ts new file mode 100644 index 000000000..50207f346 --- /dev/null +++ b/ee/apps/inference/src/load-env.ts @@ -0,0 +1 @@ +import "dotenv/config" diff --git a/ee/apps/inference/src/model-catalog.ts b/ee/apps/inference/src/model-catalog.ts new file mode 100644 index 000000000..5f4b465ce --- /dev/null +++ b/ee/apps/inference/src/model-catalog.ts @@ -0,0 +1,26 @@ +import { INFERENCE_MODEL_ALIASES } from "@openwork/types/den/inference" + +const OPENWORK_PROVIDER_ID = "openwork" + +export type ModelCatalogEntry = { + alias: string + upstreamModel: string + displayName: string +} + +const models: ModelCatalogEntry[] = Object.entries(INFERENCE_MODEL_ALIASES).map(([alias, model]) => ({ + alias, + upstreamModel: model.upstreamModel, + displayName: model.displayName, +})) + +export function resolveModelAlias(alias: string) { + const normalizedAlias = alias.startsWith(`${OPENWORK_PROVIDER_ID}/`) + ? alias.slice(OPENWORK_PROVIDER_ID.length + 1) + : alias + return models.find((model) => model.alias === normalizedAlias) ?? null +} + +export function listModelCatalog() { + return models +} diff --git a/ee/apps/inference/src/proxy.ts b/ee/apps/inference/src/proxy.ts new file mode 100644 index 000000000..43fb9c5e7 --- /dev/null +++ b/ee/apps/inference/src/proxy.ts @@ -0,0 +1,246 @@ +import { createHash } from "node:crypto" +import type { Hono } from "hono" +import type { DenTypeId } from "@openwork-ee/utils/typeid" +import { env } from "./env.js" +import { findActiveInferenceKey, getOpenRouterProviderKey } from "./keys.js" +import { ensureUsableBuckets } from "./limits.js" +import { resolveModelAlias } from "./model-catalog.js" + +type JsonObject = Record + +function readApiKey(request: Request) { + const auth = request.headers.get("authorization") + if (auth?.toLowerCase().startsWith("bearer ")) { + return auth.slice(7).trim() + } + return request.headers.get("x-api-key")?.trim() ?? null +} + +function isJsonRequest(request: Request) { + return request.headers.get("content-type")?.toLowerCase().includes("application/json") ?? false +} + +function sanitizeHeaders(request: Request, apiKey: string, openworkRequestId: string) { + const headers = new Headers(request.headers) + for (const name of ["authorization", "x-api-key", "host", "content-length", "connection", "accept-encoding"]) { + headers.delete(name) + } + headers.set("authorization", `Bearer ${apiKey}`) + headers.set("x-openwork-request-id", openworkRequestId) + if (env.proxyBaseUrl) { + headers.set("http-referer", env.proxyBaseUrl) + } + headers.set("x-title", "OpenWork Inference") + return headers +} + +function openAiError(status: number, code: string, message: string) { + return Response.json({ error: { message, type: "invalid_request_error", code } }, { status }) +} + +function logProxyError(message: string, details: Record) { + console.error(`[inference-proxy] ${message}`, details) +} + +async function logUpstreamError(input: { + upstream: Response + upstreamUrl: URL + openworkRequestId: string + modelAlias: string + upstreamModel: string | null +}) { + let bodySnippet: string | null = null + try { + const text = await input.upstream.clone().text() + bodySnippet = text.slice(0, 2000) + } catch (error) { + bodySnippet = `Failed to read upstream error body: ${error instanceof Error ? error.message : String(error)}` + } + + logProxyError("Upstream OpenRouter request failed", { + openworkRequestId: input.openworkRequestId, + upstreamUrl: input.upstreamUrl.toString(), + status: input.upstream.status, + statusText: input.upstream.statusText, + modelAlias: input.modelAlias, + upstreamModel: input.upstreamModel, + bodySnippet, + }) +} + +function buildRequestId() { + return createHash("sha256").update(`${Date.now()}:${Math.random()}`).digest("hex").slice(0, 32) +} + +function trackStream(body: ReadableStream | null, done: () => Promise, fail: () => Promise) { + if (!body) return body + const reader = body.getReader() + return new ReadableStream({ + async pull(controller) { + try { + const chunk = await reader.read() + if (chunk.done) { + await done() + controller.close() + return + } + controller.enqueue(chunk.value) + } catch (error) { + await fail() + controller.error(error) + } + }, + async cancel(reason) { + await fail() + await reader.cancel(reason) + }, + }) +} + +async function prepareBody(request: Request, input: { + organizationId: string + orgMembershipId: string + inferenceKeyId: string + openworkRequestId: string + bucketIds: Partial>> +}) { + if (!isJsonRequest(request)) { + return { body: request.body, modelAlias: "unknown", upstreamModel: null as string | null } + } + + const body = await request.json() as JsonObject + if (typeof body.model !== "string") { + logProxyError("Missing model in JSON request body", { + openworkRequestId: input.openworkRequestId, + organizationId: input.organizationId, + orgMembershipId: input.orgMembershipId, + }) + return { error: openAiError(400, "model_required", "JSON request body must include a string model.") } + } + const model = resolveModelAlias(body.model) + if (!model) { + logProxyError("Unknown OpenWork model alias", { + openworkRequestId: input.openworkRequestId, + organizationId: input.organizationId, + orgMembershipId: input.orgMembershipId, + requestedModel: body.model, + }) + return { error: openAiError(404, "model_not_found", `Unknown OpenWork model alias: ${body.model}`) } + } + + const trace = typeof body.trace === "object" && body.trace !== null ? body.trace as JsonObject : {} + body.model = model.upstreamModel + body.user = input.orgMembershipId + body.session_id = typeof body.session_id === "string" ? body.session_id : input.openworkRequestId + body.trace = { + ...trace, + trace_id: input.openworkRequestId, + trace_name: "OpenWork Inference", + generation_name: model.alias, + organization_id: input.organizationId, + org_membership_id: input.orgMembershipId, + inference_key_id: input.inferenceKeyId, + openwork_request_id: input.openworkRequestId, + ...Object.fromEntries(Object.entries(input.bucketIds).map(([windowType, id]) => [`bucket_${windowType}_id`, id])), + } + + return { + body: JSON.stringify(body), + modelAlias: model.alias, + upstreamModel: model.upstreamModel, + } +} + +export function registerProxyRoutes(app: Hono) { + app.all("/api/v1/*", async (c) => { + const rawKey = readApiKey(c.req.raw) + if (!rawKey) { + logProxyError("Missing inference API key", { path: c.req.path, method: c.req.method }) + return c.json({ error: { message: "Missing OpenWork inference API key.", type: "authentication_error", code: "missing_api_key" } }, 401) + } + + const inferenceKey = await findActiveInferenceKey(rawKey) + if (!inferenceKey) { + logProxyError("Invalid inference API key", { path: c.req.path, method: c.req.method }) + return c.json({ error: { message: "Invalid OpenWork inference API key.", type: "authentication_error", code: "invalid_api_key" } }, 401) + } + + const limits = await ensureUsableBuckets(inferenceKey.organization_id) + if (!limits.ok) { + logProxyError("Inference usage limit exceeded", { + path: c.req.path, + organizationId: inferenceKey.organization_id, + orgMembershipId: inferenceKey.org_membership_id, + limitedBy: limits.limitedBy, + }) + return c.json({ error: { message: "Inference usage limit exceeded.", type: "rate_limit_error", code: "usage_limit_exceeded", bucket_id: limits.limitedBy } }, 429) + } + + const providerKey = await getOpenRouterProviderKey(inferenceKey.organization_id) + if (!providerKey) { + logProxyError("Missing active OpenRouter provider key", { + path: c.req.path, + organizationId: inferenceKey.organization_id, + orgMembershipId: inferenceKey.org_membership_id, + }) + return c.json({ error: { message: "No active OpenRouter provider key configured for organization.", type: "invalid_request_error", code: "missing_provider_key" } }, 400) + } + + const openworkRequestId = buildRequestId() + const prepared = await prepareBody(c.req.raw, { + organizationId: inferenceKey.organization_id, + orgMembershipId: inferenceKey.org_membership_id, + inferenceKeyId: inferenceKey.id, + openworkRequestId, + bucketIds: limits.bucketIds, + }) + if ("error" in prepared) { + logProxyError("Invalid inference proxy request", { + openworkRequestId, + path: c.req.path, + organizationId: inferenceKey.organization_id, + orgMembershipId: inferenceKey.org_membership_id, + }) + return prepared.error + } + + const upstreamPath = c.req.path.replace(/^\/api\/v1/, "") + const upstreamUrl = new URL(`${env.openRouterUpstreamUrl}${upstreamPath}${new URL(c.req.url).search}`) + let upstream: Response + try { + upstream = await fetch(upstreamUrl, { + method: c.req.method, + headers: sanitizeHeaders(c.req.raw, providerKey.encrypted_api_key, openworkRequestId), + body: ["GET", "HEAD"].includes(c.req.method) ? undefined : prepared.body, + duplex: "half", + } as RequestInit) + } catch (error) { + logProxyError("Failed to reach OpenRouter upstream", { + openworkRequestId, + upstreamUrl: upstreamUrl.toString(), + modelAlias: prepared.modelAlias, + upstreamModel: prepared.upstreamModel, + error: error instanceof Error ? error.message : String(error), + }) + return c.json({ error: { message: "Failed to reach OpenRouter upstream.", type: "api_error", code: "upstream_unreachable" } }, 502) + } + + if (!upstream.ok) { + await logUpstreamError({ + upstream, + upstreamUrl, + openworkRequestId, + modelAlias: prepared.modelAlias, + upstreamModel: prepared.upstreamModel, + }) + } + + const headers = new Headers(upstream.headers) + headers.set("x-openwork-request-id", openworkRequestId) + return new Response(trackStream( + upstream.body, + async () => {}, + async () => {}, + ), { status: upstream.status, statusText: upstream.statusText, headers }) + }) +} diff --git a/ee/apps/inference/src/server.ts b/ee/apps/inference/src/server.ts new file mode 100644 index 000000000..6afac0c7d --- /dev/null +++ b/ee/apps/inference/src/server.ts @@ -0,0 +1,7 @@ +import { serve } from "@hono/node-server" +import app from "./app.js" +import { env } from "./env.js" + +serve({ fetch: app.fetch, port: env.port }, (info) => { + console.log(`inference listening on ${info.port}`) +}) diff --git a/ee/apps/inference/src/webhooks.ts b/ee/apps/inference/src/webhooks.ts new file mode 100644 index 000000000..abc0a2279 --- /dev/null +++ b/ee/apps/inference/src/webhooks.ts @@ -0,0 +1,219 @@ +import { and, eq, sql } from "drizzle-orm" +import type { Hono } from "hono" +import { InferenceUsageLedgerBucketChargeTable, InferenceUsageLedgerEntryTable, InferenceOrgUsageBucketTable } from "@openwork-ee/den-db" +import { createDenTypeId, normalizeDenTypeId } from "@openwork-ee/utils/typeid" +import type { DenTypeId } from "@openwork-ee/utils/typeid" +import { db } from "./db.js" +import { env } from "./env.js" +import { constantTimeEquals } from "./keys.js" + +type JsonRecord = Record + +type ParsedSpan = { + organizationId: string + orgMembershipId: string + inferenceKeyId: string | null + openworkRequestId: string + externalEventId: string | null + costAmount: number + occurredAt: Date + bucketIds: Record> +} + +function isRecord(value: unknown): value is JsonRecord { + return typeof value === "object" && value !== null && !Array.isArray(value) +} + +function values(value: unknown) { + return Array.isArray(value) ? value : [] +} + +function attributeValue(value: unknown): unknown { + if (!isRecord(value)) { + return value + } + if ("stringValue" in value) return value.stringValue + if ("intValue" in value) return value.intValue + if ("doubleValue" in value) return value.doubleValue + if ("boolValue" in value) return value.boolValue + return value +} + +function attributesToRecord(attributes: unknown) { + const out: JsonRecord = {} + for (const attr of values(attributes)) { + if (isRecord(attr) && typeof attr.key === "string") { + out[attr.key] = attributeValue(attr.value) + } + } + return out +} + +function stringAttr(attrs: JsonRecord, keys: string[]) { + for (const key of keys) { + const value = attrs[key] + if (typeof value === "string" && value.trim()) return value.trim() + if (typeof value === "number" && Number.isFinite(value)) return String(value) + } + return null +} + +function costToCredits(value: unknown) { + const numberValue = typeof value === "number" ? value : typeof value === "string" ? Number(value) : NaN + if (!Number.isFinite(numberValue) || numberValue <= 0) return null + return Math.max(1, Math.round(numberValue * env.creditsPerDollar)) +} + +function timeFromSpan(span: JsonRecord) { + const raw = stringAttr(span, ["endTimeUnixNano", "startTimeUnixNano", "timeUnixNano"]) + if (!raw) return new Date() + const ms = Number(BigInt(raw) / 1_000_000n) + return Number.isFinite(ms) ? new Date(ms) : new Date() +} + +function parseSpan(span: JsonRecord, resourceAttrs: JsonRecord, scopeAttrs: JsonRecord): ParsedSpan | null { + const attrs = { ...resourceAttrs, ...scopeAttrs, ...attributesToRecord(span.attributes) } + const organizationId = stringAttr(attrs, ["trace.metadata.organization_id", "trace.organization_id", "metadata.organization_id", "organization_id"]) + const orgMembershipId = stringAttr(attrs, ["trace.metadata.org_membership_id", "trace.org_membership_id", "metadata.org_membership_id", "org_membership_id"]) + const openworkRequestId = stringAttr(attrs, ["trace.metadata.openwork_request_id", "trace.openwork_request_id", "metadata.openwork_request_id", "openwork_request_id", "trace_id"]) + ?? (typeof span.traceId === "string" ? span.traceId : null) + const cost = costToCredits( + attrs["gen_ai.usage.cost"] ?? attrs["openrouter.cost"] ?? attrs.cost ?? attrs["cost_usd"] ?? attrs["usage.cost"], + ) + if (!organizationId || !orgMembershipId || !openworkRequestId || cost === null) { + return null + } + + const bucketIds: Record> = {} + for (const [key, value] of Object.entries(attrs)) { + const match = /^trace\.metadata\.bucket_(.+)_id$|^trace\.bucket_(.+)_id$|^metadata\.bucket_(.+)_id$|^bucket_(.+)_id$/.exec(key) + const windowType = match?.[1] ?? match?.[2] ?? match?.[3] ?? match?.[4] + if (windowType && typeof value === "string") { + try { + bucketIds[windowType] = normalizeDenTypeId("inferenceOrgUsageBucket", value) + } catch { + continue + } + } + } + + return { + organizationId, + orgMembershipId, + inferenceKeyId: stringAttr(attrs, ["trace.metadata.inference_key_id", "trace.inference_key_id", "metadata.inference_key_id", "inference_key_id"]), + openworkRequestId, + externalEventId: stringAttr(attrs, ["event_id", "id", "span_id"]) ?? (typeof span.spanId === "string" ? span.spanId : null), + costAmount: cost, + occurredAt: timeFromSpan(span), + bucketIds, + } +} + +function parseOtlpSpans(body: unknown) { + const spans: ParsedSpan[] = [] + if (!isRecord(body)) return spans + for (const resourceSpan of values(body.resourceSpans)) { + if (!isRecord(resourceSpan)) continue + const resourceAttrs = attributesToRecord(isRecord(resourceSpan.resource) ? resourceSpan.resource.attributes : undefined) + for (const scopeSpan of values(resourceSpan.scopeSpans)) { + if (!isRecord(scopeSpan)) continue + const scopeAttrs = attributesToRecord(isRecord(scopeSpan.scope) ? scopeSpan.scope.attributes : undefined) + for (const span of values(scopeSpan.spans)) { + if (!isRecord(span)) continue + const parsed = parseSpan(span, resourceAttrs, scopeAttrs) + if (parsed) spans.push(parsed) + } + } + } + return spans +} + +function isAuthorized(request: Request) { + if (!env.webhookSecret) return false + const auth = request.headers.get("authorization") + const bearer = auth?.toLowerCase().startsWith("bearer ") ? auth.slice(7).trim() : null + const signature = request.headers.get("x-webhook-signature")?.trim() ?? null + return [bearer, signature].some((value) => value !== null && constantTimeEquals(value, env.webhookSecret!)) +} + +async function ingestSpan(span: ParsedSpan) { + if (span.externalEventId) { + const [event] = await db.select({ id: InferenceUsageLedgerEntryTable.id }).from(InferenceUsageLedgerEntryTable) + .where(eq(InferenceUsageLedgerEntryTable.external_event_id, span.externalEventId)) + .limit(1) + if (event) return + } + + const [existing] = await db.select({ id: InferenceUsageLedgerEntryTable.id }).from(InferenceUsageLedgerEntryTable) + .where(and(eq(InferenceUsageLedgerEntryTable.external_job_id, span.openworkRequestId), eq(InferenceUsageLedgerEntryTable.event_type, "openrouter_usage"))).limit(1) + const entry = existing ?? await (async () => { + const entryId = createDenTypeId("inferenceUsageLedgerEntry") + await db.insert(InferenceUsageLedgerEntryTable).values({ + id: entryId, + organization_id: normalizeDenTypeId("organization", span.organizationId), + org_membership_id: normalizeDenTypeId("member", span.orgMembershipId), + inference_key_id: span.inferenceKeyId ? normalizeDenTypeId("inferenceKey", span.inferenceKeyId) : null, + external_job_id: span.openworkRequestId, + external_event_id: span.externalEventId, + cost_amount: span.costAmount, + event_type: "openrouter_usage", + occurred_at: span.occurredAt, + }) + return { id: entryId } + })() + if (!entry) return + + await db.transaction(async (tx) => { + for (const bucketId of Object.values(span.bucketIds)) { + const [charge] = await tx.select({ id: InferenceUsageLedgerBucketChargeTable.id }) + .from(InferenceUsageLedgerBucketChargeTable) + .where(and( + eq(InferenceUsageLedgerBucketChargeTable.ledger_entry_id, entry.id), + eq(InferenceUsageLedgerBucketChargeTable.bucket_id, bucketId), + )) + .limit(1) + if (charge) { + continue + } + + await tx.insert(InferenceUsageLedgerBucketChargeTable).values({ + id: createDenTypeId("inferenceUsageLedgerBucketCharge"), + ledger_entry_id: entry.id, + bucket_id: bucketId, + amount: span.costAmount, + }) + await tx.update(InferenceOrgUsageBucketTable).set({ + used_amount: sql`${InferenceOrgUsageBucketTable.used_amount} + ${span.costAmount}`, + }).where(eq(InferenceOrgUsageBucketTable.id, bucketId)) + } + }) +} + +export function registerWebhookRoutes(app: Hono) { + app.post("/webhooks/openrouter", async (c) => { + if (c.req.header("x-test-connection")?.toLowerCase() === "true") { + return c.body(null, 204) + } + if (!env.webhookSecret) { + return c.json({ error: "webhook_disabled" }, 503) + } + if (!isAuthorized(c.req.raw)) { + return c.json({ error: "unauthorized" }, 401) + } + + const body = await c.req.json().catch(() => null) + const spans = parseOtlpSpans(body) + let ingested = 0 + let skipped = 0 + for (const span of spans) { + try { + await ingestSpan(span) + ingested += 1 + } catch (error) { + skipped += 1 + console.warn("failed to ingest OpenRouter usage span", error) + } + } + return c.json({ ok: true, ingested, skipped }) + }) +} diff --git a/ee/apps/inference/tsconfig.json b/ee/apps/inference/tsconfig.json new file mode 100644 index 000000000..21f5aeef5 --- /dev/null +++ b/ee/apps/inference/tsconfig.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "target": "ES2022", + "module": "ESNext", + "moduleResolution": "Bundler", + "rootDir": "src", + "outDir": "dist", + "strict": true, + "esModuleInterop": true, + "skipLibCheck": true, + "resolveJsonModule": true + }, + "include": ["src"] +} diff --git a/ee/packages/den-db/drizzle/0015_inference_proxy.sql b/ee/packages/den-db/drizzle/0015_inference_proxy.sql new file mode 100644 index 000000000..7158798c1 --- /dev/null +++ b/ee/packages/den-db/drizzle/0015_inference_proxy.sql @@ -0,0 +1,99 @@ +CREATE TABLE `inference_keys` ( + `id` varchar(64) NOT NULL, + `organization_id` varchar(64) NOT NULL, + `org_membership_id` varchar(64) NOT NULL, + `name` varchar(255), + `key_hash` varchar(255) NOT NULL, + `key_prefix` varchar(32), + `status` enum('active','revoked') NOT NULL DEFAULT 'active', + `revoked_at` timestamp(3), + `created_at` timestamp(3) NOT NULL DEFAULT (now()), + `updated_at` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3), + CONSTRAINT `inference_keys_id` PRIMARY KEY(`id`), + CONSTRAINT `inference_keys_key_hash` UNIQUE(`key_hash`) +); +--> statement-breakpoint +CREATE TABLE `inference_org_limit_policies` ( + `id` varchar(64) NOT NULL, + `organization_id` varchar(64) NOT NULL, + `window_type` enum('five_hour','weekly','monthly') NOT NULL, + `limit_amount` bigint NOT NULL, + `reset_strategy` enum('anchored','activity_based') NOT NULL, + `anchor_at` timestamp(3), + `current_bucket_id` varchar(64), + `created_at` timestamp(3) NOT NULL DEFAULT (now()), + `updated_at` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3), + CONSTRAINT `inference_org_limit_policies_id` PRIMARY KEY(`id`), + CONSTRAINT `inference_org_limit_policies_org_window_type` UNIQUE(`organization_id`,`window_type`) +); +--> statement-breakpoint +CREATE TABLE `inference_org_upstream_provider_keys` ( + `id` varchar(64) NOT NULL, + `organization_id` varchar(64) NOT NULL, + `provider` varchar(64) NOT NULL DEFAULT 'openrouter', + `external_key_hash` varchar(255), + `external_workspace_id` varchar(255), + `encrypted_api_key` text NOT NULL, + `key_prefix` varchar(32), + `status` enum('active','revoked') NOT NULL DEFAULT 'active', + `revoked_at` timestamp(3), + `created_at` timestamp(3) NOT NULL DEFAULT (now()), + `updated_at` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3), + CONSTRAINT `inference_org_upstream_provider_keys_id` PRIMARY KEY(`id`), + CONSTRAINT `inference_org_upstream_provider_keys_org_provider` UNIQUE(`organization_id`,`provider`) +); +--> statement-breakpoint +CREATE TABLE `inference_org_usage_buckets` ( + `id` varchar(64) NOT NULL, + `organization_id` varchar(64) NOT NULL, + `policy_id` varchar(64) NOT NULL, + `window_start_at` timestamp(3) NOT NULL, + `window_end_at` timestamp(3) NOT NULL, + `limit_amount` bigint NOT NULL, + `used_amount` bigint NOT NULL DEFAULT 0, + `created_at` timestamp(3) NOT NULL DEFAULT (now()), + `updated_at` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3), + CONSTRAINT `inference_org_usage_buckets_id` PRIMARY KEY(`id`) +); +--> statement-breakpoint +CREATE TABLE `inference_usage_ledger_bucket_charges` ( + `id` varchar(64) NOT NULL, + `ledger_entry_id` varchar(64) NOT NULL, + `bucket_id` varchar(64) NOT NULL, + `amount` bigint NOT NULL, + `created_at` timestamp(3) NOT NULL DEFAULT (now()), + CONSTRAINT `inference_usage_ledger_bucket_charges_id` PRIMARY KEY(`id`), + CONSTRAINT `inference_usage_ledger_bucket_charges_entry_bucket` UNIQUE(`ledger_entry_id`,`bucket_id`) +); +--> statement-breakpoint +CREATE TABLE `inference_usage_ledger_entries` ( + `id` varchar(64) NOT NULL, + `organization_id` varchar(64) NOT NULL, + `org_membership_id` varchar(64) NOT NULL, + `inference_key_id` varchar(64), + `external_job_id` varchar(255) NOT NULL, + `external_event_id` varchar(255), + `cost_amount` bigint NOT NULL, + `event_type` varchar(64) NOT NULL, + `occurred_at` timestamp(3) NOT NULL, + `created_at` timestamp(3) NOT NULL DEFAULT (now()), + CONSTRAINT `inference_usage_ledger_entries_id` PRIMARY KEY(`id`), + CONSTRAINT `inference_usage_ledger_entries_external_event_id` UNIQUE(`external_event_id`), + CONSTRAINT `inference_usage_ledger_entries_job_event_type` UNIQUE(`external_job_id`,`event_type`) +); +--> statement-breakpoint +ALTER TABLE `llm_provider` MODIFY COLUMN `source` enum('models_dev','custom','openwork') NOT NULL;--> statement-breakpoint +CREATE INDEX `inference_keys_organization_id` ON `inference_keys` (`organization_id`);--> statement-breakpoint +CREATE INDEX `inference_keys_org_membership_id` ON `inference_keys` (`org_membership_id`);--> statement-breakpoint +CREATE INDEX `inference_keys_status` ON `inference_keys` (`status`);--> statement-breakpoint +CREATE INDEX `inference_org_limit_policies_organization_id` ON `inference_org_limit_policies` (`organization_id`);--> statement-breakpoint +CREATE INDEX `inference_org_upstream_provider_keys_organization_id` ON `inference_org_upstream_provider_keys` (`organization_id`);--> statement-breakpoint +CREATE INDEX `inference_org_upstream_provider_keys_external_key_hash` ON `inference_org_upstream_provider_keys` (`external_key_hash`);--> statement-breakpoint +CREATE INDEX `inference_org_upstream_provider_keys_status` ON `inference_org_upstream_provider_keys` (`status`);--> statement-breakpoint +CREATE INDEX `inference_org_usage_buckets_org_window` ON `inference_org_usage_buckets` (`organization_id`,`window_start_at`,`window_end_at`);--> statement-breakpoint +CREATE INDEX `inference_org_usage_buckets_policy_id` ON `inference_org_usage_buckets` (`policy_id`);--> statement-breakpoint +CREATE INDEX `inference_org_usage_buckets_policy_window` ON `inference_org_usage_buckets` (`policy_id`,`window_start_at`,`window_end_at`);--> statement-breakpoint +CREATE INDEX `inference_usage_ledger_bucket_charges_bucket_id` ON `inference_usage_ledger_bucket_charges` (`bucket_id`);--> statement-breakpoint +CREATE INDEX `inference_usage_ledger_entries_organization_id` ON `inference_usage_ledger_entries` (`organization_id`);--> statement-breakpoint +CREATE INDEX `inference_usage_ledger_entries_org_membership_id` ON `inference_usage_ledger_entries` (`org_membership_id`);--> statement-breakpoint +CREATE INDEX `inference_usage_ledger_entries_inference_key_id` ON `inference_usage_ledger_entries` (`inference_key_id`); diff --git a/ee/packages/den-db/drizzle/meta/0009_snapshot.json b/ee/packages/den-db/drizzle/meta/0009_snapshot.json new file mode 100644 index 000000000..4c9c2742e --- /dev/null +++ b/ee/packages/den-db/drizzle/meta/0009_snapshot.json @@ -0,0 +1,2557 @@ +{ + "version": "5", + "dialect": "mysql", + "id": "138df2c1-5368-4d7c-a257-b0b158a519c2", + "prevId": "e465c2af-b7a2-457f-89cd-2a0f02645bc8", + "tables": { + "account": { + "name": "account", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "account_id": { + "name": "account_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "provider_id": { + "name": "provider_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "access_token": { + "name": "access_token", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "refresh_token": { + "name": "refresh_token", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "access_token_expires_at": { + "name": "access_token_expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "refresh_token_expires_at": { + "name": "refresh_token_expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "scope": { + "name": "scope", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "id_token": { + "name": "id_token", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "password": { + "name": "password", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "account_user_id": { + "name": "account_user_id", + "columns": [ + "user_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "account_id": { + "name": "account_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "apikey": { + "name": "apikey", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "config_id": { + "name": "config_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'default'" + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "start": { + "name": "start", + "type": "varchar(32)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "prefix": { + "name": "prefix", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "key": { + "name": "key", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "reference_id": { + "name": "reference_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "refill_interval": { + "name": "refill_interval", + "type": "bigint", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "refill_amount": { + "name": "refill_amount", + "type": "int", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_refill_at": { + "name": "last_refill_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "enabled": { + "name": "enabled", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": true + }, + "rate_limit_enabled": { + "name": "rate_limit_enabled", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": true + }, + "rate_limit_time_window": { + "name": "rate_limit_time_window", + "type": "bigint", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "rate_limit_max": { + "name": "rate_limit_max", + "type": "int", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "request_count": { + "name": "request_count", + "type": "int", + "primaryKey": false, + "notNull": false, + "autoincrement": false, + "default": 0 + }, + "remaining": { + "name": "remaining", + "type": "int", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_request": { + "name": "last_request", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + }, + "permissions": { + "name": "permissions", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "metadata": { + "name": "metadata", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "apikey_config_id": { + "name": "apikey_config_id", + "columns": [ + "config_id" + ], + "isUnique": false + }, + "apikey_reference_id": { + "name": "apikey_reference_id", + "columns": [ + "reference_id" + ], + "isUnique": false + }, + "apikey_key": { + "name": "apikey_key", + "columns": [ + "key" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "apikey_id": { + "name": "apikey_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "session": { + "name": "session", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "active_organization_id": { + "name": "active_organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "active_team_id": { + "name": "active_team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "token": { + "name": "token", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "ip_address": { + "name": "ip_address", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "user_agent": { + "name": "user_agent", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "session_token": { + "name": "session_token", + "columns": [ + "token" + ], + "isUnique": true + }, + "session_user_id": { + "name": "session_user_id", + "columns": [ + "user_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "session_id": { + "name": "session_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "user": { + "name": "user", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "email": { + "name": "email", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "email_verified": { + "name": "email_verified", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "image": { + "name": "image", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "user_email": { + "name": "user_email", + "columns": [ + "email" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "user_id": { + "name": "user_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "verification": { + "name": "verification", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "identifier": { + "name": "identifier", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "value": { + "name": "value", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "verification_identifier": { + "name": "verification_identifier", + "columns": [ + "identifier" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "verification_id": { + "name": "verification_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "desktop_handoff_grant": { + "name": "desktop_handoff_grant", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "session_token": { + "name": "session_token", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "consumed_at": { + "name": "consumed_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "desktop_handoff_grant_user_id": { + "name": "desktop_handoff_grant_user_id", + "columns": [ + "user_id" + ], + "isUnique": false + }, + "desktop_handoff_grant_expires_at": { + "name": "desktop_handoff_grant_expires_at", + "columns": [ + "expires_at" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "desktop_handoff_grant_id": { + "name": "desktop_handoff_grant_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "invitation": { + "name": "invitation", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "email": { + "name": "email", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "role": { + "name": "role", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "varchar(32)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'pending'" + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "inviter_id": { + "name": "inviter_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "invitation_organization_id": { + "name": "invitation_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "invitation_email": { + "name": "invitation_email", + "columns": [ + "email" + ], + "isUnique": false + }, + "invitation_status": { + "name": "invitation_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "invitation_team_id": { + "name": "invitation_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "invitation_id": { + "name": "invitation_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "member": { + "name": "member", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "role": { + "name": "role", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'member'" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "member_organization_id": { + "name": "member_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "member_user_id": { + "name": "member_user_id", + "columns": [ + "user_id" + ], + "isUnique": false + }, + "member_organization_user": { + "name": "member_organization_user", + "columns": [ + "organization_id", + "user_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "member_id": { + "name": "member_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "organization_role": { + "name": "organization_role", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "role": { + "name": "role", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "permission": { + "name": "permission", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "organization_role_organization_id": { + "name": "organization_role_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "organization_role_name": { + "name": "organization_role_name", + "columns": [ + "organization_id", + "role" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "organization_role_id": { + "name": "organization_role_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "organization": { + "name": "organization", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "slug": { + "name": "slug", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "logo": { + "name": "logo", + "type": "varchar(2048)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "metadata": { + "name": "metadata", + "type": "json", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "organization_slug": { + "name": "organization_slug", + "columns": [ + "slug" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "organization_id": { + "name": "organization_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "temp_template_sharing": { + "name": "temp_template_sharing", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "creator_member_id": { + "name": "creator_member_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "creator_user_id": { + "name": "creator_user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "template_json": { + "name": "template_json", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "temp_template_sharing_org_id": { + "name": "temp_template_sharing_org_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "temp_template_sharing_creator_member_id": { + "name": "temp_template_sharing_creator_member_id", + "columns": [ + "creator_member_id" + ], + "isUnique": false + }, + "temp_template_sharing_creator_user_id": { + "name": "temp_template_sharing_creator_user_id", + "columns": [ + "creator_user_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "temp_template_sharing_id": { + "name": "temp_template_sharing_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "llm_provider_access": { + "name": "llm_provider_access", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "llm_provider_id": { + "name": "llm_provider_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "llm_provider_access_llm_provider_id": { + "name": "llm_provider_access_llm_provider_id", + "columns": [ + "llm_provider_id" + ], + "isUnique": false + }, + "llm_provider_access_org_membership_id": { + "name": "llm_provider_access_org_membership_id", + "columns": [ + "org_membership_id" + ], + "isUnique": false + }, + "llm_provider_access_team_id": { + "name": "llm_provider_access_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + }, + "llm_provider_access_provider_org_membership": { + "name": "llm_provider_access_provider_org_membership", + "columns": [ + "llm_provider_id", + "org_membership_id" + ], + "isUnique": true + }, + "llm_provider_access_provider_team": { + "name": "llm_provider_access_provider_team", + "columns": [ + "llm_provider_id", + "team_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "llm_provider_access_id": { + "name": "llm_provider_access_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "llm_provider_model": { + "name": "llm_provider_model", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "llm_provider_id": { + "name": "llm_provider_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "model_id": { + "name": "model_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "model_config": { + "name": "model_config", + "type": "json", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "llm_provider_model_llm_provider_id": { + "name": "llm_provider_model_llm_provider_id", + "columns": [ + "llm_provider_id" + ], + "isUnique": false + }, + "llm_provider_model_model_id": { + "name": "llm_provider_model_model_id", + "columns": [ + "model_id" + ], + "isUnique": false + }, + "llm_provider_model_provider_model": { + "name": "llm_provider_model_provider_model", + "columns": [ + "llm_provider_id", + "model_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "llm_provider_model_id": { + "name": "llm_provider_model_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "llm_provider": { + "name": "llm_provider", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "source": { + "name": "source", + "type": "enum('models_dev','custom')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "provider_id": { + "name": "provider_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "provider_config": { + "name": "provider_config", + "type": "json", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "api_key": { + "name": "api_key", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "llm_provider_organization_id": { + "name": "llm_provider_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "llm_provider_created_by_org_membership_id": { + "name": "llm_provider_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + }, + "llm_provider_source": { + "name": "llm_provider_source", + "columns": [ + "source" + ], + "isUnique": false + }, + "llm_provider_provider_id": { + "name": "llm_provider_provider_id", + "columns": [ + "provider_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "llm_provider_id": { + "name": "llm_provider_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "skill_hub_member": { + "name": "skill_hub_member", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "skill_hub_id": { + "name": "skill_hub_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "skill_hub_member_skill_hub_id": { + "name": "skill_hub_member_skill_hub_id", + "columns": [ + "skill_hub_id" + ], + "isUnique": false + }, + "skill_hub_member_org_membership_id": { + "name": "skill_hub_member_org_membership_id", + "columns": [ + "org_membership_id" + ], + "isUnique": false + }, + "skill_hub_member_team_id": { + "name": "skill_hub_member_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + }, + "skill_hub_member_hub_org_membership": { + "name": "skill_hub_member_hub_org_membership", + "columns": [ + "skill_hub_id", + "org_membership_id" + ], + "isUnique": true + }, + "skill_hub_member_hub_team": { + "name": "skill_hub_member_hub_team", + "columns": [ + "skill_hub_id", + "team_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "skill_hub_member_id": { + "name": "skill_hub_member_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "skill_hub_skill": { + "name": "skill_hub_skill", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "skill_hub_id": { + "name": "skill_hub_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "skill_id": { + "name": "skill_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "skill_hub_skill_skill_hub_id": { + "name": "skill_hub_skill_skill_hub_id", + "columns": [ + "skill_hub_id" + ], + "isUnique": false + }, + "skill_hub_skill_skill_id": { + "name": "skill_hub_skill_skill_id", + "columns": [ + "skill_id" + ], + "isUnique": false + }, + "skill_hub_skill_hub_skill": { + "name": "skill_hub_skill_hub_skill", + "columns": [ + "skill_hub_id", + "skill_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "skill_hub_skill_id": { + "name": "skill_hub_skill_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "skill_hub": { + "name": "skill_hub", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "skill_hub_organization_id": { + "name": "skill_hub_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "skill_hub_created_by_org_membership_id": { + "name": "skill_hub_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "skill_hub_id": { + "name": "skill_hub_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "skill": { + "name": "skill", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "title": { + "name": "title", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "skill_text": { + "name": "skill_text", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "shared": { + "name": "shared", + "type": "enum('org','public')", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "skill_organization_id": { + "name": "skill_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "skill_created_by_org_membership_id": { + "name": "skill_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + }, + "skill_shared": { + "name": "skill_shared", + "columns": [ + "shared" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "skill_id": { + "name": "skill_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "team_member": { + "name": "team_member", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "team_member_team_id": { + "name": "team_member_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + }, + "team_member_org_membership_id": { + "name": "team_member_org_membership_id", + "columns": [ + "org_membership_id" + ], + "isUnique": false + }, + "team_member_team_org_membership": { + "name": "team_member_team_org_membership", + "columns": [ + "team_id", + "org_membership_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "team_member_id": { + "name": "team_member_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "team": { + "name": "team", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "team_organization_id": { + "name": "team_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "team_organization_name": { + "name": "team_organization_name", + "columns": [ + "organization_id", + "name" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "team_id": { + "name": "team_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "audit_event": { + "name": "audit_event", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_id": { + "name": "org_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "worker_id": { + "name": "worker_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "actor_user_id": { + "name": "actor_user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "action": { + "name": "action", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "payload": { + "name": "payload", + "type": "json", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "audit_event_org_id": { + "name": "audit_event_org_id", + "columns": [ + "org_id" + ], + "isUnique": false + }, + "audit_event_worker_id": { + "name": "audit_event_worker_id", + "columns": [ + "worker_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "audit_event_id": { + "name": "audit_event_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "daytona_sandbox": { + "name": "daytona_sandbox", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "worker_id": { + "name": "worker_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "sandbox_id": { + "name": "sandbox_id", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "workspace_volume_id": { + "name": "workspace_volume_id", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "data_volume_id": { + "name": "data_volume_id", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "signed_preview_url": { + "name": "signed_preview_url", + "type": "varchar(2048)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "signed_preview_url_expires_at": { + "name": "signed_preview_url_expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "region": { + "name": "region", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "daytona_sandbox_worker_id": { + "name": "daytona_sandbox_worker_id", + "columns": [ + "worker_id" + ], + "isUnique": true + }, + "daytona_sandbox_sandbox_id": { + "name": "daytona_sandbox_sandbox_id", + "columns": [ + "sandbox_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "daytona_sandbox_id": { + "name": "daytona_sandbox_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "worker_bundle": { + "name": "worker_bundle", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "worker_id": { + "name": "worker_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "storage_url": { + "name": "storage_url", + "type": "varchar(2048)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "worker_bundle_worker_id": { + "name": "worker_bundle_worker_id", + "columns": [ + "worker_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "worker_bundle_id": { + "name": "worker_bundle_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "worker_instance": { + "name": "worker_instance", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "worker_id": { + "name": "worker_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "provider": { + "name": "provider", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "region": { + "name": "region", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "url": { + "name": "url", + "type": "varchar(2048)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('provisioning','healthy','failed','stopped')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "worker_instance_worker_id": { + "name": "worker_instance_worker_id", + "columns": [ + "worker_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "worker_instance_id": { + "name": "worker_instance_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "worker": { + "name": "worker", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_id": { + "name": "org_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_user_id": { + "name": "created_by_user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "varchar(1024)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "destination": { + "name": "destination", + "type": "enum('local','cloud')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('provisioning','healthy','failed','stopped')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "image_version": { + "name": "image_version", + "type": "varchar(128)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "workspace_path": { + "name": "workspace_path", + "type": "varchar(1024)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "sandbox_backend": { + "name": "sandbox_backend", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_heartbeat_at": { + "name": "last_heartbeat_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_active_at": { + "name": "last_active_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "worker_org_id": { + "name": "worker_org_id", + "columns": [ + "org_id" + ], + "isUnique": false + }, + "worker_created_by_user_id": { + "name": "worker_created_by_user_id", + "columns": [ + "created_by_user_id" + ], + "isUnique": false + }, + "worker_status": { + "name": "worker_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "worker_last_heartbeat_at": { + "name": "worker_last_heartbeat_at", + "columns": [ + "last_heartbeat_at" + ], + "isUnique": false + }, + "worker_last_active_at": { + "name": "worker_last_active_at", + "columns": [ + "last_active_at" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "worker_id": { + "name": "worker_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "worker_token": { + "name": "worker_token", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "worker_id": { + "name": "worker_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "scope": { + "name": "scope", + "type": "enum('client','host','activity')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "token": { + "name": "token", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "revoked_at": { + "name": "revoked_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "worker_token_worker_id": { + "name": "worker_token_worker_id", + "columns": [ + "worker_id" + ], + "isUnique": false + }, + "worker_token_token": { + "name": "worker_token_token", + "columns": [ + "token" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "worker_token_id": { + "name": "worker_token_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "admin_allowlist": { + "name": "admin_allowlist", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "email": { + "name": "email", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "note": { + "name": "note", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "admin_allowlist_email": { + "name": "admin_allowlist_email", + "columns": [ + "email" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "admin_allowlist_id": { + "name": "admin_allowlist_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "rate_limit": { + "name": "rate_limit", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "key": { + "name": "key", + "type": "varchar(512)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "count": { + "name": "count", + "type": "int", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": 0 + }, + "last_request": { + "name": "last_request", + "type": "bigint", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "rate_limit_key": { + "name": "rate_limit_key", + "columns": [ + "key" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "rate_limit_id": { + "name": "rate_limit_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + } + }, + "views": {}, + "_meta": { + "schemas": {}, + "tables": {}, + "columns": {} + }, + "internal": { + "tables": {}, + "indexes": {} + } +} \ No newline at end of file diff --git a/ee/packages/den-db/drizzle/meta/0010_snapshot.json b/ee/packages/den-db/drizzle/meta/0010_snapshot.json new file mode 100644 index 000000000..cacb97337 --- /dev/null +++ b/ee/packages/den-db/drizzle/meta/0010_snapshot.json @@ -0,0 +1,4607 @@ +{ + "version": "5", + "dialect": "mysql", + "id": "3230f1d6-9ce4-41bb-b981-d6516b7ea31a", + "prevId": "138df2c1-5368-4d7c-a257-b0b158a519c2", + "tables": { + "account": { + "name": "account", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "account_id": { + "name": "account_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "provider_id": { + "name": "provider_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "access_token": { + "name": "access_token", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "refresh_token": { + "name": "refresh_token", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "access_token_expires_at": { + "name": "access_token_expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "refresh_token_expires_at": { + "name": "refresh_token_expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "scope": { + "name": "scope", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "id_token": { + "name": "id_token", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "password": { + "name": "password", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "account_user_id": { + "name": "account_user_id", + "columns": [ + "user_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "account_id": { + "name": "account_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "apikey": { + "name": "apikey", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "config_id": { + "name": "config_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'default'" + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "start": { + "name": "start", + "type": "varchar(32)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "prefix": { + "name": "prefix", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "key": { + "name": "key", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "reference_id": { + "name": "reference_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "refill_interval": { + "name": "refill_interval", + "type": "bigint", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "refill_amount": { + "name": "refill_amount", + "type": "int", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_refill_at": { + "name": "last_refill_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "enabled": { + "name": "enabled", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": true + }, + "rate_limit_enabled": { + "name": "rate_limit_enabled", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": true + }, + "rate_limit_time_window": { + "name": "rate_limit_time_window", + "type": "bigint", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "rate_limit_max": { + "name": "rate_limit_max", + "type": "int", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "request_count": { + "name": "request_count", + "type": "int", + "primaryKey": false, + "notNull": false, + "autoincrement": false, + "default": 0 + }, + "remaining": { + "name": "remaining", + "type": "int", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_request": { + "name": "last_request", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + }, + "permissions": { + "name": "permissions", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "metadata": { + "name": "metadata", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "apikey_config_id": { + "name": "apikey_config_id", + "columns": [ + "config_id" + ], + "isUnique": false + }, + "apikey_reference_id": { + "name": "apikey_reference_id", + "columns": [ + "reference_id" + ], + "isUnique": false + }, + "apikey_key": { + "name": "apikey_key", + "columns": [ + "key" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "apikey_id": { + "name": "apikey_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "session": { + "name": "session", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "active_organization_id": { + "name": "active_organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "active_team_id": { + "name": "active_team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "token": { + "name": "token", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "ip_address": { + "name": "ip_address", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "user_agent": { + "name": "user_agent", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "session_token": { + "name": "session_token", + "columns": [ + "token" + ], + "isUnique": true + }, + "session_user_id": { + "name": "session_user_id", + "columns": [ + "user_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "session_id": { + "name": "session_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "user": { + "name": "user", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "email": { + "name": "email", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "email_verified": { + "name": "email_verified", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "image": { + "name": "image", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "user_email": { + "name": "user_email", + "columns": [ + "email" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "user_id": { + "name": "user_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "verification": { + "name": "verification", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "identifier": { + "name": "identifier", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "value": { + "name": "value", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "verification_identifier": { + "name": "verification_identifier", + "columns": [ + "identifier" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "verification_id": { + "name": "verification_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "desktop_handoff_grant": { + "name": "desktop_handoff_grant", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "session_token": { + "name": "session_token", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "consumed_at": { + "name": "consumed_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "desktop_handoff_grant_user_id": { + "name": "desktop_handoff_grant_user_id", + "columns": [ + "user_id" + ], + "isUnique": false + }, + "desktop_handoff_grant_expires_at": { + "name": "desktop_handoff_grant_expires_at", + "columns": [ + "expires_at" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "desktop_handoff_grant_id": { + "name": "desktop_handoff_grant_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "invitation": { + "name": "invitation", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "email": { + "name": "email", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "role": { + "name": "role", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "varchar(32)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'pending'" + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "inviter_id": { + "name": "inviter_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "invitation_organization_id": { + "name": "invitation_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "invitation_email": { + "name": "invitation_email", + "columns": [ + "email" + ], + "isUnique": false + }, + "invitation_status": { + "name": "invitation_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "invitation_team_id": { + "name": "invitation_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "invitation_id": { + "name": "invitation_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "member": { + "name": "member", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "role": { + "name": "role", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'member'" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "member_organization_id": { + "name": "member_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "member_user_id": { + "name": "member_user_id", + "columns": [ + "user_id" + ], + "isUnique": false + }, + "member_organization_user": { + "name": "member_organization_user", + "columns": [ + "organization_id", + "user_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "member_id": { + "name": "member_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "organization_role": { + "name": "organization_role", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "role": { + "name": "role", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "permission": { + "name": "permission", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "organization_role_organization_id": { + "name": "organization_role_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "organization_role_name": { + "name": "organization_role_name", + "columns": [ + "organization_id", + "role" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "organization_role_id": { + "name": "organization_role_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "organization": { + "name": "organization", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "slug": { + "name": "slug", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "logo": { + "name": "logo", + "type": "varchar(2048)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "metadata": { + "name": "metadata", + "type": "json", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "organization_slug": { + "name": "organization_slug", + "columns": [ + "slug" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "organization_id": { + "name": "organization_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "temp_template_sharing": { + "name": "temp_template_sharing", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "creator_member_id": { + "name": "creator_member_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "creator_user_id": { + "name": "creator_user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "template_json": { + "name": "template_json", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "temp_template_sharing_org_id": { + "name": "temp_template_sharing_org_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "temp_template_sharing_creator_member_id": { + "name": "temp_template_sharing_creator_member_id", + "columns": [ + "creator_member_id" + ], + "isUnique": false + }, + "temp_template_sharing_creator_user_id": { + "name": "temp_template_sharing_creator_user_id", + "columns": [ + "creator_user_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "temp_template_sharing_id": { + "name": "temp_template_sharing_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "llm_provider_access": { + "name": "llm_provider_access", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "llm_provider_id": { + "name": "llm_provider_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "llm_provider_access_llm_provider_id": { + "name": "llm_provider_access_llm_provider_id", + "columns": [ + "llm_provider_id" + ], + "isUnique": false + }, + "llm_provider_access_org_membership_id": { + "name": "llm_provider_access_org_membership_id", + "columns": [ + "org_membership_id" + ], + "isUnique": false + }, + "llm_provider_access_team_id": { + "name": "llm_provider_access_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + }, + "llm_provider_access_provider_org_membership": { + "name": "llm_provider_access_provider_org_membership", + "columns": [ + "llm_provider_id", + "org_membership_id" + ], + "isUnique": true + }, + "llm_provider_access_provider_team": { + "name": "llm_provider_access_provider_team", + "columns": [ + "llm_provider_id", + "team_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "llm_provider_access_id": { + "name": "llm_provider_access_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "llm_provider_model": { + "name": "llm_provider_model", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "llm_provider_id": { + "name": "llm_provider_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "model_id": { + "name": "model_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "model_config": { + "name": "model_config", + "type": "json", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "llm_provider_model_llm_provider_id": { + "name": "llm_provider_model_llm_provider_id", + "columns": [ + "llm_provider_id" + ], + "isUnique": false + }, + "llm_provider_model_model_id": { + "name": "llm_provider_model_model_id", + "columns": [ + "model_id" + ], + "isUnique": false + }, + "llm_provider_model_provider_model": { + "name": "llm_provider_model_provider_model", + "columns": [ + "llm_provider_id", + "model_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "llm_provider_model_id": { + "name": "llm_provider_model_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "llm_provider": { + "name": "llm_provider", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "source": { + "name": "source", + "type": "enum('models_dev','custom')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "provider_id": { + "name": "provider_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "provider_config": { + "name": "provider_config", + "type": "json", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "api_key": { + "name": "api_key", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "llm_provider_organization_id": { + "name": "llm_provider_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "llm_provider_created_by_org_membership_id": { + "name": "llm_provider_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + }, + "llm_provider_source": { + "name": "llm_provider_source", + "columns": [ + "source" + ], + "isUnique": false + }, + "llm_provider_provider_id": { + "name": "llm_provider_provider_id", + "columns": [ + "provider_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "llm_provider_id": { + "name": "llm_provider_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "config_object_access_grant": { + "name": "config_object_access_grant", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "config_object_id": { + "name": "config_object_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "org_wide": { + "name": "org_wide", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "role": { + "name": "role", + "type": "enum('viewer','editor','manager')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "removed_at": { + "name": "removed_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "config_object_access_grant_organization_id": { + "name": "config_object_access_grant_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "config_object_access_grant_config_object_id": { + "name": "config_object_access_grant_config_object_id", + "columns": [ + "config_object_id" + ], + "isUnique": false + }, + "config_object_access_grant_org_membership_id": { + "name": "config_object_access_grant_org_membership_id", + "columns": [ + "org_membership_id" + ], + "isUnique": false + }, + "config_object_access_grant_team_id": { + "name": "config_object_access_grant_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + }, + "config_object_access_grant_org_wide": { + "name": "config_object_access_grant_org_wide", + "columns": [ + "org_wide" + ], + "isUnique": false + }, + "config_object_access_grant_object_org_membership": { + "name": "config_object_access_grant_object_org_membership", + "columns": [ + "config_object_id", + "org_membership_id" + ], + "isUnique": true + }, + "config_object_access_grant_object_team": { + "name": "config_object_access_grant_object_team", + "columns": [ + "config_object_id", + "team_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "config_object_access_grant_id": { + "name": "config_object_access_grant_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "config_object": { + "name": "config_object", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "object_type": { + "name": "object_type", + "type": "enum('skill','agent','command','tool','mcp','hook','context','custom')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "source_mode": { + "name": "source_mode", + "type": "enum('cloud','import','connector')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "title": { + "name": "title", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "search_text": { + "name": "search_text", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "current_file_name": { + "name": "current_file_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "current_file_extension": { + "name": "current_file_extension", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "current_relative_path": { + "name": "current_relative_path", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('active','inactive','deleted','archived','ingestion_error')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'active'" + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_instance_id": { + "name": "connector_instance_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + }, + "deleted_at": { + "name": "deleted_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "config_object_organization_id": { + "name": "config_object_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "config_object_type": { + "name": "config_object_type", + "columns": [ + "object_type" + ], + "isUnique": false + }, + "config_object_source_mode": { + "name": "config_object_source_mode", + "columns": [ + "source_mode" + ], + "isUnique": false + }, + "config_object_status": { + "name": "config_object_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "config_object_created_by_org_membership_id": { + "name": "config_object_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + }, + "config_object_connector_instance_id": { + "name": "config_object_connector_instance_id", + "columns": [ + "connector_instance_id" + ], + "isUnique": false + }, + "config_object_current_relative_path": { + "name": "config_object_current_relative_path", + "columns": [ + "current_relative_path" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "config_object_id": { + "name": "config_object_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "config_object_version": { + "name": "config_object_version", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "config_object_id": { + "name": "config_object_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "normalized_payload_json": { + "name": "normalized_payload_json", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "raw_source_text": { + "name": "raw_source_text", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "schema_version": { + "name": "schema_version", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_via": { + "name": "created_via", + "type": "enum('cloud','import','connector','system')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "connector_sync_event_id": { + "name": "connector_sync_event_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "source_revision_ref": { + "name": "source_revision_ref", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "is_deleted_version": { + "name": "is_deleted_version", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "config_object_version_organization_id": { + "name": "config_object_version_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "config_object_version_config_object_id": { + "name": "config_object_version_config_object_id", + "columns": [ + "config_object_id" + ], + "isUnique": false + }, + "config_object_version_created_by_org_membership_id": { + "name": "config_object_version_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + }, + "config_object_version_connector_sync_event_id": { + "name": "config_object_version_connector_sync_event_id", + "columns": [ + "connector_sync_event_id" + ], + "isUnique": false + }, + "config_object_version_source_revision_ref": { + "name": "config_object_version_source_revision_ref", + "columns": [ + "source_revision_ref" + ], + "isUnique": false + }, + "config_object_version_lookup_latest": { + "name": "config_object_version_lookup_latest", + "columns": [ + "config_object_id", + "created_at", + "id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "config_object_version_id": { + "name": "config_object_version_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "connector_account": { + "name": "connector_account", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_type": { + "name": "connector_type", + "type": "enum('github')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "remote_id": { + "name": "remote_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "external_account_ref": { + "name": "external_account_ref", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "display_name": { + "name": "display_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('active','inactive','disconnected','error')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'active'" + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "metadata_json": { + "name": "metadata_json", + "type": "json", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "connector_account_organization_id": { + "name": "connector_account_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "connector_account_created_by_org_membership_id": { + "name": "connector_account_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + }, + "connector_account_connector_type": { + "name": "connector_account_connector_type", + "columns": [ + "connector_type" + ], + "isUnique": false + }, + "connector_account_status": { + "name": "connector_account_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "connector_account_org_type_remote_id": { + "name": "connector_account_org_type_remote_id", + "columns": [ + "organization_id", + "connector_type", + "remote_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "connector_account_id": { + "name": "connector_account_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "connector_instance_access_grant": { + "name": "connector_instance_access_grant", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_instance_id": { + "name": "connector_instance_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "org_wide": { + "name": "org_wide", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "role": { + "name": "role", + "type": "enum('viewer','editor','manager')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "removed_at": { + "name": "removed_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "connector_instance_access_grant_organization_id": { + "name": "connector_instance_access_grant_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "connector_instance_access_grant_instance_id": { + "name": "connector_instance_access_grant_instance_id", + "columns": [ + "connector_instance_id" + ], + "isUnique": false + }, + "connector_instance_access_grant_org_membership_id": { + "name": "connector_instance_access_grant_org_membership_id", + "columns": [ + "org_membership_id" + ], + "isUnique": false + }, + "connector_instance_access_grant_team_id": { + "name": "connector_instance_access_grant_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + }, + "connector_instance_access_grant_org_wide": { + "name": "connector_instance_access_grant_org_wide", + "columns": [ + "org_wide" + ], + "isUnique": false + }, + "connector_instance_access_grant_instance_org_membership": { + "name": "connector_instance_access_grant_instance_org_membership", + "columns": [ + "connector_instance_id", + "org_membership_id" + ], + "isUnique": true + }, + "connector_instance_access_grant_instance_team": { + "name": "connector_instance_access_grant_instance_team", + "columns": [ + "connector_instance_id", + "team_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "connector_instance_access_grant_id": { + "name": "connector_instance_access_grant_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "connector_instance": { + "name": "connector_instance", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_account_id": { + "name": "connector_account_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_type": { + "name": "connector_type", + "type": "enum('github')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "remote_id": { + "name": "remote_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('active','disabled','archived','error')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'active'" + }, + "instance_config_json": { + "name": "instance_config_json", + "type": "json", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_synced_at": { + "name": "last_synced_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_sync_status": { + "name": "last_sync_status", + "type": "enum('pending','queued','running','completed','failed','partial','ignored')", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_sync_cursor": { + "name": "last_sync_cursor", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "connector_instance_organization_id": { + "name": "connector_instance_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "connector_instance_connector_account_id": { + "name": "connector_instance_connector_account_id", + "columns": [ + "connector_account_id" + ], + "isUnique": false + }, + "connector_instance_created_by_org_membership_id": { + "name": "connector_instance_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + }, + "connector_instance_connector_type": { + "name": "connector_instance_connector_type", + "columns": [ + "connector_type" + ], + "isUnique": false + }, + "connector_instance_status": { + "name": "connector_instance_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "connector_instance_org_name": { + "name": "connector_instance_org_name", + "columns": [ + "organization_id", + "name" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "connector_instance_id": { + "name": "connector_instance_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "connector_mapping": { + "name": "connector_mapping", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_instance_id": { + "name": "connector_instance_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_target_id": { + "name": "connector_target_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_type": { + "name": "connector_type", + "type": "enum('github')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "remote_id": { + "name": "remote_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "mapping_kind": { + "name": "mapping_kind", + "type": "enum('path','api','custom')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "selector": { + "name": "selector", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "object_type": { + "name": "object_type", + "type": "enum('skill','agent','command','tool','mcp','hook','context','custom')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "plugin_id": { + "name": "plugin_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "auto_add_to_plugin": { + "name": "auto_add_to_plugin", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "mapping_config_json": { + "name": "mapping_config_json", + "type": "json", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "connector_mapping_organization_id": { + "name": "connector_mapping_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "connector_mapping_connector_instance_id": { + "name": "connector_mapping_connector_instance_id", + "columns": [ + "connector_instance_id" + ], + "isUnique": false + }, + "connector_mapping_connector_target_id": { + "name": "connector_mapping_connector_target_id", + "columns": [ + "connector_target_id" + ], + "isUnique": false + }, + "connector_mapping_object_type": { + "name": "connector_mapping_object_type", + "columns": [ + "object_type" + ], + "isUnique": false + }, + "connector_mapping_plugin_id": { + "name": "connector_mapping_plugin_id", + "columns": [ + "plugin_id" + ], + "isUnique": false + }, + "connector_mapping_target_selector_object_type": { + "name": "connector_mapping_target_selector_object_type", + "columns": [ + "connector_target_id", + "selector", + "object_type" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "connector_mapping_id": { + "name": "connector_mapping_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "connector_source_binding": { + "name": "connector_source_binding", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "config_object_id": { + "name": "config_object_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_instance_id": { + "name": "connector_instance_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_target_id": { + "name": "connector_target_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_mapping_id": { + "name": "connector_mapping_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_type": { + "name": "connector_type", + "type": "enum('github')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "remote_id": { + "name": "remote_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "external_locator": { + "name": "external_locator", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "external_stable_ref": { + "name": "external_stable_ref", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_seen_source_revision_ref": { + "name": "last_seen_source_revision_ref", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('active','inactive','deleted','archived','ingestion_error')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'active'" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + }, + "deleted_at": { + "name": "deleted_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "connector_source_binding_organization_id": { + "name": "connector_source_binding_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "connector_source_binding_config_object_id": { + "name": "connector_source_binding_config_object_id", + "columns": [ + "config_object_id" + ], + "isUnique": false + }, + "connector_source_binding_connector_instance_id": { + "name": "connector_source_binding_connector_instance_id", + "columns": [ + "connector_instance_id" + ], + "isUnique": false + }, + "connector_source_binding_connector_target_id": { + "name": "connector_source_binding_connector_target_id", + "columns": [ + "connector_target_id" + ], + "isUnique": false + }, + "connector_source_binding_connector_mapping_id": { + "name": "connector_source_binding_connector_mapping_id", + "columns": [ + "connector_mapping_id" + ], + "isUnique": false + }, + "connector_source_binding_external_locator": { + "name": "connector_source_binding_external_locator", + "columns": [ + "external_locator" + ], + "isUnique": false + }, + "connector_source_binding_config_object": { + "name": "connector_source_binding_config_object", + "columns": [ + "config_object_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "connector_source_binding_id": { + "name": "connector_source_binding_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "connector_source_tombstone": { + "name": "connector_source_tombstone", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_instance_id": { + "name": "connector_instance_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_target_id": { + "name": "connector_target_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_mapping_id": { + "name": "connector_mapping_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_type": { + "name": "connector_type", + "type": "enum('github')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "remote_id": { + "name": "remote_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "external_locator": { + "name": "external_locator", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "former_config_object_id": { + "name": "former_config_object_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "deleted_in_sync_event_id": { + "name": "deleted_in_sync_event_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "deleted_source_revision_ref": { + "name": "deleted_source_revision_ref", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "connector_source_tombstone_organization_id": { + "name": "connector_source_tombstone_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "connector_source_tombstone_connector_instance_id": { + "name": "connector_source_tombstone_connector_instance_id", + "columns": [ + "connector_instance_id" + ], + "isUnique": false + }, + "connector_source_tombstone_connector_target_id": { + "name": "connector_source_tombstone_connector_target_id", + "columns": [ + "connector_target_id" + ], + "isUnique": false + }, + "connector_source_tombstone_connector_mapping_id": { + "name": "connector_source_tombstone_connector_mapping_id", + "columns": [ + "connector_mapping_id" + ], + "isUnique": false + }, + "connector_source_tombstone_external_locator": { + "name": "connector_source_tombstone_external_locator", + "columns": [ + "external_locator" + ], + "isUnique": false + }, + "connector_source_tombstone_former_config_object_id": { + "name": "connector_source_tombstone_former_config_object_id", + "columns": [ + "former_config_object_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "connector_source_tombstone_id": { + "name": "connector_source_tombstone_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "connector_sync_event": { + "name": "connector_sync_event", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_instance_id": { + "name": "connector_instance_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_target_id": { + "name": "connector_target_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "connector_type": { + "name": "connector_type", + "type": "enum('github')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "remote_id": { + "name": "remote_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "event_type": { + "name": "event_type", + "type": "enum('push','installation','installation_repositories','repository','manual_resync')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "external_event_ref": { + "name": "external_event_ref", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "source_revision_ref": { + "name": "source_revision_ref", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('pending','queued','running','completed','failed','partial','ignored')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'pending'" + }, + "summary_json": { + "name": "summary_json", + "type": "json", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "started_at": { + "name": "started_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "completed_at": { + "name": "completed_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "connector_sync_event_organization_id": { + "name": "connector_sync_event_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "connector_sync_event_connector_instance_id": { + "name": "connector_sync_event_connector_instance_id", + "columns": [ + "connector_instance_id" + ], + "isUnique": false + }, + "connector_sync_event_connector_target_id": { + "name": "connector_sync_event_connector_target_id", + "columns": [ + "connector_target_id" + ], + "isUnique": false + }, + "connector_sync_event_event_type": { + "name": "connector_sync_event_event_type", + "columns": [ + "event_type" + ], + "isUnique": false + }, + "connector_sync_event_status": { + "name": "connector_sync_event_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "connector_sync_event_source_revision_ref": { + "name": "connector_sync_event_source_revision_ref", + "columns": [ + "source_revision_ref" + ], + "isUnique": false + }, + "connector_sync_event_external_event_ref": { + "name": "connector_sync_event_external_event_ref", + "columns": [ + "external_event_ref" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "connector_sync_event_id": { + "name": "connector_sync_event_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "connector_target": { + "name": "connector_target", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_instance_id": { + "name": "connector_instance_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_type": { + "name": "connector_type", + "type": "enum('github')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "remote_id": { + "name": "remote_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "target_kind": { + "name": "target_kind", + "type": "enum('repository_branch')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "external_target_ref": { + "name": "external_target_ref", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "target_config_json": { + "name": "target_config_json", + "type": "json", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "connector_target_organization_id": { + "name": "connector_target_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "connector_target_connector_instance_id": { + "name": "connector_target_connector_instance_id", + "columns": [ + "connector_instance_id" + ], + "isUnique": false + }, + "connector_target_connector_type": { + "name": "connector_target_connector_type", + "columns": [ + "connector_type" + ], + "isUnique": false + }, + "connector_target_target_kind": { + "name": "connector_target_target_kind", + "columns": [ + "target_kind" + ], + "isUnique": false + }, + "connector_target_instance_remote_id": { + "name": "connector_target_instance_remote_id", + "columns": [ + "connector_instance_id", + "remote_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "connector_target_id": { + "name": "connector_target_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "plugin_access_grant": { + "name": "plugin_access_grant", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "plugin_id": { + "name": "plugin_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "org_wide": { + "name": "org_wide", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "role": { + "name": "role", + "type": "enum('viewer','editor','manager')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "removed_at": { + "name": "removed_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "plugin_access_grant_organization_id": { + "name": "plugin_access_grant_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "plugin_access_grant_plugin_id": { + "name": "plugin_access_grant_plugin_id", + "columns": [ + "plugin_id" + ], + "isUnique": false + }, + "plugin_access_grant_org_membership_id": { + "name": "plugin_access_grant_org_membership_id", + "columns": [ + "org_membership_id" + ], + "isUnique": false + }, + "plugin_access_grant_team_id": { + "name": "plugin_access_grant_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + }, + "plugin_access_grant_org_wide": { + "name": "plugin_access_grant_org_wide", + "columns": [ + "org_wide" + ], + "isUnique": false + }, + "plugin_access_grant_plugin_org_membership": { + "name": "plugin_access_grant_plugin_org_membership", + "columns": [ + "plugin_id", + "org_membership_id" + ], + "isUnique": true + }, + "plugin_access_grant_plugin_team": { + "name": "plugin_access_grant_plugin_team", + "columns": [ + "plugin_id", + "team_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "plugin_access_grant_id": { + "name": "plugin_access_grant_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "plugin_config_object": { + "name": "plugin_config_object", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "plugin_id": { + "name": "plugin_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "config_object_id": { + "name": "config_object_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "membership_source": { + "name": "membership_source", + "type": "enum('manual','connector','api','system')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'manual'" + }, + "connector_mapping_id": { + "name": "connector_mapping_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "removed_at": { + "name": "removed_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "plugin_config_object_organization_id": { + "name": "plugin_config_object_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "plugin_config_object_plugin_id": { + "name": "plugin_config_object_plugin_id", + "columns": [ + "plugin_id" + ], + "isUnique": false + }, + "plugin_config_object_config_object_id": { + "name": "plugin_config_object_config_object_id", + "columns": [ + "config_object_id" + ], + "isUnique": false + }, + "plugin_config_object_connector_mapping_id": { + "name": "plugin_config_object_connector_mapping_id", + "columns": [ + "connector_mapping_id" + ], + "isUnique": false + }, + "plugin_config_object_plugin_config_object": { + "name": "plugin_config_object_plugin_config_object", + "columns": [ + "plugin_id", + "config_object_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "plugin_config_object_id": { + "name": "plugin_config_object_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "plugin": { + "name": "plugin", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('active','inactive','deleted','archived')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'active'" + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + }, + "deleted_at": { + "name": "deleted_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "plugin_organization_id": { + "name": "plugin_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "plugin_created_by_org_membership_id": { + "name": "plugin_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + }, + "plugin_status": { + "name": "plugin_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "plugin_name": { + "name": "plugin_name", + "columns": [ + "name" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "plugin_id": { + "name": "plugin_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "skill_hub_member": { + "name": "skill_hub_member", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "skill_hub_id": { + "name": "skill_hub_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "skill_hub_member_skill_hub_id": { + "name": "skill_hub_member_skill_hub_id", + "columns": [ + "skill_hub_id" + ], + "isUnique": false + }, + "skill_hub_member_org_membership_id": { + "name": "skill_hub_member_org_membership_id", + "columns": [ + "org_membership_id" + ], + "isUnique": false + }, + "skill_hub_member_team_id": { + "name": "skill_hub_member_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + }, + "skill_hub_member_hub_org_membership": { + "name": "skill_hub_member_hub_org_membership", + "columns": [ + "skill_hub_id", + "org_membership_id" + ], + "isUnique": true + }, + "skill_hub_member_hub_team": { + "name": "skill_hub_member_hub_team", + "columns": [ + "skill_hub_id", + "team_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "skill_hub_member_id": { + "name": "skill_hub_member_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "skill_hub_skill": { + "name": "skill_hub_skill", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "skill_hub_id": { + "name": "skill_hub_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "skill_id": { + "name": "skill_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "skill_hub_skill_skill_hub_id": { + "name": "skill_hub_skill_skill_hub_id", + "columns": [ + "skill_hub_id" + ], + "isUnique": false + }, + "skill_hub_skill_skill_id": { + "name": "skill_hub_skill_skill_id", + "columns": [ + "skill_id" + ], + "isUnique": false + }, + "skill_hub_skill_hub_skill": { + "name": "skill_hub_skill_hub_skill", + "columns": [ + "skill_hub_id", + "skill_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "skill_hub_skill_id": { + "name": "skill_hub_skill_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "skill_hub": { + "name": "skill_hub", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "skill_hub_organization_id": { + "name": "skill_hub_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "skill_hub_created_by_org_membership_id": { + "name": "skill_hub_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "skill_hub_id": { + "name": "skill_hub_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "skill": { + "name": "skill", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "title": { + "name": "title", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "skill_text": { + "name": "skill_text", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "shared": { + "name": "shared", + "type": "enum('org','public')", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "skill_organization_id": { + "name": "skill_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "skill_created_by_org_membership_id": { + "name": "skill_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + }, + "skill_shared": { + "name": "skill_shared", + "columns": [ + "shared" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "skill_id": { + "name": "skill_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "team_member": { + "name": "team_member", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "team_member_team_id": { + "name": "team_member_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + }, + "team_member_org_membership_id": { + "name": "team_member_org_membership_id", + "columns": [ + "org_membership_id" + ], + "isUnique": false + }, + "team_member_team_org_membership": { + "name": "team_member_team_org_membership", + "columns": [ + "team_id", + "org_membership_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "team_member_id": { + "name": "team_member_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "team": { + "name": "team", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "team_organization_id": { + "name": "team_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "team_organization_name": { + "name": "team_organization_name", + "columns": [ + "organization_id", + "name" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "team_id": { + "name": "team_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "audit_event": { + "name": "audit_event", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_id": { + "name": "org_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "worker_id": { + "name": "worker_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "actor_user_id": { + "name": "actor_user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "action": { + "name": "action", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "payload": { + "name": "payload", + "type": "json", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "audit_event_org_id": { + "name": "audit_event_org_id", + "columns": [ + "org_id" + ], + "isUnique": false + }, + "audit_event_worker_id": { + "name": "audit_event_worker_id", + "columns": [ + "worker_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "audit_event_id": { + "name": "audit_event_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "daytona_sandbox": { + "name": "daytona_sandbox", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "worker_id": { + "name": "worker_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "sandbox_id": { + "name": "sandbox_id", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "workspace_volume_id": { + "name": "workspace_volume_id", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "data_volume_id": { + "name": "data_volume_id", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "signed_preview_url": { + "name": "signed_preview_url", + "type": "varchar(2048)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "signed_preview_url_expires_at": { + "name": "signed_preview_url_expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "region": { + "name": "region", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "daytona_sandbox_worker_id": { + "name": "daytona_sandbox_worker_id", + "columns": [ + "worker_id" + ], + "isUnique": true + }, + "daytona_sandbox_sandbox_id": { + "name": "daytona_sandbox_sandbox_id", + "columns": [ + "sandbox_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "daytona_sandbox_id": { + "name": "daytona_sandbox_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "worker_bundle": { + "name": "worker_bundle", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "worker_id": { + "name": "worker_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "storage_url": { + "name": "storage_url", + "type": "varchar(2048)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "worker_bundle_worker_id": { + "name": "worker_bundle_worker_id", + "columns": [ + "worker_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "worker_bundle_id": { + "name": "worker_bundle_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "worker_instance": { + "name": "worker_instance", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "worker_id": { + "name": "worker_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "provider": { + "name": "provider", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "region": { + "name": "region", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "url": { + "name": "url", + "type": "varchar(2048)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('provisioning','healthy','failed','stopped')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "worker_instance_worker_id": { + "name": "worker_instance_worker_id", + "columns": [ + "worker_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "worker_instance_id": { + "name": "worker_instance_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "worker": { + "name": "worker", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_id": { + "name": "org_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_user_id": { + "name": "created_by_user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "varchar(1024)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "destination": { + "name": "destination", + "type": "enum('local','cloud')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('provisioning','healthy','failed','stopped')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "image_version": { + "name": "image_version", + "type": "varchar(128)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "workspace_path": { + "name": "workspace_path", + "type": "varchar(1024)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "sandbox_backend": { + "name": "sandbox_backend", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_heartbeat_at": { + "name": "last_heartbeat_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_active_at": { + "name": "last_active_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "worker_org_id": { + "name": "worker_org_id", + "columns": [ + "org_id" + ], + "isUnique": false + }, + "worker_created_by_user_id": { + "name": "worker_created_by_user_id", + "columns": [ + "created_by_user_id" + ], + "isUnique": false + }, + "worker_status": { + "name": "worker_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "worker_last_heartbeat_at": { + "name": "worker_last_heartbeat_at", + "columns": [ + "last_heartbeat_at" + ], + "isUnique": false + }, + "worker_last_active_at": { + "name": "worker_last_active_at", + "columns": [ + "last_active_at" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "worker_id": { + "name": "worker_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "worker_token": { + "name": "worker_token", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "worker_id": { + "name": "worker_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "scope": { + "name": "scope", + "type": "enum('client','host','activity')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "token": { + "name": "token", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "revoked_at": { + "name": "revoked_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "worker_token_worker_id": { + "name": "worker_token_worker_id", + "columns": [ + "worker_id" + ], + "isUnique": false + }, + "worker_token_token": { + "name": "worker_token_token", + "columns": [ + "token" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "worker_token_id": { + "name": "worker_token_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "admin_allowlist": { + "name": "admin_allowlist", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "email": { + "name": "email", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "note": { + "name": "note", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "admin_allowlist_email": { + "name": "admin_allowlist_email", + "columns": [ + "email" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "admin_allowlist_id": { + "name": "admin_allowlist_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "rate_limit": { + "name": "rate_limit", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "key": { + "name": "key", + "type": "varchar(512)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "count": { + "name": "count", + "type": "int", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": 0 + }, + "last_request": { + "name": "last_request", + "type": "bigint", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "rate_limit_key": { + "name": "rate_limit_key", + "columns": [ + "key" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "rate_limit_id": { + "name": "rate_limit_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + } + }, + "views": {}, + "_meta": { + "schemas": {}, + "tables": {}, + "columns": {} + }, + "internal": { + "tables": {}, + "indexes": {} + } +} \ No newline at end of file diff --git a/ee/packages/den-db/drizzle/meta/0011_snapshot.json b/ee/packages/den-db/drizzle/meta/0011_snapshot.json new file mode 100644 index 000000000..1e52e2ded --- /dev/null +++ b/ee/packages/den-db/drizzle/meta/0011_snapshot.json @@ -0,0 +1,4965 @@ +{ + "version": "5", + "dialect": "mysql", + "id": "59eb2ccf-a3a2-4fb1-acdf-d059fa85eb36", + "prevId": "3230f1d6-9ce4-41bb-b981-d6516b7ea31a", + "tables": { + "account": { + "name": "account", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "account_id": { + "name": "account_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "provider_id": { + "name": "provider_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "access_token": { + "name": "access_token", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "refresh_token": { + "name": "refresh_token", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "access_token_expires_at": { + "name": "access_token_expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "refresh_token_expires_at": { + "name": "refresh_token_expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "scope": { + "name": "scope", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "id_token": { + "name": "id_token", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "password": { + "name": "password", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "account_user_id": { + "name": "account_user_id", + "columns": [ + "user_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "account_id": { + "name": "account_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "apikey": { + "name": "apikey", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "config_id": { + "name": "config_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'default'" + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "start": { + "name": "start", + "type": "varchar(32)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "prefix": { + "name": "prefix", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "key": { + "name": "key", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "reference_id": { + "name": "reference_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "refill_interval": { + "name": "refill_interval", + "type": "bigint", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "refill_amount": { + "name": "refill_amount", + "type": "int", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_refill_at": { + "name": "last_refill_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "enabled": { + "name": "enabled", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": true + }, + "rate_limit_enabled": { + "name": "rate_limit_enabled", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": true + }, + "rate_limit_time_window": { + "name": "rate_limit_time_window", + "type": "bigint", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "rate_limit_max": { + "name": "rate_limit_max", + "type": "int", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "request_count": { + "name": "request_count", + "type": "int", + "primaryKey": false, + "notNull": false, + "autoincrement": false, + "default": 0 + }, + "remaining": { + "name": "remaining", + "type": "int", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_request": { + "name": "last_request", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + }, + "permissions": { + "name": "permissions", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "metadata": { + "name": "metadata", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "apikey_config_id": { + "name": "apikey_config_id", + "columns": [ + "config_id" + ], + "isUnique": false + }, + "apikey_reference_id": { + "name": "apikey_reference_id", + "columns": [ + "reference_id" + ], + "isUnique": false + }, + "apikey_key": { + "name": "apikey_key", + "columns": [ + "key" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "apikey_id": { + "name": "apikey_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "session": { + "name": "session", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "active_organization_id": { + "name": "active_organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "active_team_id": { + "name": "active_team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "token": { + "name": "token", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "ip_address": { + "name": "ip_address", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "user_agent": { + "name": "user_agent", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "session_token": { + "name": "session_token", + "columns": [ + "token" + ], + "isUnique": true + }, + "session_user_id": { + "name": "session_user_id", + "columns": [ + "user_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "session_id": { + "name": "session_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "user": { + "name": "user", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "email": { + "name": "email", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "email_verified": { + "name": "email_verified", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "image": { + "name": "image", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "user_email": { + "name": "user_email", + "columns": [ + "email" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "user_id": { + "name": "user_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "verification": { + "name": "verification", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "identifier": { + "name": "identifier", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "value": { + "name": "value", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "verification_identifier": { + "name": "verification_identifier", + "columns": [ + "identifier" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "verification_id": { + "name": "verification_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "desktop_handoff_grant": { + "name": "desktop_handoff_grant", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "session_token": { + "name": "session_token", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "consumed_at": { + "name": "consumed_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "desktop_handoff_grant_user_id": { + "name": "desktop_handoff_grant_user_id", + "columns": [ + "user_id" + ], + "isUnique": false + }, + "desktop_handoff_grant_expires_at": { + "name": "desktop_handoff_grant_expires_at", + "columns": [ + "expires_at" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "desktop_handoff_grant_id": { + "name": "desktop_handoff_grant_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "invitation": { + "name": "invitation", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "email": { + "name": "email", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "role": { + "name": "role", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "varchar(32)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'pending'" + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "inviter_id": { + "name": "inviter_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "invitation_organization_id": { + "name": "invitation_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "invitation_email": { + "name": "invitation_email", + "columns": [ + "email" + ], + "isUnique": false + }, + "invitation_status": { + "name": "invitation_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "invitation_team_id": { + "name": "invitation_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "invitation_id": { + "name": "invitation_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "member": { + "name": "member", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "role": { + "name": "role", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'member'" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "member_organization_id": { + "name": "member_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "member_user_id": { + "name": "member_user_id", + "columns": [ + "user_id" + ], + "isUnique": false + }, + "member_organization_user": { + "name": "member_organization_user", + "columns": [ + "organization_id", + "user_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "member_id": { + "name": "member_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "organization_role": { + "name": "organization_role", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "role": { + "name": "role", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "permission": { + "name": "permission", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "organization_role_organization_id": { + "name": "organization_role_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "organization_role_name": { + "name": "organization_role_name", + "columns": [ + "organization_id", + "role" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "organization_role_id": { + "name": "organization_role_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "organization": { + "name": "organization", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "slug": { + "name": "slug", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "logo": { + "name": "logo", + "type": "varchar(2048)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "metadata": { + "name": "metadata", + "type": "json", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "organization_slug": { + "name": "organization_slug", + "columns": [ + "slug" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "organization_id": { + "name": "organization_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "temp_template_sharing": { + "name": "temp_template_sharing", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "creator_member_id": { + "name": "creator_member_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "creator_user_id": { + "name": "creator_user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "template_json": { + "name": "template_json", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "temp_template_sharing_org_id": { + "name": "temp_template_sharing_org_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "temp_template_sharing_creator_member_id": { + "name": "temp_template_sharing_creator_member_id", + "columns": [ + "creator_member_id" + ], + "isUnique": false + }, + "temp_template_sharing_creator_user_id": { + "name": "temp_template_sharing_creator_user_id", + "columns": [ + "creator_user_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "temp_template_sharing_id": { + "name": "temp_template_sharing_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "llm_provider_access": { + "name": "llm_provider_access", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "llm_provider_id": { + "name": "llm_provider_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "llm_provider_access_llm_provider_id": { + "name": "llm_provider_access_llm_provider_id", + "columns": [ + "llm_provider_id" + ], + "isUnique": false + }, + "llm_provider_access_org_membership_id": { + "name": "llm_provider_access_org_membership_id", + "columns": [ + "org_membership_id" + ], + "isUnique": false + }, + "llm_provider_access_team_id": { + "name": "llm_provider_access_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + }, + "llm_provider_access_provider_org_membership": { + "name": "llm_provider_access_provider_org_membership", + "columns": [ + "llm_provider_id", + "org_membership_id" + ], + "isUnique": true + }, + "llm_provider_access_provider_team": { + "name": "llm_provider_access_provider_team", + "columns": [ + "llm_provider_id", + "team_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "llm_provider_access_id": { + "name": "llm_provider_access_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "llm_provider_model": { + "name": "llm_provider_model", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "llm_provider_id": { + "name": "llm_provider_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "model_id": { + "name": "model_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "model_config": { + "name": "model_config", + "type": "json", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "llm_provider_model_llm_provider_id": { + "name": "llm_provider_model_llm_provider_id", + "columns": [ + "llm_provider_id" + ], + "isUnique": false + }, + "llm_provider_model_model_id": { + "name": "llm_provider_model_model_id", + "columns": [ + "model_id" + ], + "isUnique": false + }, + "llm_provider_model_provider_model": { + "name": "llm_provider_model_provider_model", + "columns": [ + "llm_provider_id", + "model_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "llm_provider_model_id": { + "name": "llm_provider_model_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "llm_provider": { + "name": "llm_provider", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "source": { + "name": "source", + "type": "enum('models_dev','custom')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "provider_id": { + "name": "provider_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "provider_config": { + "name": "provider_config", + "type": "json", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "api_key": { + "name": "api_key", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "llm_provider_organization_id": { + "name": "llm_provider_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "llm_provider_created_by_org_membership_id": { + "name": "llm_provider_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + }, + "llm_provider_source": { + "name": "llm_provider_source", + "columns": [ + "source" + ], + "isUnique": false + }, + "llm_provider_provider_id": { + "name": "llm_provider_provider_id", + "columns": [ + "provider_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "llm_provider_id": { + "name": "llm_provider_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "config_object_access_grant": { + "name": "config_object_access_grant", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "config_object_id": { + "name": "config_object_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "org_wide": { + "name": "org_wide", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "role": { + "name": "role", + "type": "enum('viewer','editor','manager')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "removed_at": { + "name": "removed_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "config_object_access_grant_organization_id": { + "name": "config_object_access_grant_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "config_object_access_grant_config_object_id": { + "name": "config_object_access_grant_config_object_id", + "columns": [ + "config_object_id" + ], + "isUnique": false + }, + "config_object_access_grant_org_membership_id": { + "name": "config_object_access_grant_org_membership_id", + "columns": [ + "org_membership_id" + ], + "isUnique": false + }, + "config_object_access_grant_team_id": { + "name": "config_object_access_grant_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + }, + "config_object_access_grant_org_wide": { + "name": "config_object_access_grant_org_wide", + "columns": [ + "org_wide" + ], + "isUnique": false + }, + "config_object_access_grant_object_org_membership": { + "name": "config_object_access_grant_object_org_membership", + "columns": [ + "config_object_id", + "org_membership_id" + ], + "isUnique": true + }, + "config_object_access_grant_object_team": { + "name": "config_object_access_grant_object_team", + "columns": [ + "config_object_id", + "team_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "config_object_access_grant_id": { + "name": "config_object_access_grant_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "config_object": { + "name": "config_object", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "object_type": { + "name": "object_type", + "type": "enum('skill','agent','command','tool','mcp','hook','context','custom')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "source_mode": { + "name": "source_mode", + "type": "enum('cloud','import','connector')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "title": { + "name": "title", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "search_text": { + "name": "search_text", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "current_file_name": { + "name": "current_file_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "current_file_extension": { + "name": "current_file_extension", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "current_relative_path": { + "name": "current_relative_path", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('active','inactive','deleted','archived','ingestion_error')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'active'" + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_instance_id": { + "name": "connector_instance_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + }, + "deleted_at": { + "name": "deleted_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "config_object_organization_id": { + "name": "config_object_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "config_object_type": { + "name": "config_object_type", + "columns": [ + "object_type" + ], + "isUnique": false + }, + "config_object_source_mode": { + "name": "config_object_source_mode", + "columns": [ + "source_mode" + ], + "isUnique": false + }, + "config_object_status": { + "name": "config_object_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "config_object_created_by_org_membership_id": { + "name": "config_object_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + }, + "config_object_connector_instance_id": { + "name": "config_object_connector_instance_id", + "columns": [ + "connector_instance_id" + ], + "isUnique": false + }, + "config_object_current_relative_path": { + "name": "config_object_current_relative_path", + "columns": [ + "current_relative_path" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "config_object_id": { + "name": "config_object_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "config_object_version": { + "name": "config_object_version", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "config_object_id": { + "name": "config_object_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "normalized_payload_json": { + "name": "normalized_payload_json", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "raw_source_text": { + "name": "raw_source_text", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "schema_version": { + "name": "schema_version", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_via": { + "name": "created_via", + "type": "enum('cloud','import','connector','system')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "connector_sync_event_id": { + "name": "connector_sync_event_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "source_revision_ref": { + "name": "source_revision_ref", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "is_deleted_version": { + "name": "is_deleted_version", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "config_object_version_organization_id": { + "name": "config_object_version_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "config_object_version_config_object_id": { + "name": "config_object_version_config_object_id", + "columns": [ + "config_object_id" + ], + "isUnique": false + }, + "config_object_version_created_by_org_membership_id": { + "name": "config_object_version_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + }, + "config_object_version_connector_sync_event_id": { + "name": "config_object_version_connector_sync_event_id", + "columns": [ + "connector_sync_event_id" + ], + "isUnique": false + }, + "config_object_version_source_revision_ref": { + "name": "config_object_version_source_revision_ref", + "columns": [ + "source_revision_ref" + ], + "isUnique": false + }, + "config_object_version_lookup_latest": { + "name": "config_object_version_lookup_latest", + "columns": [ + "config_object_id", + "created_at", + "id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "config_object_version_id": { + "name": "config_object_version_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "connector_account": { + "name": "connector_account", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_type": { + "name": "connector_type", + "type": "enum('github')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "remote_id": { + "name": "remote_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "external_account_ref": { + "name": "external_account_ref", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "display_name": { + "name": "display_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('active','inactive','disconnected','error')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'active'" + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "metadata_json": { + "name": "metadata_json", + "type": "json", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "connector_account_organization_id": { + "name": "connector_account_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "connector_account_created_by_org_membership_id": { + "name": "connector_account_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + }, + "connector_account_connector_type": { + "name": "connector_account_connector_type", + "columns": [ + "connector_type" + ], + "isUnique": false + }, + "connector_account_status": { + "name": "connector_account_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "connector_account_org_type_remote_id": { + "name": "connector_account_org_type_remote_id", + "columns": [ + "organization_id", + "connector_type", + "remote_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "connector_account_id": { + "name": "connector_account_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "connector_instance_access_grant": { + "name": "connector_instance_access_grant", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_instance_id": { + "name": "connector_instance_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "org_wide": { + "name": "org_wide", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "role": { + "name": "role", + "type": "enum('viewer','editor','manager')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "removed_at": { + "name": "removed_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "connector_instance_access_grant_organization_id": { + "name": "connector_instance_access_grant_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "connector_instance_access_grant_instance_id": { + "name": "connector_instance_access_grant_instance_id", + "columns": [ + "connector_instance_id" + ], + "isUnique": false + }, + "connector_instance_access_grant_org_membership_id": { + "name": "connector_instance_access_grant_org_membership_id", + "columns": [ + "org_membership_id" + ], + "isUnique": false + }, + "connector_instance_access_grant_team_id": { + "name": "connector_instance_access_grant_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + }, + "connector_instance_access_grant_org_wide": { + "name": "connector_instance_access_grant_org_wide", + "columns": [ + "org_wide" + ], + "isUnique": false + }, + "connector_instance_access_grant_instance_org_membership": { + "name": "connector_instance_access_grant_instance_org_membership", + "columns": [ + "connector_instance_id", + "org_membership_id" + ], + "isUnique": true + }, + "connector_instance_access_grant_instance_team": { + "name": "connector_instance_access_grant_instance_team", + "columns": [ + "connector_instance_id", + "team_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "connector_instance_access_grant_id": { + "name": "connector_instance_access_grant_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "connector_instance": { + "name": "connector_instance", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_account_id": { + "name": "connector_account_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_type": { + "name": "connector_type", + "type": "enum('github')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "remote_id": { + "name": "remote_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('active','disabled','archived','error')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'active'" + }, + "instance_config_json": { + "name": "instance_config_json", + "type": "json", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_synced_at": { + "name": "last_synced_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_sync_status": { + "name": "last_sync_status", + "type": "enum('pending','queued','running','completed','failed','partial','ignored')", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_sync_cursor": { + "name": "last_sync_cursor", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "connector_instance_organization_id": { + "name": "connector_instance_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "connector_instance_connector_account_id": { + "name": "connector_instance_connector_account_id", + "columns": [ + "connector_account_id" + ], + "isUnique": false + }, + "connector_instance_created_by_org_membership_id": { + "name": "connector_instance_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + }, + "connector_instance_connector_type": { + "name": "connector_instance_connector_type", + "columns": [ + "connector_type" + ], + "isUnique": false + }, + "connector_instance_status": { + "name": "connector_instance_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "connector_instance_org_name": { + "name": "connector_instance_org_name", + "columns": [ + "organization_id", + "name" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "connector_instance_id": { + "name": "connector_instance_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "connector_mapping": { + "name": "connector_mapping", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_instance_id": { + "name": "connector_instance_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_target_id": { + "name": "connector_target_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_type": { + "name": "connector_type", + "type": "enum('github')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "remote_id": { + "name": "remote_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "mapping_kind": { + "name": "mapping_kind", + "type": "enum('path','api','custom')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "selector": { + "name": "selector", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "object_type": { + "name": "object_type", + "type": "enum('skill','agent','command','tool','mcp','hook','context','custom')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "plugin_id": { + "name": "plugin_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "auto_add_to_plugin": { + "name": "auto_add_to_plugin", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "mapping_config_json": { + "name": "mapping_config_json", + "type": "json", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "connector_mapping_organization_id": { + "name": "connector_mapping_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "connector_mapping_connector_instance_id": { + "name": "connector_mapping_connector_instance_id", + "columns": [ + "connector_instance_id" + ], + "isUnique": false + }, + "connector_mapping_connector_target_id": { + "name": "connector_mapping_connector_target_id", + "columns": [ + "connector_target_id" + ], + "isUnique": false + }, + "connector_mapping_object_type": { + "name": "connector_mapping_object_type", + "columns": [ + "object_type" + ], + "isUnique": false + }, + "connector_mapping_plugin_id": { + "name": "connector_mapping_plugin_id", + "columns": [ + "plugin_id" + ], + "isUnique": false + }, + "connector_mapping_target_selector_object_type": { + "name": "connector_mapping_target_selector_object_type", + "columns": [ + "connector_target_id", + "selector", + "object_type" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "connector_mapping_id": { + "name": "connector_mapping_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "connector_source_binding": { + "name": "connector_source_binding", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "config_object_id": { + "name": "config_object_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_instance_id": { + "name": "connector_instance_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_target_id": { + "name": "connector_target_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_mapping_id": { + "name": "connector_mapping_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_type": { + "name": "connector_type", + "type": "enum('github')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "remote_id": { + "name": "remote_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "external_locator": { + "name": "external_locator", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "external_stable_ref": { + "name": "external_stable_ref", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_seen_source_revision_ref": { + "name": "last_seen_source_revision_ref", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('active','inactive','deleted','archived','ingestion_error')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'active'" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + }, + "deleted_at": { + "name": "deleted_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "connector_source_binding_organization_id": { + "name": "connector_source_binding_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "connector_source_binding_config_object_id": { + "name": "connector_source_binding_config_object_id", + "columns": [ + "config_object_id" + ], + "isUnique": false + }, + "connector_source_binding_connector_instance_id": { + "name": "connector_source_binding_connector_instance_id", + "columns": [ + "connector_instance_id" + ], + "isUnique": false + }, + "connector_source_binding_connector_target_id": { + "name": "connector_source_binding_connector_target_id", + "columns": [ + "connector_target_id" + ], + "isUnique": false + }, + "connector_source_binding_connector_mapping_id": { + "name": "connector_source_binding_connector_mapping_id", + "columns": [ + "connector_mapping_id" + ], + "isUnique": false + }, + "connector_source_binding_external_locator": { + "name": "connector_source_binding_external_locator", + "columns": [ + "external_locator" + ], + "isUnique": false + }, + "connector_source_binding_config_object": { + "name": "connector_source_binding_config_object", + "columns": [ + "config_object_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "connector_source_binding_id": { + "name": "connector_source_binding_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "connector_source_tombstone": { + "name": "connector_source_tombstone", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_instance_id": { + "name": "connector_instance_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_target_id": { + "name": "connector_target_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_mapping_id": { + "name": "connector_mapping_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_type": { + "name": "connector_type", + "type": "enum('github')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "remote_id": { + "name": "remote_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "external_locator": { + "name": "external_locator", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "former_config_object_id": { + "name": "former_config_object_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "deleted_in_sync_event_id": { + "name": "deleted_in_sync_event_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "deleted_source_revision_ref": { + "name": "deleted_source_revision_ref", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "connector_source_tombstone_organization_id": { + "name": "connector_source_tombstone_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "connector_source_tombstone_connector_instance_id": { + "name": "connector_source_tombstone_connector_instance_id", + "columns": [ + "connector_instance_id" + ], + "isUnique": false + }, + "connector_source_tombstone_connector_target_id": { + "name": "connector_source_tombstone_connector_target_id", + "columns": [ + "connector_target_id" + ], + "isUnique": false + }, + "connector_source_tombstone_connector_mapping_id": { + "name": "connector_source_tombstone_connector_mapping_id", + "columns": [ + "connector_mapping_id" + ], + "isUnique": false + }, + "connector_source_tombstone_external_locator": { + "name": "connector_source_tombstone_external_locator", + "columns": [ + "external_locator" + ], + "isUnique": false + }, + "connector_source_tombstone_former_config_object_id": { + "name": "connector_source_tombstone_former_config_object_id", + "columns": [ + "former_config_object_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "connector_source_tombstone_id": { + "name": "connector_source_tombstone_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "connector_sync_event": { + "name": "connector_sync_event", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_instance_id": { + "name": "connector_instance_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_target_id": { + "name": "connector_target_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "connector_type": { + "name": "connector_type", + "type": "enum('github')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "remote_id": { + "name": "remote_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "event_type": { + "name": "event_type", + "type": "enum('push','installation','installation_repositories','repository','manual_resync')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "external_event_ref": { + "name": "external_event_ref", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "source_revision_ref": { + "name": "source_revision_ref", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('pending','queued','running','completed','failed','partial','ignored')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'pending'" + }, + "summary_json": { + "name": "summary_json", + "type": "json", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "started_at": { + "name": "started_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "completed_at": { + "name": "completed_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "connector_sync_event_organization_id": { + "name": "connector_sync_event_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "connector_sync_event_connector_instance_id": { + "name": "connector_sync_event_connector_instance_id", + "columns": [ + "connector_instance_id" + ], + "isUnique": false + }, + "connector_sync_event_connector_target_id": { + "name": "connector_sync_event_connector_target_id", + "columns": [ + "connector_target_id" + ], + "isUnique": false + }, + "connector_sync_event_event_type": { + "name": "connector_sync_event_event_type", + "columns": [ + "event_type" + ], + "isUnique": false + }, + "connector_sync_event_status": { + "name": "connector_sync_event_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "connector_sync_event_source_revision_ref": { + "name": "connector_sync_event_source_revision_ref", + "columns": [ + "source_revision_ref" + ], + "isUnique": false + }, + "connector_sync_event_external_event_ref": { + "name": "connector_sync_event_external_event_ref", + "columns": [ + "external_event_ref" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "connector_sync_event_id": { + "name": "connector_sync_event_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "connector_target": { + "name": "connector_target", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_instance_id": { + "name": "connector_instance_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_type": { + "name": "connector_type", + "type": "enum('github')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "remote_id": { + "name": "remote_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "target_kind": { + "name": "target_kind", + "type": "enum('repository_branch')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "external_target_ref": { + "name": "external_target_ref", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "target_config_json": { + "name": "target_config_json", + "type": "json", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "connector_target_organization_id": { + "name": "connector_target_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "connector_target_connector_instance_id": { + "name": "connector_target_connector_instance_id", + "columns": [ + "connector_instance_id" + ], + "isUnique": false + }, + "connector_target_connector_type": { + "name": "connector_target_connector_type", + "columns": [ + "connector_type" + ], + "isUnique": false + }, + "connector_target_target_kind": { + "name": "connector_target_target_kind", + "columns": [ + "target_kind" + ], + "isUnique": false + }, + "connector_target_instance_remote_id": { + "name": "connector_target_instance_remote_id", + "columns": [ + "connector_instance_id", + "remote_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "connector_target_id": { + "name": "connector_target_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "marketplace_access_grant": { + "name": "marketplace_access_grant", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "marketplace_id": { + "name": "marketplace_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "org_wide": { + "name": "org_wide", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "role": { + "name": "role", + "type": "enum('viewer','editor','manager')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "removed_at": { + "name": "removed_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "marketplace_access_grant_organization_id": { + "name": "marketplace_access_grant_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "marketplace_access_grant_marketplace_id": { + "name": "marketplace_access_grant_marketplace_id", + "columns": [ + "marketplace_id" + ], + "isUnique": false + }, + "marketplace_access_grant_org_membership_id": { + "name": "marketplace_access_grant_org_membership_id", + "columns": [ + "org_membership_id" + ], + "isUnique": false + }, + "marketplace_access_grant_team_id": { + "name": "marketplace_access_grant_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + }, + "marketplace_access_grant_org_wide": { + "name": "marketplace_access_grant_org_wide", + "columns": [ + "org_wide" + ], + "isUnique": false + }, + "marketplace_access_grant_marketplace_org_membership": { + "name": "marketplace_access_grant_marketplace_org_membership", + "columns": [ + "marketplace_id", + "org_membership_id" + ], + "isUnique": true + }, + "marketplace_access_grant_marketplace_team": { + "name": "marketplace_access_grant_marketplace_team", + "columns": [ + "marketplace_id", + "team_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "marketplace_access_grant_id": { + "name": "marketplace_access_grant_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "marketplace_plugin": { + "name": "marketplace_plugin", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "marketplace_id": { + "name": "marketplace_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "plugin_id": { + "name": "plugin_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "membership_source": { + "name": "membership_source", + "type": "enum('manual','connector','api','system')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'manual'" + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "removed_at": { + "name": "removed_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "marketplace_plugin_organization_id": { + "name": "marketplace_plugin_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "marketplace_plugin_marketplace_id": { + "name": "marketplace_plugin_marketplace_id", + "columns": [ + "marketplace_id" + ], + "isUnique": false + }, + "marketplace_plugin_plugin_id": { + "name": "marketplace_plugin_plugin_id", + "columns": [ + "plugin_id" + ], + "isUnique": false + }, + "marketplace_plugin_marketplace_plugin": { + "name": "marketplace_plugin_marketplace_plugin", + "columns": [ + "marketplace_id", + "plugin_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "marketplace_plugin_id": { + "name": "marketplace_plugin_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "marketplace": { + "name": "marketplace", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('active','inactive','deleted','archived')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'active'" + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + }, + "deleted_at": { + "name": "deleted_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "marketplace_organization_id": { + "name": "marketplace_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "marketplace_created_by_org_membership_id": { + "name": "marketplace_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + }, + "marketplace_status": { + "name": "marketplace_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "marketplace_name": { + "name": "marketplace_name", + "columns": [ + "name" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "marketplace_id": { + "name": "marketplace_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "plugin_access_grant": { + "name": "plugin_access_grant", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "plugin_id": { + "name": "plugin_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "org_wide": { + "name": "org_wide", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "role": { + "name": "role", + "type": "enum('viewer','editor','manager')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "removed_at": { + "name": "removed_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "plugin_access_grant_organization_id": { + "name": "plugin_access_grant_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "plugin_access_grant_plugin_id": { + "name": "plugin_access_grant_plugin_id", + "columns": [ + "plugin_id" + ], + "isUnique": false + }, + "plugin_access_grant_org_membership_id": { + "name": "plugin_access_grant_org_membership_id", + "columns": [ + "org_membership_id" + ], + "isUnique": false + }, + "plugin_access_grant_team_id": { + "name": "plugin_access_grant_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + }, + "plugin_access_grant_org_wide": { + "name": "plugin_access_grant_org_wide", + "columns": [ + "org_wide" + ], + "isUnique": false + }, + "plugin_access_grant_plugin_org_membership": { + "name": "plugin_access_grant_plugin_org_membership", + "columns": [ + "plugin_id", + "org_membership_id" + ], + "isUnique": true + }, + "plugin_access_grant_plugin_team": { + "name": "plugin_access_grant_plugin_team", + "columns": [ + "plugin_id", + "team_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "plugin_access_grant_id": { + "name": "plugin_access_grant_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "plugin_config_object": { + "name": "plugin_config_object", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "plugin_id": { + "name": "plugin_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "config_object_id": { + "name": "config_object_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "membership_source": { + "name": "membership_source", + "type": "enum('manual','connector','api','system')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'manual'" + }, + "connector_mapping_id": { + "name": "connector_mapping_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "removed_at": { + "name": "removed_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "plugin_config_object_organization_id": { + "name": "plugin_config_object_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "plugin_config_object_plugin_id": { + "name": "plugin_config_object_plugin_id", + "columns": [ + "plugin_id" + ], + "isUnique": false + }, + "plugin_config_object_config_object_id": { + "name": "plugin_config_object_config_object_id", + "columns": [ + "config_object_id" + ], + "isUnique": false + }, + "plugin_config_object_connector_mapping_id": { + "name": "plugin_config_object_connector_mapping_id", + "columns": [ + "connector_mapping_id" + ], + "isUnique": false + }, + "plugin_config_object_plugin_config_object": { + "name": "plugin_config_object_plugin_config_object", + "columns": [ + "plugin_id", + "config_object_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "plugin_config_object_id": { + "name": "plugin_config_object_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "plugin": { + "name": "plugin", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('active','inactive','deleted','archived')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'active'" + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + }, + "deleted_at": { + "name": "deleted_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "plugin_organization_id": { + "name": "plugin_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "plugin_created_by_org_membership_id": { + "name": "plugin_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + }, + "plugin_status": { + "name": "plugin_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "plugin_name": { + "name": "plugin_name", + "columns": [ + "name" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "plugin_id": { + "name": "plugin_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "skill_hub_member": { + "name": "skill_hub_member", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "skill_hub_id": { + "name": "skill_hub_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "skill_hub_member_skill_hub_id": { + "name": "skill_hub_member_skill_hub_id", + "columns": [ + "skill_hub_id" + ], + "isUnique": false + }, + "skill_hub_member_org_membership_id": { + "name": "skill_hub_member_org_membership_id", + "columns": [ + "org_membership_id" + ], + "isUnique": false + }, + "skill_hub_member_team_id": { + "name": "skill_hub_member_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + }, + "skill_hub_member_hub_org_membership": { + "name": "skill_hub_member_hub_org_membership", + "columns": [ + "skill_hub_id", + "org_membership_id" + ], + "isUnique": true + }, + "skill_hub_member_hub_team": { + "name": "skill_hub_member_hub_team", + "columns": [ + "skill_hub_id", + "team_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "skill_hub_member_id": { + "name": "skill_hub_member_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "skill_hub_skill": { + "name": "skill_hub_skill", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "skill_hub_id": { + "name": "skill_hub_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "skill_id": { + "name": "skill_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "skill_hub_skill_skill_hub_id": { + "name": "skill_hub_skill_skill_hub_id", + "columns": [ + "skill_hub_id" + ], + "isUnique": false + }, + "skill_hub_skill_skill_id": { + "name": "skill_hub_skill_skill_id", + "columns": [ + "skill_id" + ], + "isUnique": false + }, + "skill_hub_skill_hub_skill": { + "name": "skill_hub_skill_hub_skill", + "columns": [ + "skill_hub_id", + "skill_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "skill_hub_skill_id": { + "name": "skill_hub_skill_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "skill_hub": { + "name": "skill_hub", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "skill_hub_organization_id": { + "name": "skill_hub_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "skill_hub_created_by_org_membership_id": { + "name": "skill_hub_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "skill_hub_id": { + "name": "skill_hub_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "skill": { + "name": "skill", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "title": { + "name": "title", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "skill_text": { + "name": "skill_text", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "shared": { + "name": "shared", + "type": "enum('org','public')", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "skill_organization_id": { + "name": "skill_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "skill_created_by_org_membership_id": { + "name": "skill_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + }, + "skill_shared": { + "name": "skill_shared", + "columns": [ + "shared" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "skill_id": { + "name": "skill_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "team_member": { + "name": "team_member", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "team_member_team_id": { + "name": "team_member_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + }, + "team_member_org_membership_id": { + "name": "team_member_org_membership_id", + "columns": [ + "org_membership_id" + ], + "isUnique": false + }, + "team_member_team_org_membership": { + "name": "team_member_team_org_membership", + "columns": [ + "team_id", + "org_membership_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "team_member_id": { + "name": "team_member_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "team": { + "name": "team", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "team_organization_id": { + "name": "team_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "team_organization_name": { + "name": "team_organization_name", + "columns": [ + "organization_id", + "name" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "team_id": { + "name": "team_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "audit_event": { + "name": "audit_event", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_id": { + "name": "org_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "worker_id": { + "name": "worker_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "actor_user_id": { + "name": "actor_user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "action": { + "name": "action", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "payload": { + "name": "payload", + "type": "json", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "audit_event_org_id": { + "name": "audit_event_org_id", + "columns": [ + "org_id" + ], + "isUnique": false + }, + "audit_event_worker_id": { + "name": "audit_event_worker_id", + "columns": [ + "worker_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "audit_event_id": { + "name": "audit_event_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "daytona_sandbox": { + "name": "daytona_sandbox", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "worker_id": { + "name": "worker_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "sandbox_id": { + "name": "sandbox_id", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "workspace_volume_id": { + "name": "workspace_volume_id", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "data_volume_id": { + "name": "data_volume_id", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "signed_preview_url": { + "name": "signed_preview_url", + "type": "varchar(2048)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "signed_preview_url_expires_at": { + "name": "signed_preview_url_expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "region": { + "name": "region", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "daytona_sandbox_worker_id": { + "name": "daytona_sandbox_worker_id", + "columns": [ + "worker_id" + ], + "isUnique": true + }, + "daytona_sandbox_sandbox_id": { + "name": "daytona_sandbox_sandbox_id", + "columns": [ + "sandbox_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "daytona_sandbox_id": { + "name": "daytona_sandbox_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "worker_bundle": { + "name": "worker_bundle", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "worker_id": { + "name": "worker_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "storage_url": { + "name": "storage_url", + "type": "varchar(2048)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "worker_bundle_worker_id": { + "name": "worker_bundle_worker_id", + "columns": [ + "worker_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "worker_bundle_id": { + "name": "worker_bundle_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "worker_instance": { + "name": "worker_instance", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "worker_id": { + "name": "worker_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "provider": { + "name": "provider", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "region": { + "name": "region", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "url": { + "name": "url", + "type": "varchar(2048)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('provisioning','healthy','failed','stopped')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "worker_instance_worker_id": { + "name": "worker_instance_worker_id", + "columns": [ + "worker_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "worker_instance_id": { + "name": "worker_instance_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "worker": { + "name": "worker", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_id": { + "name": "org_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_user_id": { + "name": "created_by_user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "varchar(1024)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "destination": { + "name": "destination", + "type": "enum('local','cloud')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('provisioning','healthy','failed','stopped')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "image_version": { + "name": "image_version", + "type": "varchar(128)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "workspace_path": { + "name": "workspace_path", + "type": "varchar(1024)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "sandbox_backend": { + "name": "sandbox_backend", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_heartbeat_at": { + "name": "last_heartbeat_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_active_at": { + "name": "last_active_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "worker_org_id": { + "name": "worker_org_id", + "columns": [ + "org_id" + ], + "isUnique": false + }, + "worker_created_by_user_id": { + "name": "worker_created_by_user_id", + "columns": [ + "created_by_user_id" + ], + "isUnique": false + }, + "worker_status": { + "name": "worker_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "worker_last_heartbeat_at": { + "name": "worker_last_heartbeat_at", + "columns": [ + "last_heartbeat_at" + ], + "isUnique": false + }, + "worker_last_active_at": { + "name": "worker_last_active_at", + "columns": [ + "last_active_at" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "worker_id": { + "name": "worker_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "worker_token": { + "name": "worker_token", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "worker_id": { + "name": "worker_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "scope": { + "name": "scope", + "type": "enum('client','host','activity')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "token": { + "name": "token", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "revoked_at": { + "name": "revoked_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "worker_token_worker_id": { + "name": "worker_token_worker_id", + "columns": [ + "worker_id" + ], + "isUnique": false + }, + "worker_token_token": { + "name": "worker_token_token", + "columns": [ + "token" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "worker_token_id": { + "name": "worker_token_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "admin_allowlist": { + "name": "admin_allowlist", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "email": { + "name": "email", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "note": { + "name": "note", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "admin_allowlist_email": { + "name": "admin_allowlist_email", + "columns": [ + "email" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "admin_allowlist_id": { + "name": "admin_allowlist_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "rate_limit": { + "name": "rate_limit", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "key": { + "name": "key", + "type": "varchar(512)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "count": { + "name": "count", + "type": "int", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": 0 + }, + "last_request": { + "name": "last_request", + "type": "bigint", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "rate_limit_key": { + "name": "rate_limit_key", + "columns": [ + "key" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "rate_limit_id": { + "name": "rate_limit_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + } + }, + "views": {}, + "_meta": { + "schemas": {}, + "tables": {}, + "columns": {} + }, + "internal": { + "tables": {}, + "indexes": {} + } +} \ No newline at end of file diff --git a/ee/packages/den-db/drizzle/meta/0012_snapshot.json b/ee/packages/den-db/drizzle/meta/0012_snapshot.json new file mode 100644 index 000000000..6b9c7116c --- /dev/null +++ b/ee/packages/den-db/drizzle/meta/0012_snapshot.json @@ -0,0 +1,4972 @@ +{ + "version": "5", + "dialect": "mysql", + "id": "d2895cb4-d52e-49a2-a2a7-59032a09a6bd", + "prevId": "59eb2ccf-a3a2-4fb1-acdf-d059fa85eb36", + "tables": { + "account": { + "name": "account", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "account_id": { + "name": "account_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "provider_id": { + "name": "provider_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "access_token": { + "name": "access_token", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "refresh_token": { + "name": "refresh_token", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "access_token_expires_at": { + "name": "access_token_expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "refresh_token_expires_at": { + "name": "refresh_token_expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "scope": { + "name": "scope", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "id_token": { + "name": "id_token", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "password": { + "name": "password", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "account_user_id": { + "name": "account_user_id", + "columns": [ + "user_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "account_id": { + "name": "account_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "apikey": { + "name": "apikey", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "config_id": { + "name": "config_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'default'" + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "start": { + "name": "start", + "type": "varchar(32)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "prefix": { + "name": "prefix", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "key": { + "name": "key", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "reference_id": { + "name": "reference_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "refill_interval": { + "name": "refill_interval", + "type": "bigint", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "refill_amount": { + "name": "refill_amount", + "type": "int", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_refill_at": { + "name": "last_refill_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "enabled": { + "name": "enabled", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": true + }, + "rate_limit_enabled": { + "name": "rate_limit_enabled", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": true + }, + "rate_limit_time_window": { + "name": "rate_limit_time_window", + "type": "bigint", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "rate_limit_max": { + "name": "rate_limit_max", + "type": "int", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "request_count": { + "name": "request_count", + "type": "int", + "primaryKey": false, + "notNull": false, + "autoincrement": false, + "default": 0 + }, + "remaining": { + "name": "remaining", + "type": "int", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_request": { + "name": "last_request", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + }, + "permissions": { + "name": "permissions", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "metadata": { + "name": "metadata", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "apikey_config_id": { + "name": "apikey_config_id", + "columns": [ + "config_id" + ], + "isUnique": false + }, + "apikey_reference_id": { + "name": "apikey_reference_id", + "columns": [ + "reference_id" + ], + "isUnique": false + }, + "apikey_key": { + "name": "apikey_key", + "columns": [ + "key" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "apikey_id": { + "name": "apikey_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "session": { + "name": "session", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "active_organization_id": { + "name": "active_organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "active_team_id": { + "name": "active_team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "token": { + "name": "token", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "ip_address": { + "name": "ip_address", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "user_agent": { + "name": "user_agent", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "session_token": { + "name": "session_token", + "columns": [ + "token" + ], + "isUnique": true + }, + "session_user_id": { + "name": "session_user_id", + "columns": [ + "user_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "session_id": { + "name": "session_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "user": { + "name": "user", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "email": { + "name": "email", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "email_verified": { + "name": "email_verified", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "image": { + "name": "image", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "user_email": { + "name": "user_email", + "columns": [ + "email" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "user_id": { + "name": "user_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "verification": { + "name": "verification", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "identifier": { + "name": "identifier", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "value": { + "name": "value", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "verification_identifier": { + "name": "verification_identifier", + "columns": [ + "identifier" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "verification_id": { + "name": "verification_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "desktop_handoff_grant": { + "name": "desktop_handoff_grant", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "session_token": { + "name": "session_token", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "consumed_at": { + "name": "consumed_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "desktop_handoff_grant_user_id": { + "name": "desktop_handoff_grant_user_id", + "columns": [ + "user_id" + ], + "isUnique": false + }, + "desktop_handoff_grant_expires_at": { + "name": "desktop_handoff_grant_expires_at", + "columns": [ + "expires_at" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "desktop_handoff_grant_id": { + "name": "desktop_handoff_grant_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "invitation": { + "name": "invitation", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "email": { + "name": "email", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "role": { + "name": "role", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "varchar(32)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'pending'" + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "inviter_id": { + "name": "inviter_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "invitation_organization_id": { + "name": "invitation_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "invitation_email": { + "name": "invitation_email", + "columns": [ + "email" + ], + "isUnique": false + }, + "invitation_status": { + "name": "invitation_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "invitation_team_id": { + "name": "invitation_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "invitation_id": { + "name": "invitation_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "member": { + "name": "member", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "role": { + "name": "role", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'member'" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "member_organization_id": { + "name": "member_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "member_user_id": { + "name": "member_user_id", + "columns": [ + "user_id" + ], + "isUnique": false + }, + "member_organization_user": { + "name": "member_organization_user", + "columns": [ + "organization_id", + "user_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "member_id": { + "name": "member_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "organization_role": { + "name": "organization_role", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "role": { + "name": "role", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "permission": { + "name": "permission", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "organization_role_organization_id": { + "name": "organization_role_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "organization_role_name": { + "name": "organization_role_name", + "columns": [ + "organization_id", + "role" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "organization_role_id": { + "name": "organization_role_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "organization": { + "name": "organization", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "slug": { + "name": "slug", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "logo": { + "name": "logo", + "type": "varchar(2048)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "allowed_email_domains": { + "name": "allowed_email_domains", + "type": "json", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "metadata": { + "name": "metadata", + "type": "json", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "organization_slug": { + "name": "organization_slug", + "columns": [ + "slug" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "organization_id": { + "name": "organization_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "temp_template_sharing": { + "name": "temp_template_sharing", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "creator_member_id": { + "name": "creator_member_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "creator_user_id": { + "name": "creator_user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "template_json": { + "name": "template_json", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "temp_template_sharing_org_id": { + "name": "temp_template_sharing_org_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "temp_template_sharing_creator_member_id": { + "name": "temp_template_sharing_creator_member_id", + "columns": [ + "creator_member_id" + ], + "isUnique": false + }, + "temp_template_sharing_creator_user_id": { + "name": "temp_template_sharing_creator_user_id", + "columns": [ + "creator_user_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "temp_template_sharing_id": { + "name": "temp_template_sharing_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "llm_provider_access": { + "name": "llm_provider_access", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "llm_provider_id": { + "name": "llm_provider_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "llm_provider_access_llm_provider_id": { + "name": "llm_provider_access_llm_provider_id", + "columns": [ + "llm_provider_id" + ], + "isUnique": false + }, + "llm_provider_access_org_membership_id": { + "name": "llm_provider_access_org_membership_id", + "columns": [ + "org_membership_id" + ], + "isUnique": false + }, + "llm_provider_access_team_id": { + "name": "llm_provider_access_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + }, + "llm_provider_access_provider_org_membership": { + "name": "llm_provider_access_provider_org_membership", + "columns": [ + "llm_provider_id", + "org_membership_id" + ], + "isUnique": true + }, + "llm_provider_access_provider_team": { + "name": "llm_provider_access_provider_team", + "columns": [ + "llm_provider_id", + "team_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "llm_provider_access_id": { + "name": "llm_provider_access_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "llm_provider_model": { + "name": "llm_provider_model", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "llm_provider_id": { + "name": "llm_provider_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "model_id": { + "name": "model_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "model_config": { + "name": "model_config", + "type": "json", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "llm_provider_model_llm_provider_id": { + "name": "llm_provider_model_llm_provider_id", + "columns": [ + "llm_provider_id" + ], + "isUnique": false + }, + "llm_provider_model_model_id": { + "name": "llm_provider_model_model_id", + "columns": [ + "model_id" + ], + "isUnique": false + }, + "llm_provider_model_provider_model": { + "name": "llm_provider_model_provider_model", + "columns": [ + "llm_provider_id", + "model_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "llm_provider_model_id": { + "name": "llm_provider_model_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "llm_provider": { + "name": "llm_provider", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "source": { + "name": "source", + "type": "enum('models_dev','custom')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "provider_id": { + "name": "provider_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "provider_config": { + "name": "provider_config", + "type": "json", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "api_key": { + "name": "api_key", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "llm_provider_organization_id": { + "name": "llm_provider_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "llm_provider_created_by_org_membership_id": { + "name": "llm_provider_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + }, + "llm_provider_source": { + "name": "llm_provider_source", + "columns": [ + "source" + ], + "isUnique": false + }, + "llm_provider_provider_id": { + "name": "llm_provider_provider_id", + "columns": [ + "provider_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "llm_provider_id": { + "name": "llm_provider_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "config_object_access_grant": { + "name": "config_object_access_grant", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "config_object_id": { + "name": "config_object_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "org_wide": { + "name": "org_wide", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "role": { + "name": "role", + "type": "enum('viewer','editor','manager')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "removed_at": { + "name": "removed_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "config_object_access_grant_organization_id": { + "name": "config_object_access_grant_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "config_object_access_grant_config_object_id": { + "name": "config_object_access_grant_config_object_id", + "columns": [ + "config_object_id" + ], + "isUnique": false + }, + "config_object_access_grant_org_membership_id": { + "name": "config_object_access_grant_org_membership_id", + "columns": [ + "org_membership_id" + ], + "isUnique": false + }, + "config_object_access_grant_team_id": { + "name": "config_object_access_grant_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + }, + "config_object_access_grant_org_wide": { + "name": "config_object_access_grant_org_wide", + "columns": [ + "org_wide" + ], + "isUnique": false + }, + "config_object_access_grant_object_org_membership": { + "name": "config_object_access_grant_object_org_membership", + "columns": [ + "config_object_id", + "org_membership_id" + ], + "isUnique": true + }, + "config_object_access_grant_object_team": { + "name": "config_object_access_grant_object_team", + "columns": [ + "config_object_id", + "team_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "config_object_access_grant_id": { + "name": "config_object_access_grant_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "config_object": { + "name": "config_object", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "object_type": { + "name": "object_type", + "type": "enum('skill','agent','command','tool','mcp','hook','context','custom')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "source_mode": { + "name": "source_mode", + "type": "enum('cloud','import','connector')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "title": { + "name": "title", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "search_text": { + "name": "search_text", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "current_file_name": { + "name": "current_file_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "current_file_extension": { + "name": "current_file_extension", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "current_relative_path": { + "name": "current_relative_path", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('active','inactive','deleted','archived','ingestion_error')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'active'" + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_instance_id": { + "name": "connector_instance_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + }, + "deleted_at": { + "name": "deleted_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "config_object_organization_id": { + "name": "config_object_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "config_object_type": { + "name": "config_object_type", + "columns": [ + "object_type" + ], + "isUnique": false + }, + "config_object_source_mode": { + "name": "config_object_source_mode", + "columns": [ + "source_mode" + ], + "isUnique": false + }, + "config_object_status": { + "name": "config_object_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "config_object_created_by_org_membership_id": { + "name": "config_object_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + }, + "config_object_connector_instance_id": { + "name": "config_object_connector_instance_id", + "columns": [ + "connector_instance_id" + ], + "isUnique": false + }, + "config_object_current_relative_path": { + "name": "config_object_current_relative_path", + "columns": [ + "current_relative_path" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "config_object_id": { + "name": "config_object_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "config_object_version": { + "name": "config_object_version", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "config_object_id": { + "name": "config_object_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "normalized_payload_json": { + "name": "normalized_payload_json", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "raw_source_text": { + "name": "raw_source_text", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "schema_version": { + "name": "schema_version", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_via": { + "name": "created_via", + "type": "enum('cloud','import','connector','system')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "connector_sync_event_id": { + "name": "connector_sync_event_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "source_revision_ref": { + "name": "source_revision_ref", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "is_deleted_version": { + "name": "is_deleted_version", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "config_object_version_organization_id": { + "name": "config_object_version_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "config_object_version_config_object_id": { + "name": "config_object_version_config_object_id", + "columns": [ + "config_object_id" + ], + "isUnique": false + }, + "config_object_version_created_by_org_membership_id": { + "name": "config_object_version_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + }, + "config_object_version_connector_sync_event_id": { + "name": "config_object_version_connector_sync_event_id", + "columns": [ + "connector_sync_event_id" + ], + "isUnique": false + }, + "config_object_version_source_revision_ref": { + "name": "config_object_version_source_revision_ref", + "columns": [ + "source_revision_ref" + ], + "isUnique": false + }, + "config_object_version_lookup_latest": { + "name": "config_object_version_lookup_latest", + "columns": [ + "config_object_id", + "created_at", + "id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "config_object_version_id": { + "name": "config_object_version_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "connector_account": { + "name": "connector_account", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_type": { + "name": "connector_type", + "type": "enum('github')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "remote_id": { + "name": "remote_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "external_account_ref": { + "name": "external_account_ref", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "display_name": { + "name": "display_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('active','inactive','disconnected','error')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'active'" + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "metadata_json": { + "name": "metadata_json", + "type": "json", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "connector_account_organization_id": { + "name": "connector_account_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "connector_account_created_by_org_membership_id": { + "name": "connector_account_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + }, + "connector_account_connector_type": { + "name": "connector_account_connector_type", + "columns": [ + "connector_type" + ], + "isUnique": false + }, + "connector_account_status": { + "name": "connector_account_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "connector_account_org_type_remote_id": { + "name": "connector_account_org_type_remote_id", + "columns": [ + "organization_id", + "connector_type", + "remote_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "connector_account_id": { + "name": "connector_account_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "connector_instance_access_grant": { + "name": "connector_instance_access_grant", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_instance_id": { + "name": "connector_instance_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "org_wide": { + "name": "org_wide", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "role": { + "name": "role", + "type": "enum('viewer','editor','manager')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "removed_at": { + "name": "removed_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "connector_instance_access_grant_organization_id": { + "name": "connector_instance_access_grant_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "connector_instance_access_grant_instance_id": { + "name": "connector_instance_access_grant_instance_id", + "columns": [ + "connector_instance_id" + ], + "isUnique": false + }, + "connector_instance_access_grant_org_membership_id": { + "name": "connector_instance_access_grant_org_membership_id", + "columns": [ + "org_membership_id" + ], + "isUnique": false + }, + "connector_instance_access_grant_team_id": { + "name": "connector_instance_access_grant_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + }, + "connector_instance_access_grant_org_wide": { + "name": "connector_instance_access_grant_org_wide", + "columns": [ + "org_wide" + ], + "isUnique": false + }, + "connector_instance_access_grant_instance_org_membership": { + "name": "connector_instance_access_grant_instance_org_membership", + "columns": [ + "connector_instance_id", + "org_membership_id" + ], + "isUnique": true + }, + "connector_instance_access_grant_instance_team": { + "name": "connector_instance_access_grant_instance_team", + "columns": [ + "connector_instance_id", + "team_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "connector_instance_access_grant_id": { + "name": "connector_instance_access_grant_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "connector_instance": { + "name": "connector_instance", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_account_id": { + "name": "connector_account_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_type": { + "name": "connector_type", + "type": "enum('github')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "remote_id": { + "name": "remote_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('active','disabled','archived','error')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'active'" + }, + "instance_config_json": { + "name": "instance_config_json", + "type": "json", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_synced_at": { + "name": "last_synced_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_sync_status": { + "name": "last_sync_status", + "type": "enum('pending','queued','running','completed','failed','partial','ignored')", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_sync_cursor": { + "name": "last_sync_cursor", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "connector_instance_organization_id": { + "name": "connector_instance_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "connector_instance_connector_account_id": { + "name": "connector_instance_connector_account_id", + "columns": [ + "connector_account_id" + ], + "isUnique": false + }, + "connector_instance_created_by_org_membership_id": { + "name": "connector_instance_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + }, + "connector_instance_connector_type": { + "name": "connector_instance_connector_type", + "columns": [ + "connector_type" + ], + "isUnique": false + }, + "connector_instance_status": { + "name": "connector_instance_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "connector_instance_org_name": { + "name": "connector_instance_org_name", + "columns": [ + "organization_id", + "name" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "connector_instance_id": { + "name": "connector_instance_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "connector_mapping": { + "name": "connector_mapping", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_instance_id": { + "name": "connector_instance_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_target_id": { + "name": "connector_target_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_type": { + "name": "connector_type", + "type": "enum('github')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "remote_id": { + "name": "remote_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "mapping_kind": { + "name": "mapping_kind", + "type": "enum('path','api','custom')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "selector": { + "name": "selector", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "object_type": { + "name": "object_type", + "type": "enum('skill','agent','command','tool','mcp','hook','context','custom')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "plugin_id": { + "name": "plugin_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "auto_add_to_plugin": { + "name": "auto_add_to_plugin", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "mapping_config_json": { + "name": "mapping_config_json", + "type": "json", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "connector_mapping_organization_id": { + "name": "connector_mapping_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "connector_mapping_connector_instance_id": { + "name": "connector_mapping_connector_instance_id", + "columns": [ + "connector_instance_id" + ], + "isUnique": false + }, + "connector_mapping_connector_target_id": { + "name": "connector_mapping_connector_target_id", + "columns": [ + "connector_target_id" + ], + "isUnique": false + }, + "connector_mapping_object_type": { + "name": "connector_mapping_object_type", + "columns": [ + "object_type" + ], + "isUnique": false + }, + "connector_mapping_plugin_id": { + "name": "connector_mapping_plugin_id", + "columns": [ + "plugin_id" + ], + "isUnique": false + }, + "connector_mapping_target_selector_object_type": { + "name": "connector_mapping_target_selector_object_type", + "columns": [ + "connector_target_id", + "selector", + "object_type" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "connector_mapping_id": { + "name": "connector_mapping_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "connector_source_binding": { + "name": "connector_source_binding", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "config_object_id": { + "name": "config_object_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_instance_id": { + "name": "connector_instance_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_target_id": { + "name": "connector_target_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_mapping_id": { + "name": "connector_mapping_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_type": { + "name": "connector_type", + "type": "enum('github')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "remote_id": { + "name": "remote_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "external_locator": { + "name": "external_locator", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "external_stable_ref": { + "name": "external_stable_ref", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_seen_source_revision_ref": { + "name": "last_seen_source_revision_ref", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('active','inactive','deleted','archived','ingestion_error')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'active'" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + }, + "deleted_at": { + "name": "deleted_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "connector_source_binding_organization_id": { + "name": "connector_source_binding_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "connector_source_binding_config_object_id": { + "name": "connector_source_binding_config_object_id", + "columns": [ + "config_object_id" + ], + "isUnique": false + }, + "connector_source_binding_connector_instance_id": { + "name": "connector_source_binding_connector_instance_id", + "columns": [ + "connector_instance_id" + ], + "isUnique": false + }, + "connector_source_binding_connector_target_id": { + "name": "connector_source_binding_connector_target_id", + "columns": [ + "connector_target_id" + ], + "isUnique": false + }, + "connector_source_binding_connector_mapping_id": { + "name": "connector_source_binding_connector_mapping_id", + "columns": [ + "connector_mapping_id" + ], + "isUnique": false + }, + "connector_source_binding_external_locator": { + "name": "connector_source_binding_external_locator", + "columns": [ + "external_locator" + ], + "isUnique": false + }, + "connector_source_binding_config_object": { + "name": "connector_source_binding_config_object", + "columns": [ + "config_object_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "connector_source_binding_id": { + "name": "connector_source_binding_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "connector_source_tombstone": { + "name": "connector_source_tombstone", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_instance_id": { + "name": "connector_instance_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_target_id": { + "name": "connector_target_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_mapping_id": { + "name": "connector_mapping_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_type": { + "name": "connector_type", + "type": "enum('github')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "remote_id": { + "name": "remote_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "external_locator": { + "name": "external_locator", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "former_config_object_id": { + "name": "former_config_object_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "deleted_in_sync_event_id": { + "name": "deleted_in_sync_event_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "deleted_source_revision_ref": { + "name": "deleted_source_revision_ref", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "connector_source_tombstone_organization_id": { + "name": "connector_source_tombstone_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "connector_source_tombstone_connector_instance_id": { + "name": "connector_source_tombstone_connector_instance_id", + "columns": [ + "connector_instance_id" + ], + "isUnique": false + }, + "connector_source_tombstone_connector_target_id": { + "name": "connector_source_tombstone_connector_target_id", + "columns": [ + "connector_target_id" + ], + "isUnique": false + }, + "connector_source_tombstone_connector_mapping_id": { + "name": "connector_source_tombstone_connector_mapping_id", + "columns": [ + "connector_mapping_id" + ], + "isUnique": false + }, + "connector_source_tombstone_external_locator": { + "name": "connector_source_tombstone_external_locator", + "columns": [ + "external_locator" + ], + "isUnique": false + }, + "connector_source_tombstone_former_config_object_id": { + "name": "connector_source_tombstone_former_config_object_id", + "columns": [ + "former_config_object_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "connector_source_tombstone_id": { + "name": "connector_source_tombstone_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "connector_sync_event": { + "name": "connector_sync_event", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_instance_id": { + "name": "connector_instance_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_target_id": { + "name": "connector_target_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "connector_type": { + "name": "connector_type", + "type": "enum('github')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "remote_id": { + "name": "remote_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "event_type": { + "name": "event_type", + "type": "enum('push','installation','installation_repositories','repository','manual_resync')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "external_event_ref": { + "name": "external_event_ref", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "source_revision_ref": { + "name": "source_revision_ref", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('pending','queued','running','completed','failed','partial','ignored')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'pending'" + }, + "summary_json": { + "name": "summary_json", + "type": "json", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "started_at": { + "name": "started_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "completed_at": { + "name": "completed_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "connector_sync_event_organization_id": { + "name": "connector_sync_event_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "connector_sync_event_connector_instance_id": { + "name": "connector_sync_event_connector_instance_id", + "columns": [ + "connector_instance_id" + ], + "isUnique": false + }, + "connector_sync_event_connector_target_id": { + "name": "connector_sync_event_connector_target_id", + "columns": [ + "connector_target_id" + ], + "isUnique": false + }, + "connector_sync_event_event_type": { + "name": "connector_sync_event_event_type", + "columns": [ + "event_type" + ], + "isUnique": false + }, + "connector_sync_event_status": { + "name": "connector_sync_event_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "connector_sync_event_source_revision_ref": { + "name": "connector_sync_event_source_revision_ref", + "columns": [ + "source_revision_ref" + ], + "isUnique": false + }, + "connector_sync_event_external_event_ref": { + "name": "connector_sync_event_external_event_ref", + "columns": [ + "external_event_ref" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "connector_sync_event_id": { + "name": "connector_sync_event_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "connector_target": { + "name": "connector_target", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_instance_id": { + "name": "connector_instance_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_type": { + "name": "connector_type", + "type": "enum('github')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "remote_id": { + "name": "remote_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "target_kind": { + "name": "target_kind", + "type": "enum('repository_branch')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "external_target_ref": { + "name": "external_target_ref", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "target_config_json": { + "name": "target_config_json", + "type": "json", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "connector_target_organization_id": { + "name": "connector_target_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "connector_target_connector_instance_id": { + "name": "connector_target_connector_instance_id", + "columns": [ + "connector_instance_id" + ], + "isUnique": false + }, + "connector_target_connector_type": { + "name": "connector_target_connector_type", + "columns": [ + "connector_type" + ], + "isUnique": false + }, + "connector_target_target_kind": { + "name": "connector_target_target_kind", + "columns": [ + "target_kind" + ], + "isUnique": false + }, + "connector_target_instance_remote_id": { + "name": "connector_target_instance_remote_id", + "columns": [ + "connector_instance_id", + "remote_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "connector_target_id": { + "name": "connector_target_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "marketplace_access_grant": { + "name": "marketplace_access_grant", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "marketplace_id": { + "name": "marketplace_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "org_wide": { + "name": "org_wide", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "role": { + "name": "role", + "type": "enum('viewer','editor','manager')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "removed_at": { + "name": "removed_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "marketplace_access_grant_organization_id": { + "name": "marketplace_access_grant_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "marketplace_access_grant_marketplace_id": { + "name": "marketplace_access_grant_marketplace_id", + "columns": [ + "marketplace_id" + ], + "isUnique": false + }, + "marketplace_access_grant_org_membership_id": { + "name": "marketplace_access_grant_org_membership_id", + "columns": [ + "org_membership_id" + ], + "isUnique": false + }, + "marketplace_access_grant_team_id": { + "name": "marketplace_access_grant_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + }, + "marketplace_access_grant_org_wide": { + "name": "marketplace_access_grant_org_wide", + "columns": [ + "org_wide" + ], + "isUnique": false + }, + "marketplace_access_grant_marketplace_org_membership": { + "name": "marketplace_access_grant_marketplace_org_membership", + "columns": [ + "marketplace_id", + "org_membership_id" + ], + "isUnique": true + }, + "marketplace_access_grant_marketplace_team": { + "name": "marketplace_access_grant_marketplace_team", + "columns": [ + "marketplace_id", + "team_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "marketplace_access_grant_id": { + "name": "marketplace_access_grant_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "marketplace_plugin": { + "name": "marketplace_plugin", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "marketplace_id": { + "name": "marketplace_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "plugin_id": { + "name": "plugin_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "membership_source": { + "name": "membership_source", + "type": "enum('manual','connector','api','system')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'manual'" + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "removed_at": { + "name": "removed_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "marketplace_plugin_organization_id": { + "name": "marketplace_plugin_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "marketplace_plugin_marketplace_id": { + "name": "marketplace_plugin_marketplace_id", + "columns": [ + "marketplace_id" + ], + "isUnique": false + }, + "marketplace_plugin_plugin_id": { + "name": "marketplace_plugin_plugin_id", + "columns": [ + "plugin_id" + ], + "isUnique": false + }, + "marketplace_plugin_marketplace_plugin": { + "name": "marketplace_plugin_marketplace_plugin", + "columns": [ + "marketplace_id", + "plugin_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "marketplace_plugin_id": { + "name": "marketplace_plugin_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "marketplace": { + "name": "marketplace", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('active','inactive','deleted','archived')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'active'" + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + }, + "deleted_at": { + "name": "deleted_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "marketplace_organization_id": { + "name": "marketplace_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "marketplace_created_by_org_membership_id": { + "name": "marketplace_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + }, + "marketplace_status": { + "name": "marketplace_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "marketplace_name": { + "name": "marketplace_name", + "columns": [ + "name" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "marketplace_id": { + "name": "marketplace_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "plugin_access_grant": { + "name": "plugin_access_grant", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "plugin_id": { + "name": "plugin_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "org_wide": { + "name": "org_wide", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "role": { + "name": "role", + "type": "enum('viewer','editor','manager')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "removed_at": { + "name": "removed_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "plugin_access_grant_organization_id": { + "name": "plugin_access_grant_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "plugin_access_grant_plugin_id": { + "name": "plugin_access_grant_plugin_id", + "columns": [ + "plugin_id" + ], + "isUnique": false + }, + "plugin_access_grant_org_membership_id": { + "name": "plugin_access_grant_org_membership_id", + "columns": [ + "org_membership_id" + ], + "isUnique": false + }, + "plugin_access_grant_team_id": { + "name": "plugin_access_grant_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + }, + "plugin_access_grant_org_wide": { + "name": "plugin_access_grant_org_wide", + "columns": [ + "org_wide" + ], + "isUnique": false + }, + "plugin_access_grant_plugin_org_membership": { + "name": "plugin_access_grant_plugin_org_membership", + "columns": [ + "plugin_id", + "org_membership_id" + ], + "isUnique": true + }, + "plugin_access_grant_plugin_team": { + "name": "plugin_access_grant_plugin_team", + "columns": [ + "plugin_id", + "team_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "plugin_access_grant_id": { + "name": "plugin_access_grant_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "plugin_config_object": { + "name": "plugin_config_object", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "plugin_id": { + "name": "plugin_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "config_object_id": { + "name": "config_object_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "membership_source": { + "name": "membership_source", + "type": "enum('manual','connector','api','system')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'manual'" + }, + "connector_mapping_id": { + "name": "connector_mapping_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "removed_at": { + "name": "removed_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "plugin_config_object_organization_id": { + "name": "plugin_config_object_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "plugin_config_object_plugin_id": { + "name": "plugin_config_object_plugin_id", + "columns": [ + "plugin_id" + ], + "isUnique": false + }, + "plugin_config_object_config_object_id": { + "name": "plugin_config_object_config_object_id", + "columns": [ + "config_object_id" + ], + "isUnique": false + }, + "plugin_config_object_connector_mapping_id": { + "name": "plugin_config_object_connector_mapping_id", + "columns": [ + "connector_mapping_id" + ], + "isUnique": false + }, + "plugin_config_object_plugin_config_object": { + "name": "plugin_config_object_plugin_config_object", + "columns": [ + "plugin_id", + "config_object_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "plugin_config_object_id": { + "name": "plugin_config_object_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "plugin": { + "name": "plugin", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('active','inactive','deleted','archived')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'active'" + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + }, + "deleted_at": { + "name": "deleted_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "plugin_organization_id": { + "name": "plugin_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "plugin_created_by_org_membership_id": { + "name": "plugin_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + }, + "plugin_status": { + "name": "plugin_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "plugin_name": { + "name": "plugin_name", + "columns": [ + "name" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "plugin_id": { + "name": "plugin_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "skill_hub_member": { + "name": "skill_hub_member", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "skill_hub_id": { + "name": "skill_hub_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "skill_hub_member_skill_hub_id": { + "name": "skill_hub_member_skill_hub_id", + "columns": [ + "skill_hub_id" + ], + "isUnique": false + }, + "skill_hub_member_org_membership_id": { + "name": "skill_hub_member_org_membership_id", + "columns": [ + "org_membership_id" + ], + "isUnique": false + }, + "skill_hub_member_team_id": { + "name": "skill_hub_member_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + }, + "skill_hub_member_hub_org_membership": { + "name": "skill_hub_member_hub_org_membership", + "columns": [ + "skill_hub_id", + "org_membership_id" + ], + "isUnique": true + }, + "skill_hub_member_hub_team": { + "name": "skill_hub_member_hub_team", + "columns": [ + "skill_hub_id", + "team_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "skill_hub_member_id": { + "name": "skill_hub_member_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "skill_hub_skill": { + "name": "skill_hub_skill", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "skill_hub_id": { + "name": "skill_hub_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "skill_id": { + "name": "skill_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "skill_hub_skill_skill_hub_id": { + "name": "skill_hub_skill_skill_hub_id", + "columns": [ + "skill_hub_id" + ], + "isUnique": false + }, + "skill_hub_skill_skill_id": { + "name": "skill_hub_skill_skill_id", + "columns": [ + "skill_id" + ], + "isUnique": false + }, + "skill_hub_skill_hub_skill": { + "name": "skill_hub_skill_hub_skill", + "columns": [ + "skill_hub_id", + "skill_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "skill_hub_skill_id": { + "name": "skill_hub_skill_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "skill_hub": { + "name": "skill_hub", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "skill_hub_organization_id": { + "name": "skill_hub_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "skill_hub_created_by_org_membership_id": { + "name": "skill_hub_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "skill_hub_id": { + "name": "skill_hub_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "skill": { + "name": "skill", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "title": { + "name": "title", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "skill_text": { + "name": "skill_text", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "shared": { + "name": "shared", + "type": "enum('org','public')", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "skill_organization_id": { + "name": "skill_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "skill_created_by_org_membership_id": { + "name": "skill_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + }, + "skill_shared": { + "name": "skill_shared", + "columns": [ + "shared" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "skill_id": { + "name": "skill_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "team_member": { + "name": "team_member", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "team_member_team_id": { + "name": "team_member_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + }, + "team_member_org_membership_id": { + "name": "team_member_org_membership_id", + "columns": [ + "org_membership_id" + ], + "isUnique": false + }, + "team_member_team_org_membership": { + "name": "team_member_team_org_membership", + "columns": [ + "team_id", + "org_membership_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "team_member_id": { + "name": "team_member_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "team": { + "name": "team", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "team_organization_id": { + "name": "team_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "team_organization_name": { + "name": "team_organization_name", + "columns": [ + "organization_id", + "name" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "team_id": { + "name": "team_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "audit_event": { + "name": "audit_event", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_id": { + "name": "org_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "worker_id": { + "name": "worker_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "actor_user_id": { + "name": "actor_user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "action": { + "name": "action", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "payload": { + "name": "payload", + "type": "json", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "audit_event_org_id": { + "name": "audit_event_org_id", + "columns": [ + "org_id" + ], + "isUnique": false + }, + "audit_event_worker_id": { + "name": "audit_event_worker_id", + "columns": [ + "worker_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "audit_event_id": { + "name": "audit_event_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "daytona_sandbox": { + "name": "daytona_sandbox", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "worker_id": { + "name": "worker_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "sandbox_id": { + "name": "sandbox_id", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "workspace_volume_id": { + "name": "workspace_volume_id", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "data_volume_id": { + "name": "data_volume_id", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "signed_preview_url": { + "name": "signed_preview_url", + "type": "varchar(2048)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "signed_preview_url_expires_at": { + "name": "signed_preview_url_expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "region": { + "name": "region", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "daytona_sandbox_worker_id": { + "name": "daytona_sandbox_worker_id", + "columns": [ + "worker_id" + ], + "isUnique": true + }, + "daytona_sandbox_sandbox_id": { + "name": "daytona_sandbox_sandbox_id", + "columns": [ + "sandbox_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "daytona_sandbox_id": { + "name": "daytona_sandbox_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "worker_bundle": { + "name": "worker_bundle", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "worker_id": { + "name": "worker_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "storage_url": { + "name": "storage_url", + "type": "varchar(2048)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "worker_bundle_worker_id": { + "name": "worker_bundle_worker_id", + "columns": [ + "worker_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "worker_bundle_id": { + "name": "worker_bundle_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "worker_instance": { + "name": "worker_instance", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "worker_id": { + "name": "worker_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "provider": { + "name": "provider", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "region": { + "name": "region", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "url": { + "name": "url", + "type": "varchar(2048)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('provisioning','healthy','failed','stopped')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "worker_instance_worker_id": { + "name": "worker_instance_worker_id", + "columns": [ + "worker_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "worker_instance_id": { + "name": "worker_instance_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "worker": { + "name": "worker", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_id": { + "name": "org_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_user_id": { + "name": "created_by_user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "varchar(1024)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "destination": { + "name": "destination", + "type": "enum('local','cloud')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('provisioning','healthy','failed','stopped')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "image_version": { + "name": "image_version", + "type": "varchar(128)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "workspace_path": { + "name": "workspace_path", + "type": "varchar(1024)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "sandbox_backend": { + "name": "sandbox_backend", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_heartbeat_at": { + "name": "last_heartbeat_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_active_at": { + "name": "last_active_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "worker_org_id": { + "name": "worker_org_id", + "columns": [ + "org_id" + ], + "isUnique": false + }, + "worker_created_by_user_id": { + "name": "worker_created_by_user_id", + "columns": [ + "created_by_user_id" + ], + "isUnique": false + }, + "worker_status": { + "name": "worker_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "worker_last_heartbeat_at": { + "name": "worker_last_heartbeat_at", + "columns": [ + "last_heartbeat_at" + ], + "isUnique": false + }, + "worker_last_active_at": { + "name": "worker_last_active_at", + "columns": [ + "last_active_at" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "worker_id": { + "name": "worker_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "worker_token": { + "name": "worker_token", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "worker_id": { + "name": "worker_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "scope": { + "name": "scope", + "type": "enum('client','host','activity')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "token": { + "name": "token", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "revoked_at": { + "name": "revoked_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "worker_token_worker_id": { + "name": "worker_token_worker_id", + "columns": [ + "worker_id" + ], + "isUnique": false + }, + "worker_token_token": { + "name": "worker_token_token", + "columns": [ + "token" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "worker_token_id": { + "name": "worker_token_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "admin_allowlist": { + "name": "admin_allowlist", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "email": { + "name": "email", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "note": { + "name": "note", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "admin_allowlist_email": { + "name": "admin_allowlist_email", + "columns": [ + "email" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "admin_allowlist_id": { + "name": "admin_allowlist_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "rate_limit": { + "name": "rate_limit", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "key": { + "name": "key", + "type": "varchar(512)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "count": { + "name": "count", + "type": "int", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": 0 + }, + "last_request": { + "name": "last_request", + "type": "bigint", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "rate_limit_key": { + "name": "rate_limit_key", + "columns": [ + "key" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "rate_limit_id": { + "name": "rate_limit_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + } + }, + "views": {}, + "_meta": { + "schemas": {}, + "tables": {}, + "columns": {} + }, + "internal": { + "tables": {}, + "indexes": {} + } +} \ No newline at end of file diff --git a/ee/packages/den-db/drizzle/meta/0013_snapshot.json b/ee/packages/den-db/drizzle/meta/0013_snapshot.json new file mode 100644 index 000000000..472190d66 --- /dev/null +++ b/ee/packages/den-db/drizzle/meta/0013_snapshot.json @@ -0,0 +1,4980 @@ +{ + "version": "5", + "dialect": "mysql", + "id": "5280e15b-73db-464f-915e-23c0de77613b", + "prevId": "d2895cb4-d52e-49a2-a2a7-59032a09a6bd", + "tables": { + "account": { + "name": "account", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "account_id": { + "name": "account_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "provider_id": { + "name": "provider_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "access_token": { + "name": "access_token", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "refresh_token": { + "name": "refresh_token", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "access_token_expires_at": { + "name": "access_token_expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "refresh_token_expires_at": { + "name": "refresh_token_expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "scope": { + "name": "scope", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "id_token": { + "name": "id_token", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "password": { + "name": "password", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "account_user_id": { + "name": "account_user_id", + "columns": [ + "user_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "account_id": { + "name": "account_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "apikey": { + "name": "apikey", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "config_id": { + "name": "config_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'default'" + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "start": { + "name": "start", + "type": "varchar(32)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "prefix": { + "name": "prefix", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "key": { + "name": "key", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "reference_id": { + "name": "reference_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "refill_interval": { + "name": "refill_interval", + "type": "bigint", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "refill_amount": { + "name": "refill_amount", + "type": "int", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_refill_at": { + "name": "last_refill_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "enabled": { + "name": "enabled", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": true + }, + "rate_limit_enabled": { + "name": "rate_limit_enabled", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": true + }, + "rate_limit_time_window": { + "name": "rate_limit_time_window", + "type": "bigint", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "rate_limit_max": { + "name": "rate_limit_max", + "type": "int", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "request_count": { + "name": "request_count", + "type": "int", + "primaryKey": false, + "notNull": false, + "autoincrement": false, + "default": 0 + }, + "remaining": { + "name": "remaining", + "type": "int", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_request": { + "name": "last_request", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + }, + "permissions": { + "name": "permissions", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "metadata": { + "name": "metadata", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "apikey_config_id": { + "name": "apikey_config_id", + "columns": [ + "config_id" + ], + "isUnique": false + }, + "apikey_reference_id": { + "name": "apikey_reference_id", + "columns": [ + "reference_id" + ], + "isUnique": false + }, + "apikey_key": { + "name": "apikey_key", + "columns": [ + "key" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "apikey_id": { + "name": "apikey_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "session": { + "name": "session", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "active_organization_id": { + "name": "active_organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "active_team_id": { + "name": "active_team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "token": { + "name": "token", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "ip_address": { + "name": "ip_address", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "user_agent": { + "name": "user_agent", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "session_token": { + "name": "session_token", + "columns": [ + "token" + ], + "isUnique": true + }, + "session_user_id": { + "name": "session_user_id", + "columns": [ + "user_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "session_id": { + "name": "session_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "user": { + "name": "user", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "email": { + "name": "email", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "email_verified": { + "name": "email_verified", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "image": { + "name": "image", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "user_email": { + "name": "user_email", + "columns": [ + "email" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "user_id": { + "name": "user_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "verification": { + "name": "verification", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "identifier": { + "name": "identifier", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "value": { + "name": "value", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "verification_identifier": { + "name": "verification_identifier", + "columns": [ + "identifier" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "verification_id": { + "name": "verification_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "desktop_handoff_grant": { + "name": "desktop_handoff_grant", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "session_token": { + "name": "session_token", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "consumed_at": { + "name": "consumed_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "desktop_handoff_grant_user_id": { + "name": "desktop_handoff_grant_user_id", + "columns": [ + "user_id" + ], + "isUnique": false + }, + "desktop_handoff_grant_expires_at": { + "name": "desktop_handoff_grant_expires_at", + "columns": [ + "expires_at" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "desktop_handoff_grant_id": { + "name": "desktop_handoff_grant_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "invitation": { + "name": "invitation", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "email": { + "name": "email", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "role": { + "name": "role", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "varchar(32)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'pending'" + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "inviter_id": { + "name": "inviter_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "invitation_organization_id": { + "name": "invitation_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "invitation_email": { + "name": "invitation_email", + "columns": [ + "email" + ], + "isUnique": false + }, + "invitation_status": { + "name": "invitation_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "invitation_team_id": { + "name": "invitation_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "invitation_id": { + "name": "invitation_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "member": { + "name": "member", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "role": { + "name": "role", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'member'" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "member_organization_id": { + "name": "member_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "member_user_id": { + "name": "member_user_id", + "columns": [ + "user_id" + ], + "isUnique": false + }, + "member_organization_user": { + "name": "member_organization_user", + "columns": [ + "organization_id", + "user_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "member_id": { + "name": "member_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "organization_role": { + "name": "organization_role", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "role": { + "name": "role", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "permission": { + "name": "permission", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "organization_role_organization_id": { + "name": "organization_role_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "organization_role_name": { + "name": "organization_role_name", + "columns": [ + "organization_id", + "role" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "organization_role_id": { + "name": "organization_role_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "organization": { + "name": "organization", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "slug": { + "name": "slug", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "logo": { + "name": "logo", + "type": "varchar(2048)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "allowed_email_domains": { + "name": "allowed_email_domains", + "type": "json", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "desktop_app_restrictions": { + "name": "desktop_app_restrictions", + "type": "json", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(json_object())" + }, + "metadata": { + "name": "metadata", + "type": "json", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "organization_slug": { + "name": "organization_slug", + "columns": [ + "slug" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "organization_id": { + "name": "organization_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "temp_template_sharing": { + "name": "temp_template_sharing", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "creator_member_id": { + "name": "creator_member_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "creator_user_id": { + "name": "creator_user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "template_json": { + "name": "template_json", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "temp_template_sharing_org_id": { + "name": "temp_template_sharing_org_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "temp_template_sharing_creator_member_id": { + "name": "temp_template_sharing_creator_member_id", + "columns": [ + "creator_member_id" + ], + "isUnique": false + }, + "temp_template_sharing_creator_user_id": { + "name": "temp_template_sharing_creator_user_id", + "columns": [ + "creator_user_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "temp_template_sharing_id": { + "name": "temp_template_sharing_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "llm_provider_access": { + "name": "llm_provider_access", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "llm_provider_id": { + "name": "llm_provider_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "llm_provider_access_llm_provider_id": { + "name": "llm_provider_access_llm_provider_id", + "columns": [ + "llm_provider_id" + ], + "isUnique": false + }, + "llm_provider_access_org_membership_id": { + "name": "llm_provider_access_org_membership_id", + "columns": [ + "org_membership_id" + ], + "isUnique": false + }, + "llm_provider_access_team_id": { + "name": "llm_provider_access_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + }, + "llm_provider_access_provider_org_membership": { + "name": "llm_provider_access_provider_org_membership", + "columns": [ + "llm_provider_id", + "org_membership_id" + ], + "isUnique": true + }, + "llm_provider_access_provider_team": { + "name": "llm_provider_access_provider_team", + "columns": [ + "llm_provider_id", + "team_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "llm_provider_access_id": { + "name": "llm_provider_access_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "llm_provider_model": { + "name": "llm_provider_model", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "llm_provider_id": { + "name": "llm_provider_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "model_id": { + "name": "model_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "model_config": { + "name": "model_config", + "type": "json", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "llm_provider_model_llm_provider_id": { + "name": "llm_provider_model_llm_provider_id", + "columns": [ + "llm_provider_id" + ], + "isUnique": false + }, + "llm_provider_model_model_id": { + "name": "llm_provider_model_model_id", + "columns": [ + "model_id" + ], + "isUnique": false + }, + "llm_provider_model_provider_model": { + "name": "llm_provider_model_provider_model", + "columns": [ + "llm_provider_id", + "model_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "llm_provider_model_id": { + "name": "llm_provider_model_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "llm_provider": { + "name": "llm_provider", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "source": { + "name": "source", + "type": "enum('models_dev','custom')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "provider_id": { + "name": "provider_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "provider_config": { + "name": "provider_config", + "type": "json", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "api_key": { + "name": "api_key", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "llm_provider_organization_id": { + "name": "llm_provider_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "llm_provider_created_by_org_membership_id": { + "name": "llm_provider_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + }, + "llm_provider_source": { + "name": "llm_provider_source", + "columns": [ + "source" + ], + "isUnique": false + }, + "llm_provider_provider_id": { + "name": "llm_provider_provider_id", + "columns": [ + "provider_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "llm_provider_id": { + "name": "llm_provider_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "config_object_access_grant": { + "name": "config_object_access_grant", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "config_object_id": { + "name": "config_object_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "org_wide": { + "name": "org_wide", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "role": { + "name": "role", + "type": "enum('viewer','editor','manager')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "removed_at": { + "name": "removed_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "config_object_access_grant_organization_id": { + "name": "config_object_access_grant_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "config_object_access_grant_config_object_id": { + "name": "config_object_access_grant_config_object_id", + "columns": [ + "config_object_id" + ], + "isUnique": false + }, + "config_object_access_grant_org_membership_id": { + "name": "config_object_access_grant_org_membership_id", + "columns": [ + "org_membership_id" + ], + "isUnique": false + }, + "config_object_access_grant_team_id": { + "name": "config_object_access_grant_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + }, + "config_object_access_grant_org_wide": { + "name": "config_object_access_grant_org_wide", + "columns": [ + "org_wide" + ], + "isUnique": false + }, + "config_object_access_grant_object_org_membership": { + "name": "config_object_access_grant_object_org_membership", + "columns": [ + "config_object_id", + "org_membership_id" + ], + "isUnique": true + }, + "config_object_access_grant_object_team": { + "name": "config_object_access_grant_object_team", + "columns": [ + "config_object_id", + "team_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "config_object_access_grant_id": { + "name": "config_object_access_grant_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "config_object": { + "name": "config_object", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "object_type": { + "name": "object_type", + "type": "enum('skill','agent','command','tool','mcp','hook','context','custom')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "source_mode": { + "name": "source_mode", + "type": "enum('cloud','import','connector')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "title": { + "name": "title", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "search_text": { + "name": "search_text", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "current_file_name": { + "name": "current_file_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "current_file_extension": { + "name": "current_file_extension", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "current_relative_path": { + "name": "current_relative_path", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('active','inactive','deleted','archived','ingestion_error')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'active'" + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_instance_id": { + "name": "connector_instance_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + }, + "deleted_at": { + "name": "deleted_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "config_object_organization_id": { + "name": "config_object_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "config_object_type": { + "name": "config_object_type", + "columns": [ + "object_type" + ], + "isUnique": false + }, + "config_object_source_mode": { + "name": "config_object_source_mode", + "columns": [ + "source_mode" + ], + "isUnique": false + }, + "config_object_status": { + "name": "config_object_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "config_object_created_by_org_membership_id": { + "name": "config_object_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + }, + "config_object_connector_instance_id": { + "name": "config_object_connector_instance_id", + "columns": [ + "connector_instance_id" + ], + "isUnique": false + }, + "config_object_current_relative_path": { + "name": "config_object_current_relative_path", + "columns": [ + "current_relative_path" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "config_object_id": { + "name": "config_object_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "config_object_version": { + "name": "config_object_version", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "config_object_id": { + "name": "config_object_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "normalized_payload_json": { + "name": "normalized_payload_json", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "raw_source_text": { + "name": "raw_source_text", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "schema_version": { + "name": "schema_version", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_via": { + "name": "created_via", + "type": "enum('cloud','import','connector','system')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "connector_sync_event_id": { + "name": "connector_sync_event_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "source_revision_ref": { + "name": "source_revision_ref", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "is_deleted_version": { + "name": "is_deleted_version", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "config_object_version_organization_id": { + "name": "config_object_version_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "config_object_version_config_object_id": { + "name": "config_object_version_config_object_id", + "columns": [ + "config_object_id" + ], + "isUnique": false + }, + "config_object_version_created_by_org_membership_id": { + "name": "config_object_version_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + }, + "config_object_version_connector_sync_event_id": { + "name": "config_object_version_connector_sync_event_id", + "columns": [ + "connector_sync_event_id" + ], + "isUnique": false + }, + "config_object_version_source_revision_ref": { + "name": "config_object_version_source_revision_ref", + "columns": [ + "source_revision_ref" + ], + "isUnique": false + }, + "config_object_version_lookup_latest": { + "name": "config_object_version_lookup_latest", + "columns": [ + "config_object_id", + "created_at", + "id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "config_object_version_id": { + "name": "config_object_version_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "connector_account": { + "name": "connector_account", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_type": { + "name": "connector_type", + "type": "enum('github')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "remote_id": { + "name": "remote_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "external_account_ref": { + "name": "external_account_ref", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "display_name": { + "name": "display_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('active','inactive','disconnected','error')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'active'" + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "metadata_json": { + "name": "metadata_json", + "type": "json", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "connector_account_organization_id": { + "name": "connector_account_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "connector_account_created_by_org_membership_id": { + "name": "connector_account_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + }, + "connector_account_connector_type": { + "name": "connector_account_connector_type", + "columns": [ + "connector_type" + ], + "isUnique": false + }, + "connector_account_status": { + "name": "connector_account_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "connector_account_org_type_remote_id": { + "name": "connector_account_org_type_remote_id", + "columns": [ + "organization_id", + "connector_type", + "remote_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "connector_account_id": { + "name": "connector_account_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "connector_instance_access_grant": { + "name": "connector_instance_access_grant", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_instance_id": { + "name": "connector_instance_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "org_wide": { + "name": "org_wide", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "role": { + "name": "role", + "type": "enum('viewer','editor','manager')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "removed_at": { + "name": "removed_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "connector_instance_access_grant_organization_id": { + "name": "connector_instance_access_grant_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "connector_instance_access_grant_instance_id": { + "name": "connector_instance_access_grant_instance_id", + "columns": [ + "connector_instance_id" + ], + "isUnique": false + }, + "connector_instance_access_grant_org_membership_id": { + "name": "connector_instance_access_grant_org_membership_id", + "columns": [ + "org_membership_id" + ], + "isUnique": false + }, + "connector_instance_access_grant_team_id": { + "name": "connector_instance_access_grant_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + }, + "connector_instance_access_grant_org_wide": { + "name": "connector_instance_access_grant_org_wide", + "columns": [ + "org_wide" + ], + "isUnique": false + }, + "connector_instance_access_grant_instance_org_membership": { + "name": "connector_instance_access_grant_instance_org_membership", + "columns": [ + "connector_instance_id", + "org_membership_id" + ], + "isUnique": true + }, + "connector_instance_access_grant_instance_team": { + "name": "connector_instance_access_grant_instance_team", + "columns": [ + "connector_instance_id", + "team_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "connector_instance_access_grant_id": { + "name": "connector_instance_access_grant_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "connector_instance": { + "name": "connector_instance", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_account_id": { + "name": "connector_account_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_type": { + "name": "connector_type", + "type": "enum('github')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "remote_id": { + "name": "remote_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('active','disabled','archived','error')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'active'" + }, + "instance_config_json": { + "name": "instance_config_json", + "type": "json", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_synced_at": { + "name": "last_synced_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_sync_status": { + "name": "last_sync_status", + "type": "enum('pending','queued','running','completed','failed','partial','ignored')", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_sync_cursor": { + "name": "last_sync_cursor", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "connector_instance_organization_id": { + "name": "connector_instance_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "connector_instance_connector_account_id": { + "name": "connector_instance_connector_account_id", + "columns": [ + "connector_account_id" + ], + "isUnique": false + }, + "connector_instance_created_by_org_membership_id": { + "name": "connector_instance_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + }, + "connector_instance_connector_type": { + "name": "connector_instance_connector_type", + "columns": [ + "connector_type" + ], + "isUnique": false + }, + "connector_instance_status": { + "name": "connector_instance_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "connector_instance_org_name": { + "name": "connector_instance_org_name", + "columns": [ + "organization_id", + "name" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "connector_instance_id": { + "name": "connector_instance_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "connector_mapping": { + "name": "connector_mapping", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_instance_id": { + "name": "connector_instance_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_target_id": { + "name": "connector_target_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_type": { + "name": "connector_type", + "type": "enum('github')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "remote_id": { + "name": "remote_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "mapping_kind": { + "name": "mapping_kind", + "type": "enum('path','api','custom')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "selector": { + "name": "selector", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "object_type": { + "name": "object_type", + "type": "enum('skill','agent','command','tool','mcp','hook','context','custom')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "plugin_id": { + "name": "plugin_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "auto_add_to_plugin": { + "name": "auto_add_to_plugin", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "mapping_config_json": { + "name": "mapping_config_json", + "type": "json", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "connector_mapping_organization_id": { + "name": "connector_mapping_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "connector_mapping_connector_instance_id": { + "name": "connector_mapping_connector_instance_id", + "columns": [ + "connector_instance_id" + ], + "isUnique": false + }, + "connector_mapping_connector_target_id": { + "name": "connector_mapping_connector_target_id", + "columns": [ + "connector_target_id" + ], + "isUnique": false + }, + "connector_mapping_object_type": { + "name": "connector_mapping_object_type", + "columns": [ + "object_type" + ], + "isUnique": false + }, + "connector_mapping_plugin_id": { + "name": "connector_mapping_plugin_id", + "columns": [ + "plugin_id" + ], + "isUnique": false + }, + "connector_mapping_target_selector_object_type": { + "name": "connector_mapping_target_selector_object_type", + "columns": [ + "connector_target_id", + "selector", + "object_type" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "connector_mapping_id": { + "name": "connector_mapping_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "connector_source_binding": { + "name": "connector_source_binding", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "config_object_id": { + "name": "config_object_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_instance_id": { + "name": "connector_instance_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_target_id": { + "name": "connector_target_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_mapping_id": { + "name": "connector_mapping_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_type": { + "name": "connector_type", + "type": "enum('github')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "remote_id": { + "name": "remote_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "external_locator": { + "name": "external_locator", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "external_stable_ref": { + "name": "external_stable_ref", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_seen_source_revision_ref": { + "name": "last_seen_source_revision_ref", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('active','inactive','deleted','archived','ingestion_error')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'active'" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + }, + "deleted_at": { + "name": "deleted_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "connector_source_binding_organization_id": { + "name": "connector_source_binding_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "connector_source_binding_config_object_id": { + "name": "connector_source_binding_config_object_id", + "columns": [ + "config_object_id" + ], + "isUnique": false + }, + "connector_source_binding_connector_instance_id": { + "name": "connector_source_binding_connector_instance_id", + "columns": [ + "connector_instance_id" + ], + "isUnique": false + }, + "connector_source_binding_connector_target_id": { + "name": "connector_source_binding_connector_target_id", + "columns": [ + "connector_target_id" + ], + "isUnique": false + }, + "connector_source_binding_connector_mapping_id": { + "name": "connector_source_binding_connector_mapping_id", + "columns": [ + "connector_mapping_id" + ], + "isUnique": false + }, + "connector_source_binding_external_locator": { + "name": "connector_source_binding_external_locator", + "columns": [ + "external_locator" + ], + "isUnique": false + }, + "connector_source_binding_config_object": { + "name": "connector_source_binding_config_object", + "columns": [ + "config_object_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "connector_source_binding_id": { + "name": "connector_source_binding_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "connector_source_tombstone": { + "name": "connector_source_tombstone", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_instance_id": { + "name": "connector_instance_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_target_id": { + "name": "connector_target_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_mapping_id": { + "name": "connector_mapping_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_type": { + "name": "connector_type", + "type": "enum('github')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "remote_id": { + "name": "remote_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "external_locator": { + "name": "external_locator", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "former_config_object_id": { + "name": "former_config_object_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "deleted_in_sync_event_id": { + "name": "deleted_in_sync_event_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "deleted_source_revision_ref": { + "name": "deleted_source_revision_ref", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "connector_source_tombstone_organization_id": { + "name": "connector_source_tombstone_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "connector_source_tombstone_connector_instance_id": { + "name": "connector_source_tombstone_connector_instance_id", + "columns": [ + "connector_instance_id" + ], + "isUnique": false + }, + "connector_source_tombstone_connector_target_id": { + "name": "connector_source_tombstone_connector_target_id", + "columns": [ + "connector_target_id" + ], + "isUnique": false + }, + "connector_source_tombstone_connector_mapping_id": { + "name": "connector_source_tombstone_connector_mapping_id", + "columns": [ + "connector_mapping_id" + ], + "isUnique": false + }, + "connector_source_tombstone_external_locator": { + "name": "connector_source_tombstone_external_locator", + "columns": [ + "external_locator" + ], + "isUnique": false + }, + "connector_source_tombstone_former_config_object_id": { + "name": "connector_source_tombstone_former_config_object_id", + "columns": [ + "former_config_object_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "connector_source_tombstone_id": { + "name": "connector_source_tombstone_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "connector_sync_event": { + "name": "connector_sync_event", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_instance_id": { + "name": "connector_instance_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_target_id": { + "name": "connector_target_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "connector_type": { + "name": "connector_type", + "type": "enum('github')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "remote_id": { + "name": "remote_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "event_type": { + "name": "event_type", + "type": "enum('push','installation','installation_repositories','repository','manual_resync')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "external_event_ref": { + "name": "external_event_ref", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "source_revision_ref": { + "name": "source_revision_ref", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('pending','queued','running','completed','failed','partial','ignored')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'pending'" + }, + "summary_json": { + "name": "summary_json", + "type": "json", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "started_at": { + "name": "started_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "completed_at": { + "name": "completed_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "connector_sync_event_organization_id": { + "name": "connector_sync_event_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "connector_sync_event_connector_instance_id": { + "name": "connector_sync_event_connector_instance_id", + "columns": [ + "connector_instance_id" + ], + "isUnique": false + }, + "connector_sync_event_connector_target_id": { + "name": "connector_sync_event_connector_target_id", + "columns": [ + "connector_target_id" + ], + "isUnique": false + }, + "connector_sync_event_event_type": { + "name": "connector_sync_event_event_type", + "columns": [ + "event_type" + ], + "isUnique": false + }, + "connector_sync_event_status": { + "name": "connector_sync_event_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "connector_sync_event_source_revision_ref": { + "name": "connector_sync_event_source_revision_ref", + "columns": [ + "source_revision_ref" + ], + "isUnique": false + }, + "connector_sync_event_external_event_ref": { + "name": "connector_sync_event_external_event_ref", + "columns": [ + "external_event_ref" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "connector_sync_event_id": { + "name": "connector_sync_event_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "connector_target": { + "name": "connector_target", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_instance_id": { + "name": "connector_instance_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_type": { + "name": "connector_type", + "type": "enum('github')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "remote_id": { + "name": "remote_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "target_kind": { + "name": "target_kind", + "type": "enum('repository_branch')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "external_target_ref": { + "name": "external_target_ref", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "target_config_json": { + "name": "target_config_json", + "type": "json", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "connector_target_organization_id": { + "name": "connector_target_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "connector_target_connector_instance_id": { + "name": "connector_target_connector_instance_id", + "columns": [ + "connector_instance_id" + ], + "isUnique": false + }, + "connector_target_connector_type": { + "name": "connector_target_connector_type", + "columns": [ + "connector_type" + ], + "isUnique": false + }, + "connector_target_target_kind": { + "name": "connector_target_target_kind", + "columns": [ + "target_kind" + ], + "isUnique": false + }, + "connector_target_instance_remote_id": { + "name": "connector_target_instance_remote_id", + "columns": [ + "connector_instance_id", + "remote_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "connector_target_id": { + "name": "connector_target_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "marketplace_access_grant": { + "name": "marketplace_access_grant", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "marketplace_id": { + "name": "marketplace_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "org_wide": { + "name": "org_wide", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "role": { + "name": "role", + "type": "enum('viewer','editor','manager')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "removed_at": { + "name": "removed_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "marketplace_access_grant_organization_id": { + "name": "marketplace_access_grant_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "marketplace_access_grant_marketplace_id": { + "name": "marketplace_access_grant_marketplace_id", + "columns": [ + "marketplace_id" + ], + "isUnique": false + }, + "marketplace_access_grant_org_membership_id": { + "name": "marketplace_access_grant_org_membership_id", + "columns": [ + "org_membership_id" + ], + "isUnique": false + }, + "marketplace_access_grant_team_id": { + "name": "marketplace_access_grant_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + }, + "marketplace_access_grant_org_wide": { + "name": "marketplace_access_grant_org_wide", + "columns": [ + "org_wide" + ], + "isUnique": false + }, + "marketplace_access_grant_marketplace_org_membership": { + "name": "marketplace_access_grant_marketplace_org_membership", + "columns": [ + "marketplace_id", + "org_membership_id" + ], + "isUnique": true + }, + "marketplace_access_grant_marketplace_team": { + "name": "marketplace_access_grant_marketplace_team", + "columns": [ + "marketplace_id", + "team_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "marketplace_access_grant_id": { + "name": "marketplace_access_grant_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "marketplace_plugin": { + "name": "marketplace_plugin", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "marketplace_id": { + "name": "marketplace_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "plugin_id": { + "name": "plugin_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "membership_source": { + "name": "membership_source", + "type": "enum('manual','connector','api','system')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'manual'" + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "removed_at": { + "name": "removed_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "marketplace_plugin_organization_id": { + "name": "marketplace_plugin_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "marketplace_plugin_marketplace_id": { + "name": "marketplace_plugin_marketplace_id", + "columns": [ + "marketplace_id" + ], + "isUnique": false + }, + "marketplace_plugin_plugin_id": { + "name": "marketplace_plugin_plugin_id", + "columns": [ + "plugin_id" + ], + "isUnique": false + }, + "marketplace_plugin_marketplace_plugin": { + "name": "marketplace_plugin_marketplace_plugin", + "columns": [ + "marketplace_id", + "plugin_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "marketplace_plugin_id": { + "name": "marketplace_plugin_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "marketplace": { + "name": "marketplace", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('active','inactive','deleted','archived')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'active'" + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + }, + "deleted_at": { + "name": "deleted_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "marketplace_organization_id": { + "name": "marketplace_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "marketplace_created_by_org_membership_id": { + "name": "marketplace_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + }, + "marketplace_status": { + "name": "marketplace_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "marketplace_name": { + "name": "marketplace_name", + "columns": [ + "name" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "marketplace_id": { + "name": "marketplace_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "plugin_access_grant": { + "name": "plugin_access_grant", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "plugin_id": { + "name": "plugin_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "org_wide": { + "name": "org_wide", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "role": { + "name": "role", + "type": "enum('viewer','editor','manager')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "removed_at": { + "name": "removed_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "plugin_access_grant_organization_id": { + "name": "plugin_access_grant_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "plugin_access_grant_plugin_id": { + "name": "plugin_access_grant_plugin_id", + "columns": [ + "plugin_id" + ], + "isUnique": false + }, + "plugin_access_grant_org_membership_id": { + "name": "plugin_access_grant_org_membership_id", + "columns": [ + "org_membership_id" + ], + "isUnique": false + }, + "plugin_access_grant_team_id": { + "name": "plugin_access_grant_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + }, + "plugin_access_grant_org_wide": { + "name": "plugin_access_grant_org_wide", + "columns": [ + "org_wide" + ], + "isUnique": false + }, + "plugin_access_grant_plugin_org_membership": { + "name": "plugin_access_grant_plugin_org_membership", + "columns": [ + "plugin_id", + "org_membership_id" + ], + "isUnique": true + }, + "plugin_access_grant_plugin_team": { + "name": "plugin_access_grant_plugin_team", + "columns": [ + "plugin_id", + "team_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "plugin_access_grant_id": { + "name": "plugin_access_grant_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "plugin_config_object": { + "name": "plugin_config_object", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "plugin_id": { + "name": "plugin_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "config_object_id": { + "name": "config_object_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "membership_source": { + "name": "membership_source", + "type": "enum('manual','connector','api','system')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'manual'" + }, + "connector_mapping_id": { + "name": "connector_mapping_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "removed_at": { + "name": "removed_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "plugin_config_object_organization_id": { + "name": "plugin_config_object_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "plugin_config_object_plugin_id": { + "name": "plugin_config_object_plugin_id", + "columns": [ + "plugin_id" + ], + "isUnique": false + }, + "plugin_config_object_config_object_id": { + "name": "plugin_config_object_config_object_id", + "columns": [ + "config_object_id" + ], + "isUnique": false + }, + "plugin_config_object_connector_mapping_id": { + "name": "plugin_config_object_connector_mapping_id", + "columns": [ + "connector_mapping_id" + ], + "isUnique": false + }, + "plugin_config_object_plugin_config_object": { + "name": "plugin_config_object_plugin_config_object", + "columns": [ + "plugin_id", + "config_object_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "plugin_config_object_id": { + "name": "plugin_config_object_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "plugin": { + "name": "plugin", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('active','inactive','deleted','archived')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'active'" + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + }, + "deleted_at": { + "name": "deleted_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "plugin_organization_id": { + "name": "plugin_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "plugin_created_by_org_membership_id": { + "name": "plugin_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + }, + "plugin_status": { + "name": "plugin_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "plugin_name": { + "name": "plugin_name", + "columns": [ + "name" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "plugin_id": { + "name": "plugin_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "skill_hub_member": { + "name": "skill_hub_member", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "skill_hub_id": { + "name": "skill_hub_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "skill_hub_member_skill_hub_id": { + "name": "skill_hub_member_skill_hub_id", + "columns": [ + "skill_hub_id" + ], + "isUnique": false + }, + "skill_hub_member_org_membership_id": { + "name": "skill_hub_member_org_membership_id", + "columns": [ + "org_membership_id" + ], + "isUnique": false + }, + "skill_hub_member_team_id": { + "name": "skill_hub_member_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + }, + "skill_hub_member_hub_org_membership": { + "name": "skill_hub_member_hub_org_membership", + "columns": [ + "skill_hub_id", + "org_membership_id" + ], + "isUnique": true + }, + "skill_hub_member_hub_team": { + "name": "skill_hub_member_hub_team", + "columns": [ + "skill_hub_id", + "team_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "skill_hub_member_id": { + "name": "skill_hub_member_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "skill_hub_skill": { + "name": "skill_hub_skill", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "skill_hub_id": { + "name": "skill_hub_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "skill_id": { + "name": "skill_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "skill_hub_skill_skill_hub_id": { + "name": "skill_hub_skill_skill_hub_id", + "columns": [ + "skill_hub_id" + ], + "isUnique": false + }, + "skill_hub_skill_skill_id": { + "name": "skill_hub_skill_skill_id", + "columns": [ + "skill_id" + ], + "isUnique": false + }, + "skill_hub_skill_hub_skill": { + "name": "skill_hub_skill_hub_skill", + "columns": [ + "skill_hub_id", + "skill_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "skill_hub_skill_id": { + "name": "skill_hub_skill_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "skill_hub": { + "name": "skill_hub", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "skill_hub_organization_id": { + "name": "skill_hub_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "skill_hub_created_by_org_membership_id": { + "name": "skill_hub_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "skill_hub_id": { + "name": "skill_hub_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "skill": { + "name": "skill", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "title": { + "name": "title", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "skill_text": { + "name": "skill_text", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "shared": { + "name": "shared", + "type": "enum('org','public')", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "skill_organization_id": { + "name": "skill_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "skill_created_by_org_membership_id": { + "name": "skill_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + }, + "skill_shared": { + "name": "skill_shared", + "columns": [ + "shared" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "skill_id": { + "name": "skill_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "team_member": { + "name": "team_member", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "team_member_team_id": { + "name": "team_member_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + }, + "team_member_org_membership_id": { + "name": "team_member_org_membership_id", + "columns": [ + "org_membership_id" + ], + "isUnique": false + }, + "team_member_team_org_membership": { + "name": "team_member_team_org_membership", + "columns": [ + "team_id", + "org_membership_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "team_member_id": { + "name": "team_member_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "team": { + "name": "team", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "team_organization_id": { + "name": "team_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "team_organization_name": { + "name": "team_organization_name", + "columns": [ + "organization_id", + "name" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "team_id": { + "name": "team_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "audit_event": { + "name": "audit_event", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_id": { + "name": "org_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "worker_id": { + "name": "worker_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "actor_user_id": { + "name": "actor_user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "action": { + "name": "action", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "payload": { + "name": "payload", + "type": "json", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "audit_event_org_id": { + "name": "audit_event_org_id", + "columns": [ + "org_id" + ], + "isUnique": false + }, + "audit_event_worker_id": { + "name": "audit_event_worker_id", + "columns": [ + "worker_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "audit_event_id": { + "name": "audit_event_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "daytona_sandbox": { + "name": "daytona_sandbox", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "worker_id": { + "name": "worker_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "sandbox_id": { + "name": "sandbox_id", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "workspace_volume_id": { + "name": "workspace_volume_id", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "data_volume_id": { + "name": "data_volume_id", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "signed_preview_url": { + "name": "signed_preview_url", + "type": "varchar(2048)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "signed_preview_url_expires_at": { + "name": "signed_preview_url_expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "region": { + "name": "region", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "daytona_sandbox_worker_id": { + "name": "daytona_sandbox_worker_id", + "columns": [ + "worker_id" + ], + "isUnique": true + }, + "daytona_sandbox_sandbox_id": { + "name": "daytona_sandbox_sandbox_id", + "columns": [ + "sandbox_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "daytona_sandbox_id": { + "name": "daytona_sandbox_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "worker_bundle": { + "name": "worker_bundle", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "worker_id": { + "name": "worker_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "storage_url": { + "name": "storage_url", + "type": "varchar(2048)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "worker_bundle_worker_id": { + "name": "worker_bundle_worker_id", + "columns": [ + "worker_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "worker_bundle_id": { + "name": "worker_bundle_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "worker_instance": { + "name": "worker_instance", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "worker_id": { + "name": "worker_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "provider": { + "name": "provider", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "region": { + "name": "region", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "url": { + "name": "url", + "type": "varchar(2048)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('provisioning','healthy','failed','stopped')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "worker_instance_worker_id": { + "name": "worker_instance_worker_id", + "columns": [ + "worker_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "worker_instance_id": { + "name": "worker_instance_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "worker": { + "name": "worker", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_id": { + "name": "org_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_user_id": { + "name": "created_by_user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "varchar(1024)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "destination": { + "name": "destination", + "type": "enum('local','cloud')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('provisioning','healthy','failed','stopped')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "image_version": { + "name": "image_version", + "type": "varchar(128)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "workspace_path": { + "name": "workspace_path", + "type": "varchar(1024)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "sandbox_backend": { + "name": "sandbox_backend", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_heartbeat_at": { + "name": "last_heartbeat_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_active_at": { + "name": "last_active_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "worker_org_id": { + "name": "worker_org_id", + "columns": [ + "org_id" + ], + "isUnique": false + }, + "worker_created_by_user_id": { + "name": "worker_created_by_user_id", + "columns": [ + "created_by_user_id" + ], + "isUnique": false + }, + "worker_status": { + "name": "worker_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "worker_last_heartbeat_at": { + "name": "worker_last_heartbeat_at", + "columns": [ + "last_heartbeat_at" + ], + "isUnique": false + }, + "worker_last_active_at": { + "name": "worker_last_active_at", + "columns": [ + "last_active_at" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "worker_id": { + "name": "worker_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "worker_token": { + "name": "worker_token", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "worker_id": { + "name": "worker_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "scope": { + "name": "scope", + "type": "enum('client','host','activity')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "token": { + "name": "token", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "revoked_at": { + "name": "revoked_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "worker_token_worker_id": { + "name": "worker_token_worker_id", + "columns": [ + "worker_id" + ], + "isUnique": false + }, + "worker_token_token": { + "name": "worker_token_token", + "columns": [ + "token" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "worker_token_id": { + "name": "worker_token_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "admin_allowlist": { + "name": "admin_allowlist", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "email": { + "name": "email", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "note": { + "name": "note", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "admin_allowlist_email": { + "name": "admin_allowlist_email", + "columns": [ + "email" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "admin_allowlist_id": { + "name": "admin_allowlist_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "rate_limit": { + "name": "rate_limit", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "key": { + "name": "key", + "type": "varchar(512)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "count": { + "name": "count", + "type": "int", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": 0 + }, + "last_request": { + "name": "last_request", + "type": "bigint", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "rate_limit_key": { + "name": "rate_limit_key", + "columns": [ + "key" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "rate_limit_id": { + "name": "rate_limit_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + } + }, + "views": {}, + "_meta": { + "schemas": {}, + "tables": {}, + "columns": {} + }, + "internal": { + "tables": {}, + "indexes": {} + } +} \ No newline at end of file diff --git a/ee/packages/den-db/drizzle/meta/0014_snapshot.json b/ee/packages/den-db/drizzle/meta/0014_snapshot.json new file mode 100644 index 000000000..dfeb0cebc --- /dev/null +++ b/ee/packages/den-db/drizzle/meta/0014_snapshot.json @@ -0,0 +1,5618 @@ +{ + "version": "5", + "dialect": "mysql", + "id": "ff808bd7-356d-498b-912f-e79012796613", + "prevId": "f2a298fa-21c2-4dcd-a5d6-b19deb211f4f", + "tables": { + "account": { + "name": "account", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "account_id": { + "name": "account_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "provider_id": { + "name": "provider_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "access_token": { + "name": "access_token", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "refresh_token": { + "name": "refresh_token", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "access_token_expires_at": { + "name": "access_token_expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "refresh_token_expires_at": { + "name": "refresh_token_expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "scope": { + "name": "scope", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "id_token": { + "name": "id_token", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "password": { + "name": "password", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "account_user_id": { + "name": "account_user_id", + "columns": [ + "user_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "account_id": { + "name": "account_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "apikey": { + "name": "apikey", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "config_id": { + "name": "config_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'default'" + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "start": { + "name": "start", + "type": "varchar(32)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "prefix": { + "name": "prefix", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "key": { + "name": "key", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "reference_id": { + "name": "reference_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "refill_interval": { + "name": "refill_interval", + "type": "bigint", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "refill_amount": { + "name": "refill_amount", + "type": "int", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_refill_at": { + "name": "last_refill_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "enabled": { + "name": "enabled", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": true + }, + "rate_limit_enabled": { + "name": "rate_limit_enabled", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": true + }, + "rate_limit_time_window": { + "name": "rate_limit_time_window", + "type": "bigint", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "rate_limit_max": { + "name": "rate_limit_max", + "type": "int", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "request_count": { + "name": "request_count", + "type": "int", + "primaryKey": false, + "notNull": false, + "autoincrement": false, + "default": 0 + }, + "remaining": { + "name": "remaining", + "type": "int", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_request": { + "name": "last_request", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + }, + "permissions": { + "name": "permissions", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "metadata": { + "name": "metadata", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "apikey_config_id": { + "name": "apikey_config_id", + "columns": [ + "config_id" + ], + "isUnique": false + }, + "apikey_reference_id": { + "name": "apikey_reference_id", + "columns": [ + "reference_id" + ], + "isUnique": false + }, + "apikey_key": { + "name": "apikey_key", + "columns": [ + "key" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "apikey_id": { + "name": "apikey_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "jwks": { + "name": "jwks", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "public_key": { + "name": "public_key", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "private_key": { + "name": "private_key", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "alg": { + "name": "alg", + "type": "varchar(32)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "crv": { + "name": "crv", + "type": "varchar(32)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": { + "jwks_id": { + "name": "jwks_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "session": { + "name": "session", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "active_organization_id": { + "name": "active_organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "active_team_id": { + "name": "active_team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "token": { + "name": "token", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "ip_address": { + "name": "ip_address", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "user_agent": { + "name": "user_agent", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "session_token": { + "name": "session_token", + "columns": [ + "token" + ], + "isUnique": true + }, + "session_user_id": { + "name": "session_user_id", + "columns": [ + "user_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "session_id": { + "name": "session_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "user": { + "name": "user", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "email": { + "name": "email", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "email_verified": { + "name": "email_verified", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "image": { + "name": "image", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "user_email": { + "name": "user_email", + "columns": [ + "email" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "user_id": { + "name": "user_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "verification": { + "name": "verification", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "identifier": { + "name": "identifier", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "value": { + "name": "value", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "verification_identifier": { + "name": "verification_identifier", + "columns": [ + "identifier" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "verification_id": { + "name": "verification_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "oauthAccessToken": { + "name": "oauthAccessToken", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "token": { + "name": "token", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "client_id": { + "name": "client_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "session_id": { + "name": "session_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "reference_id": { + "name": "reference_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "refresh_id": { + "name": "refresh_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "scopes": { + "name": "scopes", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "oauth_access_token_client_id": { + "name": "oauth_access_token_client_id", + "columns": [ + "client_id" + ], + "isUnique": false + }, + "oauth_access_token_session_id": { + "name": "oauth_access_token_session_id", + "columns": [ + "session_id" + ], + "isUnique": false + }, + "oauth_access_token_user_id": { + "name": "oauth_access_token_user_id", + "columns": [ + "user_id" + ], + "isUnique": false + }, + "oauth_access_token_reference_id": { + "name": "oauth_access_token_reference_id", + "columns": [ + "reference_id" + ], + "isUnique": false + }, + "oauth_access_token_refresh_id": { + "name": "oauth_access_token_refresh_id", + "columns": [ + "refresh_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "oauthAccessToken_id": { + "name": "oauthAccessToken_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "oauthClient": { + "name": "oauthClient", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "client_id": { + "name": "client_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "client_secret": { + "name": "client_secret", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "disabled": { + "name": "disabled", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "autoincrement": false, + "default": false + }, + "skip_consent": { + "name": "skip_consent", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "enable_end_session": { + "name": "enable_end_session", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "subject_type": { + "name": "subject_type", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "scopes": { + "name": "scopes", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "uri": { + "name": "uri", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "icon": { + "name": "icon", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "contacts": { + "name": "contacts", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "tos": { + "name": "tos", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "policy": { + "name": "policy", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "software_id": { + "name": "software_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "software_version": { + "name": "software_version", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "software_statement": { + "name": "software_statement", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "redirect_uris": { + "name": "redirect_uris", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "post_logout_redirect_uris": { + "name": "post_logout_redirect_uris", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "token_endpoint_auth_method": { + "name": "token_endpoint_auth_method", + "type": "varchar(128)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "grant_types": { + "name": "grant_types", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "response_types": { + "name": "response_types", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "public": { + "name": "public", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "type": { + "name": "type", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "require_pkce": { + "name": "require_pkce", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "reference_id": { + "name": "reference_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "metadata": { + "name": "metadata", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "oauth_client_client_id": { + "name": "oauth_client_client_id", + "columns": [ + "client_id" + ], + "isUnique": true + }, + "oauth_client_user_id": { + "name": "oauth_client_user_id", + "columns": [ + "user_id" + ], + "isUnique": false + }, + "oauth_client_reference_id": { + "name": "oauth_client_reference_id", + "columns": [ + "reference_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "oauthClient_id": { + "name": "oauthClient_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "oauthConsent": { + "name": "oauthConsent", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "client_id": { + "name": "client_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "reference_id": { + "name": "reference_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "scopes": { + "name": "scopes", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "oauth_consent_client_id": { + "name": "oauth_consent_client_id", + "columns": [ + "client_id" + ], + "isUnique": false + }, + "oauth_consent_user_id": { + "name": "oauth_consent_user_id", + "columns": [ + "user_id" + ], + "isUnique": false + }, + "oauth_consent_reference_id": { + "name": "oauth_consent_reference_id", + "columns": [ + "reference_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "oauthConsent_id": { + "name": "oauthConsent_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "oauthRefreshToken": { + "name": "oauthRefreshToken", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "token": { + "name": "token", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "client_id": { + "name": "client_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "session_id": { + "name": "session_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "reference_id": { + "name": "reference_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "revoked": { + "name": "revoked", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "auth_time": { + "name": "auth_time", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "scopes": { + "name": "scopes", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "oauth_refresh_token_client_id": { + "name": "oauth_refresh_token_client_id", + "columns": [ + "client_id" + ], + "isUnique": false + }, + "oauth_refresh_token_session_id": { + "name": "oauth_refresh_token_session_id", + "columns": [ + "session_id" + ], + "isUnique": false + }, + "oauth_refresh_token_user_id": { + "name": "oauth_refresh_token_user_id", + "columns": [ + "user_id" + ], + "isUnique": false + }, + "oauth_refresh_token_reference_id": { + "name": "oauth_refresh_token_reference_id", + "columns": [ + "reference_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "oauthRefreshToken_id": { + "name": "oauthRefreshToken_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "desktop_handoff_grant": { + "name": "desktop_handoff_grant", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "session_token": { + "name": "session_token", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "consumed_at": { + "name": "consumed_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "desktop_handoff_grant_user_id": { + "name": "desktop_handoff_grant_user_id", + "columns": [ + "user_id" + ], + "isUnique": false + }, + "desktop_handoff_grant_expires_at": { + "name": "desktop_handoff_grant_expires_at", + "columns": [ + "expires_at" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "desktop_handoff_grant_id": { + "name": "desktop_handoff_grant_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "invitation": { + "name": "invitation", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "email": { + "name": "email", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "role": { + "name": "role", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "varchar(32)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'pending'" + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "inviter_id": { + "name": "inviter_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "invitation_organization_id": { + "name": "invitation_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "invitation_email": { + "name": "invitation_email", + "columns": [ + "email" + ], + "isUnique": false + }, + "invitation_status": { + "name": "invitation_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "invitation_team_id": { + "name": "invitation_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "invitation_id": { + "name": "invitation_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "member": { + "name": "member", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "role": { + "name": "role", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'member'" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "member_organization_id": { + "name": "member_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "member_user_id": { + "name": "member_user_id", + "columns": [ + "user_id" + ], + "isUnique": false + }, + "member_organization_user": { + "name": "member_organization_user", + "columns": [ + "organization_id", + "user_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "member_id": { + "name": "member_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "organization_role": { + "name": "organization_role", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "role": { + "name": "role", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "permission": { + "name": "permission", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "organization_role_organization_id": { + "name": "organization_role_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "organization_role_name": { + "name": "organization_role_name", + "columns": [ + "organization_id", + "role" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "organization_role_id": { + "name": "organization_role_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "organization": { + "name": "organization", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "slug": { + "name": "slug", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "logo": { + "name": "logo", + "type": "varchar(2048)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "allowed_email_domains": { + "name": "allowed_email_domains", + "type": "json", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "desktop_app_restrictions": { + "name": "desktop_app_restrictions", + "type": "json", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(json_object())" + }, + "metadata": { + "name": "metadata", + "type": "json", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "organization_slug": { + "name": "organization_slug", + "columns": [ + "slug" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "organization_id": { + "name": "organization_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "llm_provider_access": { + "name": "llm_provider_access", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "llm_provider_id": { + "name": "llm_provider_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "llm_provider_access_llm_provider_id": { + "name": "llm_provider_access_llm_provider_id", + "columns": [ + "llm_provider_id" + ], + "isUnique": false + }, + "llm_provider_access_org_membership_id": { + "name": "llm_provider_access_org_membership_id", + "columns": [ + "org_membership_id" + ], + "isUnique": false + }, + "llm_provider_access_team_id": { + "name": "llm_provider_access_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + }, + "llm_provider_access_provider_org_membership": { + "name": "llm_provider_access_provider_org_membership", + "columns": [ + "llm_provider_id", + "org_membership_id" + ], + "isUnique": true + }, + "llm_provider_access_provider_team": { + "name": "llm_provider_access_provider_team", + "columns": [ + "llm_provider_id", + "team_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "llm_provider_access_id": { + "name": "llm_provider_access_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "llm_provider_model": { + "name": "llm_provider_model", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "llm_provider_id": { + "name": "llm_provider_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "model_id": { + "name": "model_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "model_config": { + "name": "model_config", + "type": "json", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "llm_provider_model_llm_provider_id": { + "name": "llm_provider_model_llm_provider_id", + "columns": [ + "llm_provider_id" + ], + "isUnique": false + }, + "llm_provider_model_model_id": { + "name": "llm_provider_model_model_id", + "columns": [ + "model_id" + ], + "isUnique": false + }, + "llm_provider_model_provider_model": { + "name": "llm_provider_model_provider_model", + "columns": [ + "llm_provider_id", + "model_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "llm_provider_model_id": { + "name": "llm_provider_model_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "llm_provider": { + "name": "llm_provider", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "source": { + "name": "source", + "type": "enum('models_dev','custom')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "provider_id": { + "name": "provider_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "provider_config": { + "name": "provider_config", + "type": "json", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "api_key": { + "name": "api_key", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "llm_provider_organization_id": { + "name": "llm_provider_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "llm_provider_created_by_org_membership_id": { + "name": "llm_provider_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + }, + "llm_provider_source": { + "name": "llm_provider_source", + "columns": [ + "source" + ], + "isUnique": false + }, + "llm_provider_provider_id": { + "name": "llm_provider_provider_id", + "columns": [ + "provider_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "llm_provider_id": { + "name": "llm_provider_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "config_object_access_grant": { + "name": "config_object_access_grant", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "config_object_id": { + "name": "config_object_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "org_wide": { + "name": "org_wide", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "role": { + "name": "role", + "type": "enum('viewer','editor','manager')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "removed_at": { + "name": "removed_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "config_object_access_grant_organization_id": { + "name": "config_object_access_grant_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "config_object_access_grant_config_object_id": { + "name": "config_object_access_grant_config_object_id", + "columns": [ + "config_object_id" + ], + "isUnique": false + }, + "config_object_access_grant_org_membership_id": { + "name": "config_object_access_grant_org_membership_id", + "columns": [ + "org_membership_id" + ], + "isUnique": false + }, + "config_object_access_grant_team_id": { + "name": "config_object_access_grant_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + }, + "config_object_access_grant_org_wide": { + "name": "config_object_access_grant_org_wide", + "columns": [ + "org_wide" + ], + "isUnique": false + }, + "config_object_access_grant_object_org_membership": { + "name": "config_object_access_grant_object_org_membership", + "columns": [ + "config_object_id", + "org_membership_id" + ], + "isUnique": true + }, + "config_object_access_grant_object_team": { + "name": "config_object_access_grant_object_team", + "columns": [ + "config_object_id", + "team_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "config_object_access_grant_id": { + "name": "config_object_access_grant_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "config_object": { + "name": "config_object", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "object_type": { + "name": "object_type", + "type": "enum('skill','agent','command','tool','mcp','hook','context','custom')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "source_mode": { + "name": "source_mode", + "type": "enum('cloud','import','connector')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "title": { + "name": "title", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "search_text": { + "name": "search_text", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "current_file_name": { + "name": "current_file_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "current_file_extension": { + "name": "current_file_extension", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "current_relative_path": { + "name": "current_relative_path", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('active','inactive','deleted','archived','ingestion_error')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'active'" + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_instance_id": { + "name": "connector_instance_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + }, + "deleted_at": { + "name": "deleted_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "config_object_organization_id": { + "name": "config_object_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "config_object_type": { + "name": "config_object_type", + "columns": [ + "object_type" + ], + "isUnique": false + }, + "config_object_source_mode": { + "name": "config_object_source_mode", + "columns": [ + "source_mode" + ], + "isUnique": false + }, + "config_object_status": { + "name": "config_object_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "config_object_created_by_org_membership_id": { + "name": "config_object_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + }, + "config_object_connector_instance_id": { + "name": "config_object_connector_instance_id", + "columns": [ + "connector_instance_id" + ], + "isUnique": false + }, + "config_object_current_relative_path": { + "name": "config_object_current_relative_path", + "columns": [ + "current_relative_path" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "config_object_id": { + "name": "config_object_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "config_object_version": { + "name": "config_object_version", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "config_object_id": { + "name": "config_object_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "normalized_payload_json": { + "name": "normalized_payload_json", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "raw_source_text": { + "name": "raw_source_text", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "schema_version": { + "name": "schema_version", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_via": { + "name": "created_via", + "type": "enum('cloud','import','connector','system')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "connector_sync_event_id": { + "name": "connector_sync_event_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "source_revision_ref": { + "name": "source_revision_ref", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "is_deleted_version": { + "name": "is_deleted_version", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "config_object_version_organization_id": { + "name": "config_object_version_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "config_object_version_config_object_id": { + "name": "config_object_version_config_object_id", + "columns": [ + "config_object_id" + ], + "isUnique": false + }, + "config_object_version_created_by_org_membership_id": { + "name": "config_object_version_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + }, + "config_object_version_connector_sync_event_id": { + "name": "config_object_version_connector_sync_event_id", + "columns": [ + "connector_sync_event_id" + ], + "isUnique": false + }, + "config_object_version_source_revision_ref": { + "name": "config_object_version_source_revision_ref", + "columns": [ + "source_revision_ref" + ], + "isUnique": false + }, + "config_object_version_lookup_latest": { + "name": "config_object_version_lookup_latest", + "columns": [ + "config_object_id", + "created_at", + "id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "config_object_version_id": { + "name": "config_object_version_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "connector_account": { + "name": "connector_account", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_type": { + "name": "connector_type", + "type": "enum('github')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "remote_id": { + "name": "remote_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "external_account_ref": { + "name": "external_account_ref", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "display_name": { + "name": "display_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('active','inactive','disconnected','error')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'active'" + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "metadata_json": { + "name": "metadata_json", + "type": "json", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "connector_account_organization_id": { + "name": "connector_account_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "connector_account_created_by_org_membership_id": { + "name": "connector_account_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + }, + "connector_account_connector_type": { + "name": "connector_account_connector_type", + "columns": [ + "connector_type" + ], + "isUnique": false + }, + "connector_account_status": { + "name": "connector_account_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "connector_account_org_type_remote_id": { + "name": "connector_account_org_type_remote_id", + "columns": [ + "organization_id", + "connector_type", + "remote_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "connector_account_id": { + "name": "connector_account_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "connector_instance_access_grant": { + "name": "connector_instance_access_grant", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_instance_id": { + "name": "connector_instance_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "org_wide": { + "name": "org_wide", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "role": { + "name": "role", + "type": "enum('viewer','editor','manager')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "removed_at": { + "name": "removed_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "connector_instance_access_grant_organization_id": { + "name": "connector_instance_access_grant_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "connector_instance_access_grant_instance_id": { + "name": "connector_instance_access_grant_instance_id", + "columns": [ + "connector_instance_id" + ], + "isUnique": false + }, + "connector_instance_access_grant_org_membership_id": { + "name": "connector_instance_access_grant_org_membership_id", + "columns": [ + "org_membership_id" + ], + "isUnique": false + }, + "connector_instance_access_grant_team_id": { + "name": "connector_instance_access_grant_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + }, + "connector_instance_access_grant_org_wide": { + "name": "connector_instance_access_grant_org_wide", + "columns": [ + "org_wide" + ], + "isUnique": false + }, + "connector_instance_access_grant_instance_org_membership": { + "name": "connector_instance_access_grant_instance_org_membership", + "columns": [ + "connector_instance_id", + "org_membership_id" + ], + "isUnique": true + }, + "connector_instance_access_grant_instance_team": { + "name": "connector_instance_access_grant_instance_team", + "columns": [ + "connector_instance_id", + "team_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "connector_instance_access_grant_id": { + "name": "connector_instance_access_grant_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "connector_instance": { + "name": "connector_instance", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_account_id": { + "name": "connector_account_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_type": { + "name": "connector_type", + "type": "enum('github')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "remote_id": { + "name": "remote_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('active','disabled','archived','error')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'active'" + }, + "instance_config_json": { + "name": "instance_config_json", + "type": "json", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_synced_at": { + "name": "last_synced_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_sync_status": { + "name": "last_sync_status", + "type": "enum('pending','queued','running','completed','failed','partial','ignored')", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_sync_cursor": { + "name": "last_sync_cursor", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "connector_instance_organization_id": { + "name": "connector_instance_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "connector_instance_connector_account_id": { + "name": "connector_instance_connector_account_id", + "columns": [ + "connector_account_id" + ], + "isUnique": false + }, + "connector_instance_created_by_org_membership_id": { + "name": "connector_instance_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + }, + "connector_instance_connector_type": { + "name": "connector_instance_connector_type", + "columns": [ + "connector_type" + ], + "isUnique": false + }, + "connector_instance_status": { + "name": "connector_instance_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "connector_instance_org_name": { + "name": "connector_instance_org_name", + "columns": [ + "organization_id", + "name" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "connector_instance_id": { + "name": "connector_instance_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "connector_mapping": { + "name": "connector_mapping", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_instance_id": { + "name": "connector_instance_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_target_id": { + "name": "connector_target_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_type": { + "name": "connector_type", + "type": "enum('github')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "remote_id": { + "name": "remote_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "mapping_kind": { + "name": "mapping_kind", + "type": "enum('path','api','custom')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "selector": { + "name": "selector", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "object_type": { + "name": "object_type", + "type": "enum('skill','agent','command','tool','mcp','hook','context','custom')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "plugin_id": { + "name": "plugin_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "auto_add_to_plugin": { + "name": "auto_add_to_plugin", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "mapping_config_json": { + "name": "mapping_config_json", + "type": "json", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "connector_mapping_organization_id": { + "name": "connector_mapping_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "connector_mapping_connector_instance_id": { + "name": "connector_mapping_connector_instance_id", + "columns": [ + "connector_instance_id" + ], + "isUnique": false + }, + "connector_mapping_connector_target_id": { + "name": "connector_mapping_connector_target_id", + "columns": [ + "connector_target_id" + ], + "isUnique": false + }, + "connector_mapping_object_type": { + "name": "connector_mapping_object_type", + "columns": [ + "object_type" + ], + "isUnique": false + }, + "connector_mapping_plugin_id": { + "name": "connector_mapping_plugin_id", + "columns": [ + "plugin_id" + ], + "isUnique": false + }, + "connector_mapping_target_selector_object_type": { + "name": "connector_mapping_target_selector_object_type", + "columns": [ + "connector_target_id", + "selector", + "object_type" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "connector_mapping_id": { + "name": "connector_mapping_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "connector_source_binding": { + "name": "connector_source_binding", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "config_object_id": { + "name": "config_object_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_instance_id": { + "name": "connector_instance_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_target_id": { + "name": "connector_target_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_mapping_id": { + "name": "connector_mapping_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_type": { + "name": "connector_type", + "type": "enum('github')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "remote_id": { + "name": "remote_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "external_locator": { + "name": "external_locator", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "external_stable_ref": { + "name": "external_stable_ref", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_seen_source_revision_ref": { + "name": "last_seen_source_revision_ref", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('active','inactive','deleted','archived','ingestion_error')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'active'" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + }, + "deleted_at": { + "name": "deleted_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "connector_source_binding_organization_id": { + "name": "connector_source_binding_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "connector_source_binding_config_object_id": { + "name": "connector_source_binding_config_object_id", + "columns": [ + "config_object_id" + ], + "isUnique": false + }, + "connector_source_binding_connector_instance_id": { + "name": "connector_source_binding_connector_instance_id", + "columns": [ + "connector_instance_id" + ], + "isUnique": false + }, + "connector_source_binding_connector_target_id": { + "name": "connector_source_binding_connector_target_id", + "columns": [ + "connector_target_id" + ], + "isUnique": false + }, + "connector_source_binding_connector_mapping_id": { + "name": "connector_source_binding_connector_mapping_id", + "columns": [ + "connector_mapping_id" + ], + "isUnique": false + }, + "connector_source_binding_external_locator": { + "name": "connector_source_binding_external_locator", + "columns": [ + "external_locator" + ], + "isUnique": false + }, + "connector_source_binding_config_object": { + "name": "connector_source_binding_config_object", + "columns": [ + "config_object_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "connector_source_binding_id": { + "name": "connector_source_binding_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "connector_source_tombstone": { + "name": "connector_source_tombstone", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_instance_id": { + "name": "connector_instance_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_target_id": { + "name": "connector_target_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_mapping_id": { + "name": "connector_mapping_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_type": { + "name": "connector_type", + "type": "enum('github')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "remote_id": { + "name": "remote_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "external_locator": { + "name": "external_locator", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "former_config_object_id": { + "name": "former_config_object_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "deleted_in_sync_event_id": { + "name": "deleted_in_sync_event_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "deleted_source_revision_ref": { + "name": "deleted_source_revision_ref", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "connector_source_tombstone_organization_id": { + "name": "connector_source_tombstone_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "connector_source_tombstone_connector_instance_id": { + "name": "connector_source_tombstone_connector_instance_id", + "columns": [ + "connector_instance_id" + ], + "isUnique": false + }, + "connector_source_tombstone_connector_target_id": { + "name": "connector_source_tombstone_connector_target_id", + "columns": [ + "connector_target_id" + ], + "isUnique": false + }, + "connector_source_tombstone_connector_mapping_id": { + "name": "connector_source_tombstone_connector_mapping_id", + "columns": [ + "connector_mapping_id" + ], + "isUnique": false + }, + "connector_source_tombstone_external_locator": { + "name": "connector_source_tombstone_external_locator", + "columns": [ + "external_locator" + ], + "isUnique": false + }, + "connector_source_tombstone_former_config_object_id": { + "name": "connector_source_tombstone_former_config_object_id", + "columns": [ + "former_config_object_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "connector_source_tombstone_id": { + "name": "connector_source_tombstone_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "connector_sync_event": { + "name": "connector_sync_event", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_instance_id": { + "name": "connector_instance_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_target_id": { + "name": "connector_target_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "connector_type": { + "name": "connector_type", + "type": "enum('github')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "remote_id": { + "name": "remote_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "event_type": { + "name": "event_type", + "type": "enum('push','installation','installation_repositories','repository','manual_resync')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "external_event_ref": { + "name": "external_event_ref", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "source_revision_ref": { + "name": "source_revision_ref", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('pending','queued','running','completed','failed','partial','ignored')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'pending'" + }, + "summary_json": { + "name": "summary_json", + "type": "json", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "started_at": { + "name": "started_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "completed_at": { + "name": "completed_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "connector_sync_event_organization_id": { + "name": "connector_sync_event_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "connector_sync_event_connector_instance_id": { + "name": "connector_sync_event_connector_instance_id", + "columns": [ + "connector_instance_id" + ], + "isUnique": false + }, + "connector_sync_event_connector_target_id": { + "name": "connector_sync_event_connector_target_id", + "columns": [ + "connector_target_id" + ], + "isUnique": false + }, + "connector_sync_event_event_type": { + "name": "connector_sync_event_event_type", + "columns": [ + "event_type" + ], + "isUnique": false + }, + "connector_sync_event_status": { + "name": "connector_sync_event_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "connector_sync_event_source_revision_ref": { + "name": "connector_sync_event_source_revision_ref", + "columns": [ + "source_revision_ref" + ], + "isUnique": false + }, + "connector_sync_event_external_event_ref": { + "name": "connector_sync_event_external_event_ref", + "columns": [ + "external_event_ref" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "connector_sync_event_id": { + "name": "connector_sync_event_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "connector_target": { + "name": "connector_target", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_instance_id": { + "name": "connector_instance_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_type": { + "name": "connector_type", + "type": "enum('github')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "remote_id": { + "name": "remote_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "target_kind": { + "name": "target_kind", + "type": "enum('repository_branch')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "external_target_ref": { + "name": "external_target_ref", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "target_config_json": { + "name": "target_config_json", + "type": "json", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "connector_target_organization_id": { + "name": "connector_target_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "connector_target_connector_instance_id": { + "name": "connector_target_connector_instance_id", + "columns": [ + "connector_instance_id" + ], + "isUnique": false + }, + "connector_target_connector_type": { + "name": "connector_target_connector_type", + "columns": [ + "connector_type" + ], + "isUnique": false + }, + "connector_target_target_kind": { + "name": "connector_target_target_kind", + "columns": [ + "target_kind" + ], + "isUnique": false + }, + "connector_target_instance_remote_id": { + "name": "connector_target_instance_remote_id", + "columns": [ + "connector_instance_id", + "remote_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "connector_target_id": { + "name": "connector_target_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "marketplace_access_grant": { + "name": "marketplace_access_grant", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "marketplace_id": { + "name": "marketplace_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "org_wide": { + "name": "org_wide", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "role": { + "name": "role", + "type": "enum('viewer','editor','manager')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "removed_at": { + "name": "removed_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "marketplace_access_grant_organization_id": { + "name": "marketplace_access_grant_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "marketplace_access_grant_marketplace_id": { + "name": "marketplace_access_grant_marketplace_id", + "columns": [ + "marketplace_id" + ], + "isUnique": false + }, + "marketplace_access_grant_org_membership_id": { + "name": "marketplace_access_grant_org_membership_id", + "columns": [ + "org_membership_id" + ], + "isUnique": false + }, + "marketplace_access_grant_team_id": { + "name": "marketplace_access_grant_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + }, + "marketplace_access_grant_org_wide": { + "name": "marketplace_access_grant_org_wide", + "columns": [ + "org_wide" + ], + "isUnique": false + }, + "marketplace_access_grant_marketplace_org_membership": { + "name": "marketplace_access_grant_marketplace_org_membership", + "columns": [ + "marketplace_id", + "org_membership_id" + ], + "isUnique": true + }, + "marketplace_access_grant_marketplace_team": { + "name": "marketplace_access_grant_marketplace_team", + "columns": [ + "marketplace_id", + "team_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "marketplace_access_grant_id": { + "name": "marketplace_access_grant_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "marketplace_plugin": { + "name": "marketplace_plugin", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "marketplace_id": { + "name": "marketplace_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "plugin_id": { + "name": "plugin_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "membership_source": { + "name": "membership_source", + "type": "enum('manual','connector','api','system')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'manual'" + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "removed_at": { + "name": "removed_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "marketplace_plugin_organization_id": { + "name": "marketplace_plugin_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "marketplace_plugin_marketplace_id": { + "name": "marketplace_plugin_marketplace_id", + "columns": [ + "marketplace_id" + ], + "isUnique": false + }, + "marketplace_plugin_plugin_id": { + "name": "marketplace_plugin_plugin_id", + "columns": [ + "plugin_id" + ], + "isUnique": false + }, + "marketplace_plugin_marketplace_plugin": { + "name": "marketplace_plugin_marketplace_plugin", + "columns": [ + "marketplace_id", + "plugin_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "marketplace_plugin_id": { + "name": "marketplace_plugin_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "marketplace": { + "name": "marketplace", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('active','inactive','deleted','archived')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'active'" + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + }, + "deleted_at": { + "name": "deleted_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "marketplace_organization_id": { + "name": "marketplace_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "marketplace_created_by_org_membership_id": { + "name": "marketplace_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + }, + "marketplace_status": { + "name": "marketplace_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "marketplace_name": { + "name": "marketplace_name", + "columns": [ + "name" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "marketplace_id": { + "name": "marketplace_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "plugin_access_grant": { + "name": "plugin_access_grant", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "plugin_id": { + "name": "plugin_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "org_wide": { + "name": "org_wide", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "role": { + "name": "role", + "type": "enum('viewer','editor','manager')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "removed_at": { + "name": "removed_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "plugin_access_grant_organization_id": { + "name": "plugin_access_grant_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "plugin_access_grant_plugin_id": { + "name": "plugin_access_grant_plugin_id", + "columns": [ + "plugin_id" + ], + "isUnique": false + }, + "plugin_access_grant_org_membership_id": { + "name": "plugin_access_grant_org_membership_id", + "columns": [ + "org_membership_id" + ], + "isUnique": false + }, + "plugin_access_grant_team_id": { + "name": "plugin_access_grant_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + }, + "plugin_access_grant_org_wide": { + "name": "plugin_access_grant_org_wide", + "columns": [ + "org_wide" + ], + "isUnique": false + }, + "plugin_access_grant_plugin_org_membership": { + "name": "plugin_access_grant_plugin_org_membership", + "columns": [ + "plugin_id", + "org_membership_id" + ], + "isUnique": true + }, + "plugin_access_grant_plugin_team": { + "name": "plugin_access_grant_plugin_team", + "columns": [ + "plugin_id", + "team_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "plugin_access_grant_id": { + "name": "plugin_access_grant_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "plugin_config_object": { + "name": "plugin_config_object", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "plugin_id": { + "name": "plugin_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "config_object_id": { + "name": "config_object_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "membership_source": { + "name": "membership_source", + "type": "enum('manual','connector','api','system')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'manual'" + }, + "connector_mapping_id": { + "name": "connector_mapping_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "removed_at": { + "name": "removed_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "plugin_config_object_organization_id": { + "name": "plugin_config_object_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "plugin_config_object_plugin_id": { + "name": "plugin_config_object_plugin_id", + "columns": [ + "plugin_id" + ], + "isUnique": false + }, + "plugin_config_object_config_object_id": { + "name": "plugin_config_object_config_object_id", + "columns": [ + "config_object_id" + ], + "isUnique": false + }, + "plugin_config_object_connector_mapping_id": { + "name": "plugin_config_object_connector_mapping_id", + "columns": [ + "connector_mapping_id" + ], + "isUnique": false + }, + "plugin_config_object_plugin_config_object": { + "name": "plugin_config_object_plugin_config_object", + "columns": [ + "plugin_id", + "config_object_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "plugin_config_object_id": { + "name": "plugin_config_object_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "plugin": { + "name": "plugin", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('active','inactive','deleted','archived')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'active'" + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + }, + "deleted_at": { + "name": "deleted_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "plugin_organization_id": { + "name": "plugin_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "plugin_created_by_org_membership_id": { + "name": "plugin_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + }, + "plugin_status": { + "name": "plugin_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "plugin_name": { + "name": "plugin_name", + "columns": [ + "name" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "plugin_id": { + "name": "plugin_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "skill_hub_member": { + "name": "skill_hub_member", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "skill_hub_id": { + "name": "skill_hub_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "skill_hub_member_skill_hub_id": { + "name": "skill_hub_member_skill_hub_id", + "columns": [ + "skill_hub_id" + ], + "isUnique": false + }, + "skill_hub_member_org_membership_id": { + "name": "skill_hub_member_org_membership_id", + "columns": [ + "org_membership_id" + ], + "isUnique": false + }, + "skill_hub_member_team_id": { + "name": "skill_hub_member_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + }, + "skill_hub_member_hub_org_membership": { + "name": "skill_hub_member_hub_org_membership", + "columns": [ + "skill_hub_id", + "org_membership_id" + ], + "isUnique": true + }, + "skill_hub_member_hub_team": { + "name": "skill_hub_member_hub_team", + "columns": [ + "skill_hub_id", + "team_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "skill_hub_member_id": { + "name": "skill_hub_member_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "skill_hub_skill": { + "name": "skill_hub_skill", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "skill_hub_id": { + "name": "skill_hub_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "skill_id": { + "name": "skill_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "skill_hub_skill_skill_hub_id": { + "name": "skill_hub_skill_skill_hub_id", + "columns": [ + "skill_hub_id" + ], + "isUnique": false + }, + "skill_hub_skill_skill_id": { + "name": "skill_hub_skill_skill_id", + "columns": [ + "skill_id" + ], + "isUnique": false + }, + "skill_hub_skill_hub_skill": { + "name": "skill_hub_skill_hub_skill", + "columns": [ + "skill_hub_id", + "skill_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "skill_hub_skill_id": { + "name": "skill_hub_skill_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "skill_hub": { + "name": "skill_hub", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "skill_hub_organization_id": { + "name": "skill_hub_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "skill_hub_created_by_org_membership_id": { + "name": "skill_hub_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "skill_hub_id": { + "name": "skill_hub_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "skill": { + "name": "skill", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "title": { + "name": "title", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "skill_text": { + "name": "skill_text", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "shared": { + "name": "shared", + "type": "enum('org','public')", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "skill_organization_id": { + "name": "skill_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "skill_created_by_org_membership_id": { + "name": "skill_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + }, + "skill_shared": { + "name": "skill_shared", + "columns": [ + "shared" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "skill_id": { + "name": "skill_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "team_member": { + "name": "team_member", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "team_member_team_id": { + "name": "team_member_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + }, + "team_member_org_membership_id": { + "name": "team_member_org_membership_id", + "columns": [ + "org_membership_id" + ], + "isUnique": false + }, + "team_member_team_org_membership": { + "name": "team_member_team_org_membership", + "columns": [ + "team_id", + "org_membership_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "team_member_id": { + "name": "team_member_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "team": { + "name": "team", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "team_organization_id": { + "name": "team_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "team_organization_name": { + "name": "team_organization_name", + "columns": [ + "organization_id", + "name" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "team_id": { + "name": "team_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "audit_event": { + "name": "audit_event", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_id": { + "name": "org_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "worker_id": { + "name": "worker_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "actor_user_id": { + "name": "actor_user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "action": { + "name": "action", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "payload": { + "name": "payload", + "type": "json", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "audit_event_org_id": { + "name": "audit_event_org_id", + "columns": [ + "org_id" + ], + "isUnique": false + }, + "audit_event_worker_id": { + "name": "audit_event_worker_id", + "columns": [ + "worker_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "audit_event_id": { + "name": "audit_event_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "daytona_sandbox": { + "name": "daytona_sandbox", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "worker_id": { + "name": "worker_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "sandbox_id": { + "name": "sandbox_id", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "workspace_volume_id": { + "name": "workspace_volume_id", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "data_volume_id": { + "name": "data_volume_id", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "signed_preview_url": { + "name": "signed_preview_url", + "type": "varchar(2048)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "signed_preview_url_expires_at": { + "name": "signed_preview_url_expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "region": { + "name": "region", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "daytona_sandbox_worker_id": { + "name": "daytona_sandbox_worker_id", + "columns": [ + "worker_id" + ], + "isUnique": true + }, + "daytona_sandbox_sandbox_id": { + "name": "daytona_sandbox_sandbox_id", + "columns": [ + "sandbox_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "daytona_sandbox_id": { + "name": "daytona_sandbox_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "worker_bundle": { + "name": "worker_bundle", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "worker_id": { + "name": "worker_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "storage_url": { + "name": "storage_url", + "type": "varchar(2048)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "worker_bundle_worker_id": { + "name": "worker_bundle_worker_id", + "columns": [ + "worker_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "worker_bundle_id": { + "name": "worker_bundle_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "worker_instance": { + "name": "worker_instance", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "worker_id": { + "name": "worker_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "provider": { + "name": "provider", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "region": { + "name": "region", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "url": { + "name": "url", + "type": "varchar(2048)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('provisioning','healthy','failed','stopped')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "worker_instance_worker_id": { + "name": "worker_instance_worker_id", + "columns": [ + "worker_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "worker_instance_id": { + "name": "worker_instance_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "worker": { + "name": "worker", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_id": { + "name": "org_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_user_id": { + "name": "created_by_user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "varchar(1024)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "destination": { + "name": "destination", + "type": "enum('local','cloud')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('provisioning','healthy','failed','stopped')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "image_version": { + "name": "image_version", + "type": "varchar(128)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "workspace_path": { + "name": "workspace_path", + "type": "varchar(1024)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "sandbox_backend": { + "name": "sandbox_backend", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_heartbeat_at": { + "name": "last_heartbeat_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_active_at": { + "name": "last_active_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "worker_org_id": { + "name": "worker_org_id", + "columns": [ + "org_id" + ], + "isUnique": false + }, + "worker_created_by_user_id": { + "name": "worker_created_by_user_id", + "columns": [ + "created_by_user_id" + ], + "isUnique": false + }, + "worker_status": { + "name": "worker_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "worker_last_heartbeat_at": { + "name": "worker_last_heartbeat_at", + "columns": [ + "last_heartbeat_at" + ], + "isUnique": false + }, + "worker_last_active_at": { + "name": "worker_last_active_at", + "columns": [ + "last_active_at" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "worker_id": { + "name": "worker_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "worker_token": { + "name": "worker_token", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "worker_id": { + "name": "worker_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "scope": { + "name": "scope", + "type": "enum('client','host','activity')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "token": { + "name": "token", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "revoked_at": { + "name": "revoked_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "worker_token_worker_id": { + "name": "worker_token_worker_id", + "columns": [ + "worker_id" + ], + "isUnique": false + }, + "worker_token_token": { + "name": "worker_token_token", + "columns": [ + "token" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "worker_token_id": { + "name": "worker_token_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "admin_allowlist": { + "name": "admin_allowlist", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "email": { + "name": "email", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "note": { + "name": "note", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "admin_allowlist_email": { + "name": "admin_allowlist_email", + "columns": [ + "email" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "admin_allowlist_id": { + "name": "admin_allowlist_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "rate_limit": { + "name": "rate_limit", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "key": { + "name": "key", + "type": "varchar(512)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "count": { + "name": "count", + "type": "int", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": 0 + }, + "last_request": { + "name": "last_request", + "type": "bigint", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "rate_limit_key": { + "name": "rate_limit_key", + "columns": [ + "key" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "rate_limit_id": { + "name": "rate_limit_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "telemetry_event": { + "name": "telemetry_event", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_id": { + "name": "org_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "member_id": { + "name": "member_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "event_type": { + "name": "event_type", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "event_timestamp": { + "name": "event_timestamp", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "telemetry_event_org_id_type_ts": { + "name": "telemetry_event_org_id_type_ts", + "columns": [ + "org_id", + "event_type", + "event_timestamp" + ], + "isUnique": false + }, + "telemetry_event_org_id_member_id": { + "name": "telemetry_event_org_id_member_id", + "columns": [ + "org_id", + "member_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "telemetry_event_id": { + "name": "telemetry_event_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + } + }, + "views": {}, + "_meta": { + "schemas": {}, + "tables": {}, + "columns": {} + }, + "internal": { + "tables": {}, + "indexes": {} + } +} \ No newline at end of file diff --git a/ee/packages/den-db/drizzle/meta/0015_snapshot.json b/ee/packages/den-db/drizzle/meta/0015_snapshot.json new file mode 100644 index 000000000..47975c20d --- /dev/null +++ b/ee/packages/den-db/drizzle/meta/0015_snapshot.json @@ -0,0 +1,6266 @@ +{ + "version": "5", + "dialect": "mysql", + "id": "188b03c1-d4a1-4a63-bb6f-fa1d8c16fac0", + "prevId": "ff808bd7-356d-498b-912f-e79012796613", + "tables": { + "account": { + "name": "account", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "account_id": { + "name": "account_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "provider_id": { + "name": "provider_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "access_token": { + "name": "access_token", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "refresh_token": { + "name": "refresh_token", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "access_token_expires_at": { + "name": "access_token_expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "refresh_token_expires_at": { + "name": "refresh_token_expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "scope": { + "name": "scope", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "id_token": { + "name": "id_token", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "password": { + "name": "password", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "account_user_id": { + "name": "account_user_id", + "columns": [ + "user_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "account_id": { + "name": "account_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "apikey": { + "name": "apikey", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "config_id": { + "name": "config_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'default'" + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "start": { + "name": "start", + "type": "varchar(32)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "prefix": { + "name": "prefix", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "key": { + "name": "key", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "reference_id": { + "name": "reference_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "refill_interval": { + "name": "refill_interval", + "type": "bigint", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "refill_amount": { + "name": "refill_amount", + "type": "int", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_refill_at": { + "name": "last_refill_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "enabled": { + "name": "enabled", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": true + }, + "rate_limit_enabled": { + "name": "rate_limit_enabled", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": true + }, + "rate_limit_time_window": { + "name": "rate_limit_time_window", + "type": "bigint", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "rate_limit_max": { + "name": "rate_limit_max", + "type": "int", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "request_count": { + "name": "request_count", + "type": "int", + "primaryKey": false, + "notNull": false, + "autoincrement": false, + "default": 0 + }, + "remaining": { + "name": "remaining", + "type": "int", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_request": { + "name": "last_request", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + }, + "permissions": { + "name": "permissions", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "metadata": { + "name": "metadata", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "apikey_config_id": { + "name": "apikey_config_id", + "columns": [ + "config_id" + ], + "isUnique": false + }, + "apikey_reference_id": { + "name": "apikey_reference_id", + "columns": [ + "reference_id" + ], + "isUnique": false + }, + "apikey_key": { + "name": "apikey_key", + "columns": [ + "key" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "apikey_id": { + "name": "apikey_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "jwks": { + "name": "jwks", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "public_key": { + "name": "public_key", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "private_key": { + "name": "private_key", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "alg": { + "name": "alg", + "type": "varchar(32)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "crv": { + "name": "crv", + "type": "varchar(32)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": { + "jwks_id": { + "name": "jwks_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "session": { + "name": "session", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "active_organization_id": { + "name": "active_organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "active_team_id": { + "name": "active_team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "token": { + "name": "token", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "ip_address": { + "name": "ip_address", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "user_agent": { + "name": "user_agent", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "session_token": { + "name": "session_token", + "columns": [ + "token" + ], + "isUnique": true + }, + "session_user_id": { + "name": "session_user_id", + "columns": [ + "user_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "session_id": { + "name": "session_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "user": { + "name": "user", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "email": { + "name": "email", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "email_verified": { + "name": "email_verified", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "image": { + "name": "image", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "user_email": { + "name": "user_email", + "columns": [ + "email" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "user_id": { + "name": "user_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "verification": { + "name": "verification", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "identifier": { + "name": "identifier", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "value": { + "name": "value", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "verification_identifier": { + "name": "verification_identifier", + "columns": [ + "identifier" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "verification_id": { + "name": "verification_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "oauthAccessToken": { + "name": "oauthAccessToken", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "token": { + "name": "token", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "client_id": { + "name": "client_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "session_id": { + "name": "session_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "reference_id": { + "name": "reference_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "refresh_id": { + "name": "refresh_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "scopes": { + "name": "scopes", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "oauth_access_token_client_id": { + "name": "oauth_access_token_client_id", + "columns": [ + "client_id" + ], + "isUnique": false + }, + "oauth_access_token_session_id": { + "name": "oauth_access_token_session_id", + "columns": [ + "session_id" + ], + "isUnique": false + }, + "oauth_access_token_user_id": { + "name": "oauth_access_token_user_id", + "columns": [ + "user_id" + ], + "isUnique": false + }, + "oauth_access_token_reference_id": { + "name": "oauth_access_token_reference_id", + "columns": [ + "reference_id" + ], + "isUnique": false + }, + "oauth_access_token_refresh_id": { + "name": "oauth_access_token_refresh_id", + "columns": [ + "refresh_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "oauthAccessToken_id": { + "name": "oauthAccessToken_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "oauthClient": { + "name": "oauthClient", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "client_id": { + "name": "client_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "client_secret": { + "name": "client_secret", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "disabled": { + "name": "disabled", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "autoincrement": false, + "default": false + }, + "skip_consent": { + "name": "skip_consent", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "enable_end_session": { + "name": "enable_end_session", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "subject_type": { + "name": "subject_type", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "scopes": { + "name": "scopes", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "uri": { + "name": "uri", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "icon": { + "name": "icon", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "contacts": { + "name": "contacts", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "tos": { + "name": "tos", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "policy": { + "name": "policy", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "software_id": { + "name": "software_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "software_version": { + "name": "software_version", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "software_statement": { + "name": "software_statement", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "redirect_uris": { + "name": "redirect_uris", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "post_logout_redirect_uris": { + "name": "post_logout_redirect_uris", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "token_endpoint_auth_method": { + "name": "token_endpoint_auth_method", + "type": "varchar(128)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "grant_types": { + "name": "grant_types", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "response_types": { + "name": "response_types", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "public": { + "name": "public", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "type": { + "name": "type", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "require_pkce": { + "name": "require_pkce", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "reference_id": { + "name": "reference_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "metadata": { + "name": "metadata", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "oauth_client_client_id": { + "name": "oauth_client_client_id", + "columns": [ + "client_id" + ], + "isUnique": true + }, + "oauth_client_user_id": { + "name": "oauth_client_user_id", + "columns": [ + "user_id" + ], + "isUnique": false + }, + "oauth_client_reference_id": { + "name": "oauth_client_reference_id", + "columns": [ + "reference_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "oauthClient_id": { + "name": "oauthClient_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "oauthConsent": { + "name": "oauthConsent", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "client_id": { + "name": "client_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "reference_id": { + "name": "reference_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "scopes": { + "name": "scopes", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "oauth_consent_client_id": { + "name": "oauth_consent_client_id", + "columns": [ + "client_id" + ], + "isUnique": false + }, + "oauth_consent_user_id": { + "name": "oauth_consent_user_id", + "columns": [ + "user_id" + ], + "isUnique": false + }, + "oauth_consent_reference_id": { + "name": "oauth_consent_reference_id", + "columns": [ + "reference_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "oauthConsent_id": { + "name": "oauthConsent_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "oauthRefreshToken": { + "name": "oauthRefreshToken", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "token": { + "name": "token", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "client_id": { + "name": "client_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "session_id": { + "name": "session_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "reference_id": { + "name": "reference_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "revoked": { + "name": "revoked", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "auth_time": { + "name": "auth_time", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "scopes": { + "name": "scopes", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "oauth_refresh_token_client_id": { + "name": "oauth_refresh_token_client_id", + "columns": [ + "client_id" + ], + "isUnique": false + }, + "oauth_refresh_token_session_id": { + "name": "oauth_refresh_token_session_id", + "columns": [ + "session_id" + ], + "isUnique": false + }, + "oauth_refresh_token_user_id": { + "name": "oauth_refresh_token_user_id", + "columns": [ + "user_id" + ], + "isUnique": false + }, + "oauth_refresh_token_reference_id": { + "name": "oauth_refresh_token_reference_id", + "columns": [ + "reference_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "oauthRefreshToken_id": { + "name": "oauthRefreshToken_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "inference_keys": { + "name": "inference_keys", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "key_hash": { + "name": "key_hash", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "key_prefix": { + "name": "key_prefix", + "type": "varchar(32)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('active','revoked')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'active'" + }, + "revoked_at": { + "name": "revoked_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "inference_keys_key_hash": { + "name": "inference_keys_key_hash", + "columns": [ + "key_hash" + ], + "isUnique": true + }, + "inference_keys_organization_id": { + "name": "inference_keys_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "inference_keys_org_membership_id": { + "name": "inference_keys_org_membership_id", + "columns": [ + "org_membership_id" + ], + "isUnique": false + }, + "inference_keys_status": { + "name": "inference_keys_status", + "columns": [ + "status" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "inference_keys_id": { + "name": "inference_keys_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "inference_org_limit_policies": { + "name": "inference_org_limit_policies", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "window_type": { + "name": "window_type", + "type": "enum('five_hour','weekly','monthly')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "limit_amount": { + "name": "limit_amount", + "type": "bigint", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "reset_strategy": { + "name": "reset_strategy", + "type": "enum('anchored','activity_based')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "anchor_at": { + "name": "anchor_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "current_bucket_id": { + "name": "current_bucket_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "inference_org_limit_policies_organization_id": { + "name": "inference_org_limit_policies_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "inference_org_limit_policies_org_window_type": { + "name": "inference_org_limit_policies_org_window_type", + "columns": [ + "organization_id", + "window_type" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "inference_org_limit_policies_id": { + "name": "inference_org_limit_policies_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "inference_org_upstream_provider_keys": { + "name": "inference_org_upstream_provider_keys", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "provider": { + "name": "provider", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'openrouter'" + }, + "external_key_hash": { + "name": "external_key_hash", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "external_workspace_id": { + "name": "external_workspace_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "encrypted_api_key": { + "name": "encrypted_api_key", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "key_prefix": { + "name": "key_prefix", + "type": "varchar(32)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('active','revoked')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'active'" + }, + "revoked_at": { + "name": "revoked_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "inference_org_upstream_provider_keys_organization_id": { + "name": "inference_org_upstream_provider_keys_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "inference_org_upstream_provider_keys_org_provider": { + "name": "inference_org_upstream_provider_keys_org_provider", + "columns": [ + "organization_id", + "provider" + ], + "isUnique": true + }, + "inference_org_upstream_provider_keys_external_key_hash": { + "name": "inference_org_upstream_provider_keys_external_key_hash", + "columns": [ + "external_key_hash" + ], + "isUnique": false + }, + "inference_org_upstream_provider_keys_status": { + "name": "inference_org_upstream_provider_keys_status", + "columns": [ + "status" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "inference_org_upstream_provider_keys_id": { + "name": "inference_org_upstream_provider_keys_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "inference_org_usage_buckets": { + "name": "inference_org_usage_buckets", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "policy_id": { + "name": "policy_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "window_start_at": { + "name": "window_start_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "window_end_at": { + "name": "window_end_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "limit_amount": { + "name": "limit_amount", + "type": "bigint", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "used_amount": { + "name": "used_amount", + "type": "bigint", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": 0 + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "inference_org_usage_buckets_org_window": { + "name": "inference_org_usage_buckets_org_window", + "columns": [ + "organization_id", + "window_start_at", + "window_end_at" + ], + "isUnique": false + }, + "inference_org_usage_buckets_policy_id": { + "name": "inference_org_usage_buckets_policy_id", + "columns": [ + "policy_id" + ], + "isUnique": false + }, + "inference_org_usage_buckets_policy_window": { + "name": "inference_org_usage_buckets_policy_window", + "columns": [ + "policy_id", + "window_start_at", + "window_end_at" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "inference_org_usage_buckets_id": { + "name": "inference_org_usage_buckets_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "inference_usage_ledger_bucket_charges": { + "name": "inference_usage_ledger_bucket_charges", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "ledger_entry_id": { + "name": "ledger_entry_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "bucket_id": { + "name": "bucket_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "amount": { + "name": "amount", + "type": "bigint", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "inference_usage_ledger_bucket_charges_bucket_id": { + "name": "inference_usage_ledger_bucket_charges_bucket_id", + "columns": [ + "bucket_id" + ], + "isUnique": false + }, + "inference_usage_ledger_bucket_charges_entry_bucket": { + "name": "inference_usage_ledger_bucket_charges_entry_bucket", + "columns": [ + "ledger_entry_id", + "bucket_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "inference_usage_ledger_bucket_charges_id": { + "name": "inference_usage_ledger_bucket_charges_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "inference_usage_ledger_entries": { + "name": "inference_usage_ledger_entries", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "inference_key_id": { + "name": "inference_key_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "external_job_id": { + "name": "external_job_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "external_event_id": { + "name": "external_event_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "cost_amount": { + "name": "cost_amount", + "type": "bigint", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "event_type": { + "name": "event_type", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "occurred_at": { + "name": "occurred_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "inference_usage_ledger_entries_organization_id": { + "name": "inference_usage_ledger_entries_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "inference_usage_ledger_entries_org_membership_id": { + "name": "inference_usage_ledger_entries_org_membership_id", + "columns": [ + "org_membership_id" + ], + "isUnique": false + }, + "inference_usage_ledger_entries_inference_key_id": { + "name": "inference_usage_ledger_entries_inference_key_id", + "columns": [ + "inference_key_id" + ], + "isUnique": false + }, + "inference_usage_ledger_entries_external_event_id": { + "name": "inference_usage_ledger_entries_external_event_id", + "columns": [ + "external_event_id" + ], + "isUnique": true + }, + "inference_usage_ledger_entries_job_event_type": { + "name": "inference_usage_ledger_entries_job_event_type", + "columns": [ + "external_job_id", + "event_type" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "inference_usage_ledger_entries_id": { + "name": "inference_usage_ledger_entries_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "desktop_handoff_grant": { + "name": "desktop_handoff_grant", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "session_token": { + "name": "session_token", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "consumed_at": { + "name": "consumed_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "desktop_handoff_grant_user_id": { + "name": "desktop_handoff_grant_user_id", + "columns": [ + "user_id" + ], + "isUnique": false + }, + "desktop_handoff_grant_expires_at": { + "name": "desktop_handoff_grant_expires_at", + "columns": [ + "expires_at" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "desktop_handoff_grant_id": { + "name": "desktop_handoff_grant_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "invitation": { + "name": "invitation", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "email": { + "name": "email", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "role": { + "name": "role", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "varchar(32)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'pending'" + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "inviter_id": { + "name": "inviter_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "invitation_organization_id": { + "name": "invitation_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "invitation_email": { + "name": "invitation_email", + "columns": [ + "email" + ], + "isUnique": false + }, + "invitation_status": { + "name": "invitation_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "invitation_team_id": { + "name": "invitation_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "invitation_id": { + "name": "invitation_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "member": { + "name": "member", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "role": { + "name": "role", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'member'" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "member_organization_id": { + "name": "member_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "member_user_id": { + "name": "member_user_id", + "columns": [ + "user_id" + ], + "isUnique": false + }, + "member_organization_user": { + "name": "member_organization_user", + "columns": [ + "organization_id", + "user_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "member_id": { + "name": "member_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "organization_role": { + "name": "organization_role", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "role": { + "name": "role", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "permission": { + "name": "permission", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "organization_role_organization_id": { + "name": "organization_role_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "organization_role_name": { + "name": "organization_role_name", + "columns": [ + "organization_id", + "role" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "organization_role_id": { + "name": "organization_role_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "organization": { + "name": "organization", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "slug": { + "name": "slug", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "logo": { + "name": "logo", + "type": "varchar(2048)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "allowed_email_domains": { + "name": "allowed_email_domains", + "type": "json", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "desktop_app_restrictions": { + "name": "desktop_app_restrictions", + "type": "json", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(json_object())" + }, + "metadata": { + "name": "metadata", + "type": "json", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "organization_slug": { + "name": "organization_slug", + "columns": [ + "slug" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "organization_id": { + "name": "organization_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "llm_provider_access": { + "name": "llm_provider_access", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "llm_provider_id": { + "name": "llm_provider_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "llm_provider_access_llm_provider_id": { + "name": "llm_provider_access_llm_provider_id", + "columns": [ + "llm_provider_id" + ], + "isUnique": false + }, + "llm_provider_access_org_membership_id": { + "name": "llm_provider_access_org_membership_id", + "columns": [ + "org_membership_id" + ], + "isUnique": false + }, + "llm_provider_access_team_id": { + "name": "llm_provider_access_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + }, + "llm_provider_access_provider_org_membership": { + "name": "llm_provider_access_provider_org_membership", + "columns": [ + "llm_provider_id", + "org_membership_id" + ], + "isUnique": true + }, + "llm_provider_access_provider_team": { + "name": "llm_provider_access_provider_team", + "columns": [ + "llm_provider_id", + "team_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "llm_provider_access_id": { + "name": "llm_provider_access_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "llm_provider_model": { + "name": "llm_provider_model", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "llm_provider_id": { + "name": "llm_provider_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "model_id": { + "name": "model_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "model_config": { + "name": "model_config", + "type": "json", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "llm_provider_model_llm_provider_id": { + "name": "llm_provider_model_llm_provider_id", + "columns": [ + "llm_provider_id" + ], + "isUnique": false + }, + "llm_provider_model_model_id": { + "name": "llm_provider_model_model_id", + "columns": [ + "model_id" + ], + "isUnique": false + }, + "llm_provider_model_provider_model": { + "name": "llm_provider_model_provider_model", + "columns": [ + "llm_provider_id", + "model_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "llm_provider_model_id": { + "name": "llm_provider_model_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "llm_provider": { + "name": "llm_provider", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "source": { + "name": "source", + "type": "enum('models_dev','custom','openwork')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "provider_id": { + "name": "provider_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "provider_config": { + "name": "provider_config", + "type": "json", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "api_key": { + "name": "api_key", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "llm_provider_organization_id": { + "name": "llm_provider_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "llm_provider_created_by_org_membership_id": { + "name": "llm_provider_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + }, + "llm_provider_source": { + "name": "llm_provider_source", + "columns": [ + "source" + ], + "isUnique": false + }, + "llm_provider_provider_id": { + "name": "llm_provider_provider_id", + "columns": [ + "provider_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "llm_provider_id": { + "name": "llm_provider_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "config_object_access_grant": { + "name": "config_object_access_grant", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "config_object_id": { + "name": "config_object_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "org_wide": { + "name": "org_wide", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "role": { + "name": "role", + "type": "enum('viewer','editor','manager')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "removed_at": { + "name": "removed_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "config_object_access_grant_organization_id": { + "name": "config_object_access_grant_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "config_object_access_grant_config_object_id": { + "name": "config_object_access_grant_config_object_id", + "columns": [ + "config_object_id" + ], + "isUnique": false + }, + "config_object_access_grant_org_membership_id": { + "name": "config_object_access_grant_org_membership_id", + "columns": [ + "org_membership_id" + ], + "isUnique": false + }, + "config_object_access_grant_team_id": { + "name": "config_object_access_grant_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + }, + "config_object_access_grant_org_wide": { + "name": "config_object_access_grant_org_wide", + "columns": [ + "org_wide" + ], + "isUnique": false + }, + "config_object_access_grant_object_org_membership": { + "name": "config_object_access_grant_object_org_membership", + "columns": [ + "config_object_id", + "org_membership_id" + ], + "isUnique": true + }, + "config_object_access_grant_object_team": { + "name": "config_object_access_grant_object_team", + "columns": [ + "config_object_id", + "team_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "config_object_access_grant_id": { + "name": "config_object_access_grant_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "config_object": { + "name": "config_object", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "object_type": { + "name": "object_type", + "type": "enum('skill','agent','command','tool','mcp','hook','context','custom')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "source_mode": { + "name": "source_mode", + "type": "enum('cloud','import','connector')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "title": { + "name": "title", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "search_text": { + "name": "search_text", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "current_file_name": { + "name": "current_file_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "current_file_extension": { + "name": "current_file_extension", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "current_relative_path": { + "name": "current_relative_path", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('active','inactive','deleted','archived','ingestion_error')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'active'" + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_instance_id": { + "name": "connector_instance_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + }, + "deleted_at": { + "name": "deleted_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "config_object_organization_id": { + "name": "config_object_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "config_object_type": { + "name": "config_object_type", + "columns": [ + "object_type" + ], + "isUnique": false + }, + "config_object_source_mode": { + "name": "config_object_source_mode", + "columns": [ + "source_mode" + ], + "isUnique": false + }, + "config_object_status": { + "name": "config_object_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "config_object_created_by_org_membership_id": { + "name": "config_object_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + }, + "config_object_connector_instance_id": { + "name": "config_object_connector_instance_id", + "columns": [ + "connector_instance_id" + ], + "isUnique": false + }, + "config_object_current_relative_path": { + "name": "config_object_current_relative_path", + "columns": [ + "current_relative_path" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "config_object_id": { + "name": "config_object_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "config_object_version": { + "name": "config_object_version", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "config_object_id": { + "name": "config_object_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "normalized_payload_json": { + "name": "normalized_payload_json", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "raw_source_text": { + "name": "raw_source_text", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "schema_version": { + "name": "schema_version", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_via": { + "name": "created_via", + "type": "enum('cloud','import','connector','system')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "connector_sync_event_id": { + "name": "connector_sync_event_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "source_revision_ref": { + "name": "source_revision_ref", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "is_deleted_version": { + "name": "is_deleted_version", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "config_object_version_organization_id": { + "name": "config_object_version_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "config_object_version_config_object_id": { + "name": "config_object_version_config_object_id", + "columns": [ + "config_object_id" + ], + "isUnique": false + }, + "config_object_version_created_by_org_membership_id": { + "name": "config_object_version_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + }, + "config_object_version_connector_sync_event_id": { + "name": "config_object_version_connector_sync_event_id", + "columns": [ + "connector_sync_event_id" + ], + "isUnique": false + }, + "config_object_version_source_revision_ref": { + "name": "config_object_version_source_revision_ref", + "columns": [ + "source_revision_ref" + ], + "isUnique": false + }, + "config_object_version_lookup_latest": { + "name": "config_object_version_lookup_latest", + "columns": [ + "config_object_id", + "created_at", + "id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "config_object_version_id": { + "name": "config_object_version_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "connector_account": { + "name": "connector_account", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_type": { + "name": "connector_type", + "type": "enum('github')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "remote_id": { + "name": "remote_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "external_account_ref": { + "name": "external_account_ref", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "display_name": { + "name": "display_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('active','inactive','disconnected','error')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'active'" + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "metadata_json": { + "name": "metadata_json", + "type": "json", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "connector_account_organization_id": { + "name": "connector_account_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "connector_account_created_by_org_membership_id": { + "name": "connector_account_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + }, + "connector_account_connector_type": { + "name": "connector_account_connector_type", + "columns": [ + "connector_type" + ], + "isUnique": false + }, + "connector_account_status": { + "name": "connector_account_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "connector_account_org_type_remote_id": { + "name": "connector_account_org_type_remote_id", + "columns": [ + "organization_id", + "connector_type", + "remote_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "connector_account_id": { + "name": "connector_account_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "connector_instance_access_grant": { + "name": "connector_instance_access_grant", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_instance_id": { + "name": "connector_instance_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "org_wide": { + "name": "org_wide", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "role": { + "name": "role", + "type": "enum('viewer','editor','manager')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "removed_at": { + "name": "removed_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "connector_instance_access_grant_organization_id": { + "name": "connector_instance_access_grant_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "connector_instance_access_grant_instance_id": { + "name": "connector_instance_access_grant_instance_id", + "columns": [ + "connector_instance_id" + ], + "isUnique": false + }, + "connector_instance_access_grant_org_membership_id": { + "name": "connector_instance_access_grant_org_membership_id", + "columns": [ + "org_membership_id" + ], + "isUnique": false + }, + "connector_instance_access_grant_team_id": { + "name": "connector_instance_access_grant_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + }, + "connector_instance_access_grant_org_wide": { + "name": "connector_instance_access_grant_org_wide", + "columns": [ + "org_wide" + ], + "isUnique": false + }, + "connector_instance_access_grant_instance_org_membership": { + "name": "connector_instance_access_grant_instance_org_membership", + "columns": [ + "connector_instance_id", + "org_membership_id" + ], + "isUnique": true + }, + "connector_instance_access_grant_instance_team": { + "name": "connector_instance_access_grant_instance_team", + "columns": [ + "connector_instance_id", + "team_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "connector_instance_access_grant_id": { + "name": "connector_instance_access_grant_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "connector_instance": { + "name": "connector_instance", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_account_id": { + "name": "connector_account_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_type": { + "name": "connector_type", + "type": "enum('github')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "remote_id": { + "name": "remote_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('active','disabled','archived','error')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'active'" + }, + "instance_config_json": { + "name": "instance_config_json", + "type": "json", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_synced_at": { + "name": "last_synced_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_sync_status": { + "name": "last_sync_status", + "type": "enum('pending','queued','running','completed','failed','partial','ignored')", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_sync_cursor": { + "name": "last_sync_cursor", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "connector_instance_organization_id": { + "name": "connector_instance_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "connector_instance_connector_account_id": { + "name": "connector_instance_connector_account_id", + "columns": [ + "connector_account_id" + ], + "isUnique": false + }, + "connector_instance_created_by_org_membership_id": { + "name": "connector_instance_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + }, + "connector_instance_connector_type": { + "name": "connector_instance_connector_type", + "columns": [ + "connector_type" + ], + "isUnique": false + }, + "connector_instance_status": { + "name": "connector_instance_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "connector_instance_org_name": { + "name": "connector_instance_org_name", + "columns": [ + "organization_id", + "name" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "connector_instance_id": { + "name": "connector_instance_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "connector_mapping": { + "name": "connector_mapping", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_instance_id": { + "name": "connector_instance_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_target_id": { + "name": "connector_target_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_type": { + "name": "connector_type", + "type": "enum('github')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "remote_id": { + "name": "remote_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "mapping_kind": { + "name": "mapping_kind", + "type": "enum('path','api','custom')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "selector": { + "name": "selector", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "object_type": { + "name": "object_type", + "type": "enum('skill','agent','command','tool','mcp','hook','context','custom')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "plugin_id": { + "name": "plugin_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "auto_add_to_plugin": { + "name": "auto_add_to_plugin", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "mapping_config_json": { + "name": "mapping_config_json", + "type": "json", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "connector_mapping_organization_id": { + "name": "connector_mapping_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "connector_mapping_connector_instance_id": { + "name": "connector_mapping_connector_instance_id", + "columns": [ + "connector_instance_id" + ], + "isUnique": false + }, + "connector_mapping_connector_target_id": { + "name": "connector_mapping_connector_target_id", + "columns": [ + "connector_target_id" + ], + "isUnique": false + }, + "connector_mapping_object_type": { + "name": "connector_mapping_object_type", + "columns": [ + "object_type" + ], + "isUnique": false + }, + "connector_mapping_plugin_id": { + "name": "connector_mapping_plugin_id", + "columns": [ + "plugin_id" + ], + "isUnique": false + }, + "connector_mapping_target_selector_object_type": { + "name": "connector_mapping_target_selector_object_type", + "columns": [ + "connector_target_id", + "selector", + "object_type" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "connector_mapping_id": { + "name": "connector_mapping_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "connector_source_binding": { + "name": "connector_source_binding", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "config_object_id": { + "name": "config_object_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_instance_id": { + "name": "connector_instance_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_target_id": { + "name": "connector_target_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_mapping_id": { + "name": "connector_mapping_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_type": { + "name": "connector_type", + "type": "enum('github')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "remote_id": { + "name": "remote_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "external_locator": { + "name": "external_locator", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "external_stable_ref": { + "name": "external_stable_ref", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_seen_source_revision_ref": { + "name": "last_seen_source_revision_ref", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('active','inactive','deleted','archived','ingestion_error')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'active'" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + }, + "deleted_at": { + "name": "deleted_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "connector_source_binding_organization_id": { + "name": "connector_source_binding_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "connector_source_binding_config_object_id": { + "name": "connector_source_binding_config_object_id", + "columns": [ + "config_object_id" + ], + "isUnique": false + }, + "connector_source_binding_connector_instance_id": { + "name": "connector_source_binding_connector_instance_id", + "columns": [ + "connector_instance_id" + ], + "isUnique": false + }, + "connector_source_binding_connector_target_id": { + "name": "connector_source_binding_connector_target_id", + "columns": [ + "connector_target_id" + ], + "isUnique": false + }, + "connector_source_binding_connector_mapping_id": { + "name": "connector_source_binding_connector_mapping_id", + "columns": [ + "connector_mapping_id" + ], + "isUnique": false + }, + "connector_source_binding_external_locator": { + "name": "connector_source_binding_external_locator", + "columns": [ + "external_locator" + ], + "isUnique": false + }, + "connector_source_binding_config_object": { + "name": "connector_source_binding_config_object", + "columns": [ + "config_object_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "connector_source_binding_id": { + "name": "connector_source_binding_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "connector_source_tombstone": { + "name": "connector_source_tombstone", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_instance_id": { + "name": "connector_instance_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_target_id": { + "name": "connector_target_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_mapping_id": { + "name": "connector_mapping_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_type": { + "name": "connector_type", + "type": "enum('github')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "remote_id": { + "name": "remote_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "external_locator": { + "name": "external_locator", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "former_config_object_id": { + "name": "former_config_object_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "deleted_in_sync_event_id": { + "name": "deleted_in_sync_event_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "deleted_source_revision_ref": { + "name": "deleted_source_revision_ref", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "connector_source_tombstone_organization_id": { + "name": "connector_source_tombstone_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "connector_source_tombstone_connector_instance_id": { + "name": "connector_source_tombstone_connector_instance_id", + "columns": [ + "connector_instance_id" + ], + "isUnique": false + }, + "connector_source_tombstone_connector_target_id": { + "name": "connector_source_tombstone_connector_target_id", + "columns": [ + "connector_target_id" + ], + "isUnique": false + }, + "connector_source_tombstone_connector_mapping_id": { + "name": "connector_source_tombstone_connector_mapping_id", + "columns": [ + "connector_mapping_id" + ], + "isUnique": false + }, + "connector_source_tombstone_external_locator": { + "name": "connector_source_tombstone_external_locator", + "columns": [ + "external_locator" + ], + "isUnique": false + }, + "connector_source_tombstone_former_config_object_id": { + "name": "connector_source_tombstone_former_config_object_id", + "columns": [ + "former_config_object_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "connector_source_tombstone_id": { + "name": "connector_source_tombstone_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "connector_sync_event": { + "name": "connector_sync_event", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_instance_id": { + "name": "connector_instance_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_target_id": { + "name": "connector_target_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "connector_type": { + "name": "connector_type", + "type": "enum('github')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "remote_id": { + "name": "remote_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "event_type": { + "name": "event_type", + "type": "enum('push','installation','installation_repositories','repository','manual_resync')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "external_event_ref": { + "name": "external_event_ref", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "source_revision_ref": { + "name": "source_revision_ref", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('pending','queued','running','completed','failed','partial','ignored')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'pending'" + }, + "summary_json": { + "name": "summary_json", + "type": "json", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "started_at": { + "name": "started_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "completed_at": { + "name": "completed_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "connector_sync_event_organization_id": { + "name": "connector_sync_event_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "connector_sync_event_connector_instance_id": { + "name": "connector_sync_event_connector_instance_id", + "columns": [ + "connector_instance_id" + ], + "isUnique": false + }, + "connector_sync_event_connector_target_id": { + "name": "connector_sync_event_connector_target_id", + "columns": [ + "connector_target_id" + ], + "isUnique": false + }, + "connector_sync_event_event_type": { + "name": "connector_sync_event_event_type", + "columns": [ + "event_type" + ], + "isUnique": false + }, + "connector_sync_event_status": { + "name": "connector_sync_event_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "connector_sync_event_source_revision_ref": { + "name": "connector_sync_event_source_revision_ref", + "columns": [ + "source_revision_ref" + ], + "isUnique": false + }, + "connector_sync_event_external_event_ref": { + "name": "connector_sync_event_external_event_ref", + "columns": [ + "external_event_ref" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "connector_sync_event_id": { + "name": "connector_sync_event_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "connector_target": { + "name": "connector_target", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_instance_id": { + "name": "connector_instance_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_type": { + "name": "connector_type", + "type": "enum('github')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "remote_id": { + "name": "remote_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "target_kind": { + "name": "target_kind", + "type": "enum('repository_branch')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "external_target_ref": { + "name": "external_target_ref", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "target_config_json": { + "name": "target_config_json", + "type": "json", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "connector_target_organization_id": { + "name": "connector_target_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "connector_target_connector_instance_id": { + "name": "connector_target_connector_instance_id", + "columns": [ + "connector_instance_id" + ], + "isUnique": false + }, + "connector_target_connector_type": { + "name": "connector_target_connector_type", + "columns": [ + "connector_type" + ], + "isUnique": false + }, + "connector_target_target_kind": { + "name": "connector_target_target_kind", + "columns": [ + "target_kind" + ], + "isUnique": false + }, + "connector_target_instance_remote_id": { + "name": "connector_target_instance_remote_id", + "columns": [ + "connector_instance_id", + "remote_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "connector_target_id": { + "name": "connector_target_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "marketplace_access_grant": { + "name": "marketplace_access_grant", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "marketplace_id": { + "name": "marketplace_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "org_wide": { + "name": "org_wide", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "role": { + "name": "role", + "type": "enum('viewer','editor','manager')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "removed_at": { + "name": "removed_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "marketplace_access_grant_organization_id": { + "name": "marketplace_access_grant_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "marketplace_access_grant_marketplace_id": { + "name": "marketplace_access_grant_marketplace_id", + "columns": [ + "marketplace_id" + ], + "isUnique": false + }, + "marketplace_access_grant_org_membership_id": { + "name": "marketplace_access_grant_org_membership_id", + "columns": [ + "org_membership_id" + ], + "isUnique": false + }, + "marketplace_access_grant_team_id": { + "name": "marketplace_access_grant_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + }, + "marketplace_access_grant_org_wide": { + "name": "marketplace_access_grant_org_wide", + "columns": [ + "org_wide" + ], + "isUnique": false + }, + "marketplace_access_grant_marketplace_org_membership": { + "name": "marketplace_access_grant_marketplace_org_membership", + "columns": [ + "marketplace_id", + "org_membership_id" + ], + "isUnique": true + }, + "marketplace_access_grant_marketplace_team": { + "name": "marketplace_access_grant_marketplace_team", + "columns": [ + "marketplace_id", + "team_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "marketplace_access_grant_id": { + "name": "marketplace_access_grant_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "marketplace_plugin": { + "name": "marketplace_plugin", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "marketplace_id": { + "name": "marketplace_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "plugin_id": { + "name": "plugin_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "membership_source": { + "name": "membership_source", + "type": "enum('manual','connector','api','system')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'manual'" + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "removed_at": { + "name": "removed_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "marketplace_plugin_organization_id": { + "name": "marketplace_plugin_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "marketplace_plugin_marketplace_id": { + "name": "marketplace_plugin_marketplace_id", + "columns": [ + "marketplace_id" + ], + "isUnique": false + }, + "marketplace_plugin_plugin_id": { + "name": "marketplace_plugin_plugin_id", + "columns": [ + "plugin_id" + ], + "isUnique": false + }, + "marketplace_plugin_marketplace_plugin": { + "name": "marketplace_plugin_marketplace_plugin", + "columns": [ + "marketplace_id", + "plugin_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "marketplace_plugin_id": { + "name": "marketplace_plugin_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "marketplace": { + "name": "marketplace", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('active','inactive','deleted','archived')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'active'" + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + }, + "deleted_at": { + "name": "deleted_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "marketplace_organization_id": { + "name": "marketplace_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "marketplace_created_by_org_membership_id": { + "name": "marketplace_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + }, + "marketplace_status": { + "name": "marketplace_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "marketplace_name": { + "name": "marketplace_name", + "columns": [ + "name" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "marketplace_id": { + "name": "marketplace_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "plugin_access_grant": { + "name": "plugin_access_grant", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "plugin_id": { + "name": "plugin_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "org_wide": { + "name": "org_wide", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "role": { + "name": "role", + "type": "enum('viewer','editor','manager')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "removed_at": { + "name": "removed_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "plugin_access_grant_organization_id": { + "name": "plugin_access_grant_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "plugin_access_grant_plugin_id": { + "name": "plugin_access_grant_plugin_id", + "columns": [ + "plugin_id" + ], + "isUnique": false + }, + "plugin_access_grant_org_membership_id": { + "name": "plugin_access_grant_org_membership_id", + "columns": [ + "org_membership_id" + ], + "isUnique": false + }, + "plugin_access_grant_team_id": { + "name": "plugin_access_grant_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + }, + "plugin_access_grant_org_wide": { + "name": "plugin_access_grant_org_wide", + "columns": [ + "org_wide" + ], + "isUnique": false + }, + "plugin_access_grant_plugin_org_membership": { + "name": "plugin_access_grant_plugin_org_membership", + "columns": [ + "plugin_id", + "org_membership_id" + ], + "isUnique": true + }, + "plugin_access_grant_plugin_team": { + "name": "plugin_access_grant_plugin_team", + "columns": [ + "plugin_id", + "team_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "plugin_access_grant_id": { + "name": "plugin_access_grant_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "plugin_config_object": { + "name": "plugin_config_object", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "plugin_id": { + "name": "plugin_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "config_object_id": { + "name": "config_object_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "membership_source": { + "name": "membership_source", + "type": "enum('manual','connector','api','system')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'manual'" + }, + "connector_mapping_id": { + "name": "connector_mapping_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "removed_at": { + "name": "removed_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "plugin_config_object_organization_id": { + "name": "plugin_config_object_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "plugin_config_object_plugin_id": { + "name": "plugin_config_object_plugin_id", + "columns": [ + "plugin_id" + ], + "isUnique": false + }, + "plugin_config_object_config_object_id": { + "name": "plugin_config_object_config_object_id", + "columns": [ + "config_object_id" + ], + "isUnique": false + }, + "plugin_config_object_connector_mapping_id": { + "name": "plugin_config_object_connector_mapping_id", + "columns": [ + "connector_mapping_id" + ], + "isUnique": false + }, + "plugin_config_object_plugin_config_object": { + "name": "plugin_config_object_plugin_config_object", + "columns": [ + "plugin_id", + "config_object_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "plugin_config_object_id": { + "name": "plugin_config_object_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "plugin": { + "name": "plugin", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('active','inactive','deleted','archived')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'active'" + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + }, + "deleted_at": { + "name": "deleted_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "plugin_organization_id": { + "name": "plugin_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "plugin_created_by_org_membership_id": { + "name": "plugin_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + }, + "plugin_status": { + "name": "plugin_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "plugin_name": { + "name": "plugin_name", + "columns": [ + "name" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "plugin_id": { + "name": "plugin_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "skill_hub_member": { + "name": "skill_hub_member", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "skill_hub_id": { + "name": "skill_hub_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "skill_hub_member_skill_hub_id": { + "name": "skill_hub_member_skill_hub_id", + "columns": [ + "skill_hub_id" + ], + "isUnique": false + }, + "skill_hub_member_org_membership_id": { + "name": "skill_hub_member_org_membership_id", + "columns": [ + "org_membership_id" + ], + "isUnique": false + }, + "skill_hub_member_team_id": { + "name": "skill_hub_member_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + }, + "skill_hub_member_hub_org_membership": { + "name": "skill_hub_member_hub_org_membership", + "columns": [ + "skill_hub_id", + "org_membership_id" + ], + "isUnique": true + }, + "skill_hub_member_hub_team": { + "name": "skill_hub_member_hub_team", + "columns": [ + "skill_hub_id", + "team_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "skill_hub_member_id": { + "name": "skill_hub_member_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "skill_hub_skill": { + "name": "skill_hub_skill", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "skill_hub_id": { + "name": "skill_hub_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "skill_id": { + "name": "skill_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "skill_hub_skill_skill_hub_id": { + "name": "skill_hub_skill_skill_hub_id", + "columns": [ + "skill_hub_id" + ], + "isUnique": false + }, + "skill_hub_skill_skill_id": { + "name": "skill_hub_skill_skill_id", + "columns": [ + "skill_id" + ], + "isUnique": false + }, + "skill_hub_skill_hub_skill": { + "name": "skill_hub_skill_hub_skill", + "columns": [ + "skill_hub_id", + "skill_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "skill_hub_skill_id": { + "name": "skill_hub_skill_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "skill_hub": { + "name": "skill_hub", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "skill_hub_organization_id": { + "name": "skill_hub_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "skill_hub_created_by_org_membership_id": { + "name": "skill_hub_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "skill_hub_id": { + "name": "skill_hub_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "skill": { + "name": "skill", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "title": { + "name": "title", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "skill_text": { + "name": "skill_text", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "shared": { + "name": "shared", + "type": "enum('org','public')", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "skill_organization_id": { + "name": "skill_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "skill_created_by_org_membership_id": { + "name": "skill_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + }, + "skill_shared": { + "name": "skill_shared", + "columns": [ + "shared" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "skill_id": { + "name": "skill_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "team_member": { + "name": "team_member", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "team_member_team_id": { + "name": "team_member_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + }, + "team_member_org_membership_id": { + "name": "team_member_org_membership_id", + "columns": [ + "org_membership_id" + ], + "isUnique": false + }, + "team_member_team_org_membership": { + "name": "team_member_team_org_membership", + "columns": [ + "team_id", + "org_membership_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "team_member_id": { + "name": "team_member_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "team": { + "name": "team", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "team_organization_id": { + "name": "team_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "team_organization_name": { + "name": "team_organization_name", + "columns": [ + "organization_id", + "name" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "team_id": { + "name": "team_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "audit_event": { + "name": "audit_event", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_id": { + "name": "org_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "worker_id": { + "name": "worker_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "actor_user_id": { + "name": "actor_user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "action": { + "name": "action", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "payload": { + "name": "payload", + "type": "json", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "audit_event_org_id": { + "name": "audit_event_org_id", + "columns": [ + "org_id" + ], + "isUnique": false + }, + "audit_event_worker_id": { + "name": "audit_event_worker_id", + "columns": [ + "worker_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "audit_event_id": { + "name": "audit_event_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "daytona_sandbox": { + "name": "daytona_sandbox", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "worker_id": { + "name": "worker_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "sandbox_id": { + "name": "sandbox_id", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "workspace_volume_id": { + "name": "workspace_volume_id", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "data_volume_id": { + "name": "data_volume_id", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "signed_preview_url": { + "name": "signed_preview_url", + "type": "varchar(2048)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "signed_preview_url_expires_at": { + "name": "signed_preview_url_expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "region": { + "name": "region", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "daytona_sandbox_worker_id": { + "name": "daytona_sandbox_worker_id", + "columns": [ + "worker_id" + ], + "isUnique": true + }, + "daytona_sandbox_sandbox_id": { + "name": "daytona_sandbox_sandbox_id", + "columns": [ + "sandbox_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "daytona_sandbox_id": { + "name": "daytona_sandbox_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "worker_bundle": { + "name": "worker_bundle", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "worker_id": { + "name": "worker_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "storage_url": { + "name": "storage_url", + "type": "varchar(2048)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "worker_bundle_worker_id": { + "name": "worker_bundle_worker_id", + "columns": [ + "worker_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "worker_bundle_id": { + "name": "worker_bundle_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "worker_instance": { + "name": "worker_instance", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "worker_id": { + "name": "worker_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "provider": { + "name": "provider", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "region": { + "name": "region", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "url": { + "name": "url", + "type": "varchar(2048)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('provisioning','healthy','failed','stopped')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "worker_instance_worker_id": { + "name": "worker_instance_worker_id", + "columns": [ + "worker_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "worker_instance_id": { + "name": "worker_instance_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "worker": { + "name": "worker", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_id": { + "name": "org_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_user_id": { + "name": "created_by_user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "varchar(1024)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "destination": { + "name": "destination", + "type": "enum('local','cloud')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('provisioning','healthy','failed','stopped')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "image_version": { + "name": "image_version", + "type": "varchar(128)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "workspace_path": { + "name": "workspace_path", + "type": "varchar(1024)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "sandbox_backend": { + "name": "sandbox_backend", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_heartbeat_at": { + "name": "last_heartbeat_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_active_at": { + "name": "last_active_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "worker_org_id": { + "name": "worker_org_id", + "columns": [ + "org_id" + ], + "isUnique": false + }, + "worker_created_by_user_id": { + "name": "worker_created_by_user_id", + "columns": [ + "created_by_user_id" + ], + "isUnique": false + }, + "worker_status": { + "name": "worker_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "worker_last_heartbeat_at": { + "name": "worker_last_heartbeat_at", + "columns": [ + "last_heartbeat_at" + ], + "isUnique": false + }, + "worker_last_active_at": { + "name": "worker_last_active_at", + "columns": [ + "last_active_at" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "worker_id": { + "name": "worker_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "worker_token": { + "name": "worker_token", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "worker_id": { + "name": "worker_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "scope": { + "name": "scope", + "type": "enum('client','host','activity')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "token": { + "name": "token", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "revoked_at": { + "name": "revoked_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "worker_token_worker_id": { + "name": "worker_token_worker_id", + "columns": [ + "worker_id" + ], + "isUnique": false + }, + "worker_token_token": { + "name": "worker_token_token", + "columns": [ + "token" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "worker_token_id": { + "name": "worker_token_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "admin_allowlist": { + "name": "admin_allowlist", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "email": { + "name": "email", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "note": { + "name": "note", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "admin_allowlist_email": { + "name": "admin_allowlist_email", + "columns": [ + "email" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "admin_allowlist_id": { + "name": "admin_allowlist_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "rate_limit": { + "name": "rate_limit", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "key": { + "name": "key", + "type": "varchar(512)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "count": { + "name": "count", + "type": "int", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": 0 + }, + "last_request": { + "name": "last_request", + "type": "bigint", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "rate_limit_key": { + "name": "rate_limit_key", + "columns": [ + "key" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "rate_limit_id": { + "name": "rate_limit_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "telemetry_event": { + "name": "telemetry_event", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_id": { + "name": "org_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "member_id": { + "name": "member_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "event_type": { + "name": "event_type", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "event_timestamp": { + "name": "event_timestamp", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "telemetry_event_org_id_type_ts": { + "name": "telemetry_event_org_id_type_ts", + "columns": [ + "org_id", + "event_type", + "event_timestamp" + ], + "isUnique": false + }, + "telemetry_event_org_id_member_id": { + "name": "telemetry_event_org_id_member_id", + "columns": [ + "org_id", + "member_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "telemetry_event_id": { + "name": "telemetry_event_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + } + }, + "views": {}, + "_meta": { + "schemas": {}, + "tables": {}, + "columns": {} + }, + "internal": { + "tables": {}, + "indexes": {} + } +} diff --git a/ee/packages/den-db/drizzle/meta/_journal.json b/ee/packages/den-db/drizzle/meta/_journal.json index 676a48051..928ea2311 100644 --- a/ee/packages/den-db/drizzle/meta/_journal.json +++ b/ee/packages/den-db/drizzle/meta/_journal.json @@ -99,6 +99,13 @@ "when": 1777400000000, "tag": "0014_drop_temp_template_sharing", "breakpoints": true + }, + { + "idx": 15, + "version": "5", + "when": 1778613784603, + "tag": "0015_inference_proxy", + "breakpoints": true } ] } diff --git a/ee/packages/den-db/package.json b/ee/packages/den-db/package.json index af6bbc662..5b2d8046a 100644 --- a/ee/packages/den-db/package.json +++ b/ee/packages/den-db/package.json @@ -21,6 +21,11 @@ "development": "./src/schema/auth.ts", "default": "./dist/schema/auth.js" }, + "./schema/inference": { + "types": "./src/schema/inference.ts", + "development": "./src/schema/inference.ts", + "default": "./dist/schema/inference.js" + }, "./schema/org": { "types": "./src/schema/org.ts", "development": "./src/schema/org.ts", diff --git a/ee/packages/den-db/src/schema/index.ts b/ee/packages/den-db/src/schema/index.ts index c17847898..a8b49fd5e 100644 --- a/ee/packages/den-db/src/schema/index.ts +++ b/ee/packages/den-db/src/schema/index.ts @@ -1,4 +1,5 @@ export * from "./auth" +export * from "./inference" export * from "./org" export * from "./sharables/llm-providers" export * from "./sharables/plugin-arch" diff --git a/ee/packages/den-db/src/schema/inference.ts b/ee/packages/den-db/src/schema/inference.ts new file mode 100644 index 000000000..5ac339efb --- /dev/null +++ b/ee/packages/den-db/src/schema/inference.ts @@ -0,0 +1,243 @@ +import { relations } from "drizzle-orm" +import { + bigint, + index, + mysqlEnum, + mysqlTable, + timestamp, + uniqueIndex, + varchar, +} from "drizzle-orm/mysql-core" +import { INFERENCE_RESET_STRATEGIES, INFERENCE_WINDOW_TYPES } from "@openwork/types/den/inference" +import { denTypeIdColumn, encryptedTextColumn, timestamps } from "../columns" +import { MemberTable, OrganizationTable } from "./org" + +export const InferenceKeyStatus = ["active", "revoked"] as const +export const InferenceOrgUpstreamProviderKeyStatus = ["active", "revoked"] as const + +export const InferenceKeyTable = mysqlTable( + "inference_keys", + { + id: denTypeIdColumn("inferenceKey", "id").notNull().primaryKey(), + organization_id: denTypeIdColumn("organization", "organization_id").notNull(), + org_membership_id: denTypeIdColumn("member", "org_membership_id").notNull(), + name: varchar("name", { length: 255 }), + key_hash: varchar("key_hash", { length: 255 }).notNull(), + key_prefix: varchar("key_prefix", { length: 32 }), + status: mysqlEnum("status", InferenceKeyStatus).notNull().default("active"), + revoked_at: timestamp("revoked_at", { fsp: 3 }), + ...timestamps, + }, + (table) => [ + uniqueIndex("inference_keys_key_hash").on(table.key_hash), + index("inference_keys_organization_id").on(table.organization_id), + index("inference_keys_org_membership_id").on(table.org_membership_id), + index("inference_keys_status").on(table.status), + ], +) + +export const InferenceOrgLimitPolicyTable = mysqlTable( + "inference_org_limit_policies", + { + id: denTypeIdColumn("inferenceOrgLimitPolicy", "id").notNull().primaryKey(), + organization_id: denTypeIdColumn("organization", "organization_id").notNull(), + window_type: mysqlEnum("window_type", INFERENCE_WINDOW_TYPES).notNull(), + limit_amount: bigint("limit_amount", { mode: "number" }).notNull(), + reset_strategy: mysqlEnum("reset_strategy", INFERENCE_RESET_STRATEGIES).notNull(), + anchor_at: timestamp("anchor_at", { fsp: 3 }), + current_bucket_id: denTypeIdColumn("inferenceOrgUsageBucket", "current_bucket_id"), + ...timestamps, + }, + (table) => [ + index("inference_org_limit_policies_organization_id").on(table.organization_id), + uniqueIndex("inference_org_limit_policies_org_window_type").on( + table.organization_id, + table.window_type, + ), + ], +) + +export const InferenceOrgUsageBucketTable = mysqlTable( + "inference_org_usage_buckets", + { + id: denTypeIdColumn("inferenceOrgUsageBucket", "id").notNull().primaryKey(), + organization_id: denTypeIdColumn("organization", "organization_id").notNull(), + policy_id: denTypeIdColumn("inferenceOrgLimitPolicy", "policy_id").notNull(), + window_start_at: timestamp("window_start_at", { fsp: 3 }).notNull(), + window_end_at: timestamp("window_end_at", { fsp: 3 }).notNull(), + limit_amount: bigint("limit_amount", { mode: "number" }).notNull(), + used_amount: bigint("used_amount", { mode: "number" }).notNull().default(0), + ...timestamps, + }, + (table) => [ + index("inference_org_usage_buckets_org_window").on( + table.organization_id, + table.window_start_at, + table.window_end_at, + ), + index("inference_org_usage_buckets_policy_id").on(table.policy_id), + index("inference_org_usage_buckets_policy_window").on( + table.policy_id, + table.window_start_at, + table.window_end_at, + ), + ], +) + +// Stores organization-owned upstream provider credentials used by the inference proxy. +export const InferenceOrgUpstreamProviderKeyTable = mysqlTable( + "inference_org_upstream_provider_keys", + { + id: denTypeIdColumn("inferenceOrgProviderKey", "id").notNull().primaryKey(), + organization_id: denTypeIdColumn("organization", "organization_id").notNull(), + provider: varchar("provider", { length: 64 }).notNull().default("openrouter"), + external_key_hash: varchar("external_key_hash", { length: 255 }), + external_workspace_id: varchar("external_workspace_id", { length: 255 }), + encrypted_api_key: encryptedTextColumn("encrypted_api_key").notNull(), + key_prefix: varchar("key_prefix", { length: 32 }), + status: mysqlEnum("status", InferenceOrgUpstreamProviderKeyStatus).notNull().default("active"), + revoked_at: timestamp("revoked_at", { fsp: 3 }), + ...timestamps, + }, + (table) => [ + index("inference_org_upstream_provider_keys_organization_id").on(table.organization_id), + index("inference_org_upstream_provider_keys_external_key_hash").on(table.external_key_hash), + uniqueIndex("inference_org_upstream_provider_keys_org_provider").on( + table.organization_id, + table.provider, + ), + index("inference_org_upstream_provider_keys_status").on(table.status), + ], +) + +export const InferenceUsageLedgerEntryTable = mysqlTable( + "inference_usage_ledger_entries", + { + id: denTypeIdColumn("inferenceUsageLedgerEntry", "id").notNull().primaryKey(), + organization_id: denTypeIdColumn("organization", "organization_id").notNull(), + org_membership_id: denTypeIdColumn("member", "org_membership_id").notNull(), + inference_key_id: denTypeIdColumn("inferenceKey", "inference_key_id"), + external_job_id: varchar("external_job_id", { length: 255 }).notNull(), + external_event_id: varchar("external_event_id", { length: 255 }), + cost_amount: bigint("cost_amount", { mode: "number" }).notNull(), + event_type: varchar("event_type", { length: 64 }).notNull(), + occurred_at: timestamp("occurred_at", { fsp: 3 }).notNull(), + created_at: timestamps.created_at, + }, + (table) => [ + index("inference_usage_ledger_entries_organization_id").on(table.organization_id), + index("inference_usage_ledger_entries_org_membership_id").on(table.org_membership_id), + index("inference_usage_ledger_entries_inference_key_id").on(table.inference_key_id), + uniqueIndex("inference_usage_ledger_entries_external_event_id").on(table.external_event_id), + uniqueIndex("inference_usage_ledger_entries_job_event_type").on( + table.external_job_id, + table.event_type, + ), + ], +) + +export const InferenceUsageLedgerBucketChargeTable = mysqlTable( + "inference_usage_ledger_bucket_charges", + { + id: denTypeIdColumn("inferenceUsageLedgerBucketCharge", "id").notNull().primaryKey(), + ledger_entry_id: denTypeIdColumn("inferenceUsageLedgerEntry", "ledger_entry_id").notNull(), + bucket_id: denTypeIdColumn("inferenceOrgUsageBucket", "bucket_id").notNull(), + amount: bigint("amount", { mode: "number" }).notNull(), + created_at: timestamps.created_at, + }, + (table) => [ + index("inference_usage_ledger_bucket_charges_bucket_id").on(table.bucket_id), + uniqueIndex("inference_usage_ledger_bucket_charges_entry_bucket").on( + table.ledger_entry_id, + table.bucket_id, + ), + ], +) + +export const inferenceKeyRelations = relations(InferenceKeyTable, ({ many, one }) => ({ + organization: one(OrganizationTable, { + fields: [InferenceKeyTable.organization_id], + references: [OrganizationTable.id], + }), + orgMembership: one(MemberTable, { + fields: [InferenceKeyTable.org_membership_id], + references: [MemberTable.id], + }), + ledgerEntries: many(InferenceUsageLedgerEntryTable), +})) + +export const inferenceOrgLimitPolicyRelations = relations( + InferenceOrgLimitPolicyTable, + ({ many, one }) => ({ + organization: one(OrganizationTable, { + fields: [InferenceOrgLimitPolicyTable.organization_id], + references: [OrganizationTable.id], + }), + buckets: many(InferenceOrgUsageBucketTable), + }), +) + +export const inferenceOrgUsageBucketRelations = relations( + InferenceOrgUsageBucketTable, + ({ many, one }) => ({ + organization: one(OrganizationTable, { + fields: [InferenceOrgUsageBucketTable.organization_id], + references: [OrganizationTable.id], + }), + policy: one(InferenceOrgLimitPolicyTable, { + fields: [InferenceOrgUsageBucketTable.policy_id], + references: [InferenceOrgLimitPolicyTable.id], + }), + charges: many(InferenceUsageLedgerBucketChargeTable), + }), +) + +export const inferenceOrgUpstreamProviderKeyRelations = relations( + InferenceOrgUpstreamProviderKeyTable, + ({ one }) => ({ + organization: one(OrganizationTable, { + fields: [InferenceOrgUpstreamProviderKeyTable.organization_id], + references: [OrganizationTable.id], + }), + }), +) + +export const inferenceUsageLedgerEntryRelations = relations( + InferenceUsageLedgerEntryTable, + ({ many, one }) => ({ + organization: one(OrganizationTable, { + fields: [InferenceUsageLedgerEntryTable.organization_id], + references: [OrganizationTable.id], + }), + orgMembership: one(MemberTable, { + fields: [InferenceUsageLedgerEntryTable.org_membership_id], + references: [MemberTable.id], + }), + inferenceKey: one(InferenceKeyTable, { + fields: [InferenceUsageLedgerEntryTable.inference_key_id], + references: [InferenceKeyTable.id], + }), + bucketCharges: many(InferenceUsageLedgerBucketChargeTable), + }), +) + +export const inferenceUsageLedgerBucketChargeRelations = relations( + InferenceUsageLedgerBucketChargeTable, + ({ one }) => ({ + ledgerEntry: one(InferenceUsageLedgerEntryTable, { + fields: [InferenceUsageLedgerBucketChargeTable.ledger_entry_id], + references: [InferenceUsageLedgerEntryTable.id], + }), + bucket: one(InferenceOrgUsageBucketTable, { + fields: [InferenceUsageLedgerBucketChargeTable.bucket_id], + references: [InferenceOrgUsageBucketTable.id], + }), + }), +) + +export const inferenceKey = InferenceKeyTable +export const inferenceOrgLimitPolicy = InferenceOrgLimitPolicyTable +export const inferenceOrgUsageBucket = InferenceOrgUsageBucketTable +export const inferenceOrgUpstreamProviderKey = InferenceOrgUpstreamProviderKeyTable +export const inferenceUsageLedgerEntry = InferenceUsageLedgerEntryTable +export const inferenceUsageLedgerBucketCharge = InferenceUsageLedgerBucketChargeTable diff --git a/ee/packages/den-db/src/schema/sharables/llm-providers.ts b/ee/packages/den-db/src/schema/sharables/llm-providers.ts index c004f400e..c4ded9517 100644 --- a/ee/packages/den-db/src/schema/sharables/llm-providers.ts +++ b/ee/packages/den-db/src/schema/sharables/llm-providers.ts @@ -24,7 +24,7 @@ export const LlmProviderTable = mysqlTable( "member", "created_by_org_membership_id", ).notNull(), - source: mysqlEnum("source", ["models_dev", "custom"]).notNull(), + source: mysqlEnum("source", ["models_dev", "custom", "openwork"]).notNull(), providerId: varchar("provider_id", { length: 255 }).notNull(), name: varchar("name", { length: 255 }).notNull(), providerConfig: json("provider_config") diff --git a/ee/packages/den-db/tsup.config.ts b/ee/packages/den-db/tsup.config.ts index 4994e8775..df58f602e 100644 --- a/ee/packages/den-db/tsup.config.ts +++ b/ee/packages/den-db/tsup.config.ts @@ -5,6 +5,7 @@ export default defineConfig({ index: "src/index.ts", schema: "src/schema.ts", "schema/auth": "src/schema/auth.ts", + "schema/inference": "src/schema/inference.ts", "schema/org": "src/schema/org.ts", "schema/sharables/skills": "src/schema/sharables/skills.ts", "schema/teams": "src/schema/teams.ts", diff --git a/ee/packages/utils/src/typeid.ts b/ee/packages/utils/src/typeid.ts index 4eb5b3dd3..bc96affbf 100644 --- a/ee/packages/utils/src/typeid.ts +++ b/ee/packages/utils/src/typeid.ts @@ -59,6 +59,14 @@ export const idTypesMapNameToPrefix = { workerBundle: "wkb", auditEvent: "aev", telemetryEvent: "tev", + inferenceKey: "ink", + inferenceOrgLimitPolicy: "iolp", + inferenceOrgUsageBucket: "ioub", + inferenceRequest: "ireq", + inferenceUsageLedgerEntry: "iule", + inferenceUsageLedgerBucketCharge: "iulc", + inferenceModelAlias: "ima", + inferenceOrgProviderKey: "iopk", } as const export const denTypeIdPrefixes = idTypesMapNameToPrefix diff --git a/package.json b/package.json index 74261509c..8779b6208 100644 --- a/package.json +++ b/package.json @@ -11,12 +11,14 @@ "dev:ui-demo": "pnpm --filter @openwork/ui-demo dev", "dev:story": "OPENWORK_DEV_MODE=1 pnpm --filter @openwork/story-book dev", "dev:web": "pnpm run dev:den:web", + "dev:web-local": "pnpm run dev:den", "dev:den": "node scripts/dev-local.mjs", "dev:den-local": "pnpm run dev:den", "dev:den:mysql": "docker compose -p openwork-den-local -f packaging/docker/docker-compose.web-local.yml up -d --wait mysql", "dev:den:mysql:down": "docker compose -p openwork-den-local -f packaging/docker/docker-compose.web-local.yml down", "dev:den:db-push": "sh -lc 'DATABASE_URL=${DATABASE_URL:-mysql://root:password@127.0.0.1:3306/openwork_den} DEN_DB_ENCRYPTION_KEY=${DEN_DB_ENCRYPTION_KEY:-local-dev-db-encryption-key-please-change-1234567890} pnpm --filter @openwork-ee/den-db db:push'", "dev:den:api": "sh -lc 'DEN_WEB_PORT=${DEN_WEB_PORT:-3005}; OPENWORK_APP_PORT=${OPENWORK_APP_PORT:-5173}; DEN_LOCAL_ORIGINS=http://localhost:$DEN_WEB_PORT,http://127.0.0.1:$DEN_WEB_PORT,http://localhost:$OPENWORK_APP_PORT,http://127.0.0.1:$OPENWORK_APP_PORT; OPENWORK_DEV_MODE=1 PORT=${DEN_API_PORT:-8790} DATABASE_URL=${DATABASE_URL:-mysql://root:password@127.0.0.1:3306/openwork_den} DEN_DB_ENCRYPTION_KEY=${DEN_DB_ENCRYPTION_KEY:-local-dev-db-encryption-key-please-change-1234567890} BETTER_AUTH_SECRET=${BETTER_AUTH_SECRET:-local-dev-secret-not-for-production-use!!} BETTER_AUTH_URL=${BETTER_AUTH_URL:-http://localhost:$DEN_WEB_PORT} DEN_BETTER_AUTH_TRUSTED_ORIGINS=${DEN_BETTER_AUTH_TRUSTED_ORIGINS:-$DEN_LOCAL_ORIGINS} CORS_ORIGINS=${CORS_ORIGINS:-$DEN_LOCAL_ORIGINS} PROVISIONER_MODE=${PROVISIONER_MODE:-stub} pnpm --filter @openwork-ee/den-api dev:local'", + "dev:den:inference": "sh -lc 'DEN_WEB_PORT=${DEN_WEB_PORT:-3005}; OPENWORK_APP_PORT=${OPENWORK_APP_PORT:-5173}; INFERENCE_PORT=${INFERENCE_PORT:-8791}; DEN_LOCAL_ORIGINS=http://localhost:$DEN_WEB_PORT,http://127.0.0.1:$DEN_WEB_PORT,http://localhost:$OPENWORK_APP_PORT,http://127.0.0.1:$OPENWORK_APP_PORT; OPENWORK_DEV_MODE=1 PORT=$INFERENCE_PORT DATABASE_URL=${DATABASE_URL:-mysql://root:password@127.0.0.1:3306/openwork_den} DEN_DB_ENCRYPTION_KEY=${DEN_DB_ENCRYPTION_KEY:-local-dev-db-encryption-key-please-change-1234567890} CORS_ORIGINS=${CORS_ORIGINS:-$DEN_LOCAL_ORIGINS} INFERENCE_PROXY_BASE_URL=${INFERENCE_PROXY_BASE_URL:-http://localhost:$INFERENCE_PORT} INFERENCE_ADMIN_TOKEN=${INFERENCE_ADMIN_TOKEN:-local-dev-admin-token} INFERENCE_WEBHOOK_SECRET=${INFERENCE_WEBHOOK_SECRET:-local-dev-webhook-secret} pnpm --filter @openwork-ee/inference dev:local'", "dev:den:web": "sh -lc 'DEN_API_PORT=${DEN_API_PORT:-8790}; DEN_WEB_PORT=${DEN_WEB_PORT:-3005}; OPENWORK_DEV_MODE=1 NEXT_PUBLIC_POSTHOG_KEY= NEXT_PUBLIC_POSTHOG_API_KEY= DEN_API_BASE=${DEN_API_BASE:-http://localhost:$DEN_API_PORT} DEN_AUTH_ORIGIN=${DEN_AUTH_ORIGIN:-http://localhost:$DEN_WEB_PORT} DEN_AUTH_FALLBACK_BASE=${DEN_AUTH_FALLBACK_BASE:-http://localhost:$DEN_API_PORT} pnpm --filter @openwork-ee/den-web dev:local'", "email:dev": "pnpm --filter @openwork/email dev", "dev:den-docker": "bash packaging/docker/den-dev-up.sh", diff --git a/packages/types/package.json b/packages/types/package.json index fc0d73ef8..00bdcffd7 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -12,6 +12,11 @@ "types": "./src/den/desktop-app-restrictions.ts", "development": "./src/den/desktop-app-restrictions.ts", "default": "./src/den/desktop-app-restrictions.ts" + }, + "./den/inference": { + "types": "./src/den/inference.ts", + "development": "./src/den/inference.ts", + "default": "./src/den/inference.ts" } }, "files": [ diff --git a/packages/types/src/den/inference.ts b/packages/types/src/den/inference.ts new file mode 100644 index 000000000..d913f32de --- /dev/null +++ b/packages/types/src/den/inference.ts @@ -0,0 +1,51 @@ +export const INFERENCE_WINDOW_TYPES = ["five_hour", "weekly", "monthly"] as const +export type InferenceWindowType = (typeof INFERENCE_WINDOW_TYPES)[number] + +export const INFERENCE_TIERS = ["tier1", "tier2"] as const +export type InferenceTier = (typeof INFERENCE_TIERS)[number] + +export const INFERENCE_TIER_LIMITS: Record> = { + tier1: { + five_hour: 10_000, + weekly: 50_000, + monthly: 200_000, + }, + tier2: { + five_hour: 12_000, + weekly: 60_000, + monthly: 240_000, + }, +} as const + +export const INFERENCE_RESET_STRATEGIES = ["anchored", "activity_based"] as const +export type InferenceResetStrategy = (typeof INFERENCE_RESET_STRATEGIES)[number] + +export const INFERENCE_RESET_STRATEGY_BY_WINDOW_TYPE: Record = { + five_hour: "activity_based", + weekly: "anchored", + monthly: "anchored", +} as const + +export const INFERENCE_WINDOW_DURATIONS_MS: Record = { + five_hour: 5 * 60 * 60 * 1000, + weekly: 7 * 24 * 60 * 60 * 1000, + monthly: 30 * 24 * 60 * 60 * 1000, +} as const + +export const INFERENCE_MODEL_ALIASES = { + model1: { + upstreamModel: "openai/gpt-4o-mini", + displayName: "OpenWork Model 1", + }, + model2: { + upstreamModel: "anthropic/claude-3.5-sonnet", + displayName: "OpenWork Model 2", + }, +} as const + +export type InferenceModelAlias = keyof typeof INFERENCE_MODEL_ALIASES + +export type InferenceOrganizationMetadata = { + enabled: true + tier: InferenceTier +} diff --git a/packages/types/src/index.ts b/packages/types/src/index.ts index c5f30dc83..237fdb63d 100644 --- a/packages/types/src/index.ts +++ b/packages/types/src/index.ts @@ -1 +1,2 @@ export * from "./den/desktop-app-restrictions" +export * from "./den/inference" diff --git a/packages/types/tsup.config.ts b/packages/types/tsup.config.ts index 5f2f60ec3..c7e599907 100644 --- a/packages/types/tsup.config.ts +++ b/packages/types/tsup.config.ts @@ -4,6 +4,7 @@ export default defineConfig({ entry: { index: "src/index.ts", "den/desktop-app-restrictions": "src/den/desktop-app-restrictions.ts", + "den/inference": "src/den/inference.ts", }, tsconfig: "./tsconfig.json", format: ["esm"], diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 135333747..712a26040 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -632,6 +632,43 @@ importers: specifier: ^5.5.4 version: 5.9.3 + ee/apps/inference: + dependencies: + '@hono/node-server': + specifier: ^1.13.8 + version: 1.19.11(hono@4.12.12) + '@openwork-ee/den-db': + specifier: workspace:* + version: link:../../packages/den-db + '@openwork-ee/utils': + specifier: workspace:* + version: link:../../packages/utils + '@openwork/types': + specifier: workspace:* + version: link:../../../packages/types + dotenv: + specifier: ^16.4.5 + version: 16.6.1 + drizzle-orm: + specifier: ^0.45.1 + version: 0.45.1(@opentelemetry/api@1.9.0)(@planetscale/database@1.19.0)(@types/better-sqlite3@7.6.13)(better-sqlite3@11.10.0)(bun-types@1.3.6)(kysely@0.28.15)(mysql2@3.17.4) + hono: + specifier: ^4.7.2 + version: 4.12.12 + zod: + specifier: ^4.3.6 + version: 4.3.6 + devDependencies: + '@types/node': + specifier: ^20.11.30 + version: 20.12.12 + tsx: + specifier: ^4.15.7 + version: 4.21.0 + typescript: + specifier: ^5.5.4 + version: 5.9.3 + ee/apps/landing: dependencies: '@openwork/email': diff --git a/scripts/dev-local.mjs b/scripts/dev-local.mjs index c4f34f661..08bb138ed 100644 --- a/scripts/dev-local.mjs +++ b/scripts/dev-local.mjs @@ -12,6 +12,7 @@ const composeProject = "openwork-den-local" const apiPort = process.env.DEN_API_PORT?.trim() || process.env.DEN_CONTROLLER_PORT?.trim() || "8788" const workerProxyPort = process.env.DEN_WORKER_PROXY_PORT?.trim() || "8789" +const inferencePort = process.env.INFERENCE_PORT?.trim() || "8791" const webPort = process.env.DEN_WEB_PORT?.trim() || "3005" const appPort = process.env.OPENWORK_APP_PORT?.trim() || process.env.PORT?.trim() || "5173" const databaseUrl = process.env.DATABASE_URL?.trim() || "mysql://root:password@127.0.0.1:3306/openwork_den" @@ -149,7 +150,7 @@ for (const signal of ["SIGINT", "SIGTERM"]) { } async function main() { - for (const [name, port] of [["den-web", webPort], ["den-api", apiPort], ["den-worker-proxy", workerProxyPort]]) { + for (const [name, port] of [["den-web", webPort], ["den-api", apiPort], ["den-worker-proxy", workerProxyPort], ["inference", inferencePort]]) { const available = await canListenOnPort(Number(port)) if (!available) { throw new Error(`${name} local port ${port} is already in use. Stop the existing process or rerun with a different port env override.`) @@ -191,6 +192,7 @@ async function main() { "dev:local", "--output-logs=full", "--filter=@openwork-ee/den-api", + "--filter=@openwork-ee/inference", "--filter=@openwork-ee/den-worker-proxy", "--filter=@openwork-ee/den-web", ], @@ -211,6 +213,10 @@ async function main() { DEN_API_PORT: apiPort, DEN_CONTROLLER_PORT: apiPort, DEN_WORKER_PROXY_PORT: workerProxyPort, + INFERENCE_PORT: inferencePort, + INFERENCE_PROXY_BASE_URL: process.env.INFERENCE_PROXY_BASE_URL?.trim() || `http://127.0.0.1:${inferencePort}`, + INFERENCE_ADMIN_TOKEN: process.env.INFERENCE_ADMIN_TOKEN?.trim() || "local-dev-admin-token", + INFERENCE_WEBHOOK_SECRET: process.env.INFERENCE_WEBHOOK_SECRET?.trim() || "local-dev-webhook-secret", DEN_WEB_PORT: webPort, DEN_API_BASE: process.env.DEN_API_BASE?.trim() || `http://127.0.0.1:${apiPort}`, DEN_AUTH_ORIGIN: process.env.DEN_AUTH_ORIGIN?.trim() || `http://localhost:${webPort}`, From 87825b8de7fdee7d15895316010f8801ffdc4c75 Mon Sep 17 00:00:00 2001 From: src-opn Date: Tue, 12 May 2026 18:39:55 -0700 Subject: [PATCH 02/16] chore(den-api): update generated app version --- ee/apps/den-api/src/generated/app-version.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ee/apps/den-api/src/generated/app-version.ts b/ee/apps/den-api/src/generated/app-version.ts index 04fd0ca54..c834b4cb6 100644 --- a/ee/apps/den-api/src/generated/app-version.ts +++ b/ee/apps/den-api/src/generated/app-version.ts @@ -1 +1 @@ -export const BUILD_LATEST_APP_VERSION = "0.11.212" as const +export const BUILD_LATEST_APP_VERSION = "0.13.7" as const From 519f34ac106cb16ebcdc69c0fd0878d0617db186 Mon Sep 17 00:00:00 2001 From: src-opn Date: Tue, 12 May 2026 18:43:01 -0700 Subject: [PATCH 03/16] chore(desktop): add bootstrap config diagnostics --- apps/desktop/electron/main.mjs | 36 ++++++++++++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/apps/desktop/electron/main.mjs b/apps/desktop/electron/main.mjs index 570470ac1..5f108c40a 100644 --- a/apps/desktop/electron/main.mjs +++ b/apps/desktop/electron/main.mjs @@ -878,10 +878,15 @@ function normalizeDesktopBootstrapConfig(input) { } async function getDesktopBootstrapConfig() { + const configPath = desktopBootstrapPath(); try { - const raw = await readFile(desktopBootstrapPath(), "utf8"); + const raw = await readFile(configPath, "utf8"); return normalizeDesktopBootstrapConfig(JSON.parse(raw)); - } catch { + } catch (error) { + console.warn("[desktop-bootstrap] falling back to defaults", { + path: configPath, + error: error instanceof Error ? error.message : String(error), + }); return { baseUrl: DEFAULT_DEN_BASE_URL, apiBaseUrl: null, @@ -890,6 +895,31 @@ async function getDesktopBootstrapConfig() { } } +async function debugDesktopBootstrapConfig() { + const configPath = desktopBootstrapPath(); + const result = { + path: configPath, + home: os.homedir(), + envHome: process.env.HOME ?? null, + envOverride: process.env.OPENWORK_DESKTOP_BOOTSTRAP_PATH ?? null, + exists: existsSync(configPath), + raw: null, + parsed: null, + normalized: null, + error: null, + }; + + try { + result.raw = await readFile(configPath, "utf8"); + result.parsed = JSON.parse(result.raw); + result.normalized = normalizeDesktopBootstrapConfig(result.parsed); + } catch (error) { + result.error = error instanceof Error ? error.message : String(error); + } + + return result; +} + async function setDesktopBootstrapConfig(config) { const normalized = normalizeDesktopBootstrapConfig(config); const outputPath = desktopBootstrapPath(); @@ -1928,6 +1958,8 @@ async function handleDesktopInvoke(event, command, ...args) { } case "getDesktopBootstrapConfig": return getDesktopBootstrapConfig(); + case "debugDesktopBootstrapConfig": + return debugDesktopBootstrapConfig(); case "setDesktopBootstrapConfig": return setDesktopBootstrapConfig(args[0] ?? {}); case "nukeOpenworkAndOpencodeConfigAndExit": { From 34d8a735c2df8d1a7b443c2082874cc51bc97130 Mon Sep 17 00:00:00 2001 From: src-opn Date: Wed, 13 May 2026 08:38:19 -0700 Subject: [PATCH 04/16] chore(inference): log OpenRouter webhook payloads --- ee/apps/inference/src/webhooks.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/ee/apps/inference/src/webhooks.ts b/ee/apps/inference/src/webhooks.ts index abc0a2279..2004ae475 100644 --- a/ee/apps/inference/src/webhooks.ts +++ b/ee/apps/inference/src/webhooks.ts @@ -202,6 +202,7 @@ export function registerWebhookRoutes(app: Hono) { } const body = await c.req.json().catch(() => null) + console.log("[openrouter-webhook] received payload", JSON.stringify(body, null, 2)) const spans = parseOtlpSpans(body) let ingested = 0 let skipped = 0 From 6bb292112562ec4e8057a65988685def70e61c7d Mon Sep 17 00:00:00 2001 From: src-opn Date: Wed, 13 May 2026 08:44:24 -0700 Subject: [PATCH 05/16] chore(inference): log webhook auth diagnostics --- ee/apps/inference/src/webhooks.ts | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/ee/apps/inference/src/webhooks.ts b/ee/apps/inference/src/webhooks.ts index 2004ae475..ec8fe08a4 100644 --- a/ee/apps/inference/src/webhooks.ts +++ b/ee/apps/inference/src/webhooks.ts @@ -136,6 +136,24 @@ function isAuthorized(request: Request) { return [bearer, signature].some((value) => value !== null && constantTimeEquals(value, env.webhookSecret!)) } +function logWebhookDiagnostics(request: Request, outcome: string) { + const auth = request.headers.get("authorization") + const bearer = auth?.toLowerCase().startsWith("bearer ") ? auth.slice(7).trim() : null + const signature = request.headers.get("x-webhook-signature")?.trim() ?? null + console.log("[openrouter-webhook] diagnostics", { + outcome, + webhookSecretPresent: Boolean(env.webhookSecret), + webhookSecretLength: env.webhookSecret?.length ?? 0, + authorizationPresent: Boolean(auth), + authorizationIsBearer: Boolean(bearer), + bearerLength: bearer?.length ?? 0, + xWebhookSignaturePresent: Boolean(signature), + xWebhookSignatureLength: signature?.length ?? 0, + contentType: request.headers.get("content-type"), + userAgent: request.headers.get("user-agent"), + }) +} + async function ingestSpan(span: ParsedSpan) { if (span.externalEventId) { const [event] = await db.select({ id: InferenceUsageLedgerEntryTable.id }).from(InferenceUsageLedgerEntryTable) @@ -192,14 +210,18 @@ async function ingestSpan(span: ParsedSpan) { export function registerWebhookRoutes(app: Hono) { app.post("/webhooks/openrouter", async (c) => { if (c.req.header("x-test-connection")?.toLowerCase() === "true") { + logWebhookDiagnostics(c.req.raw, "test_connection") return c.body(null, 204) } if (!env.webhookSecret) { + logWebhookDiagnostics(c.req.raw, "webhook_disabled") return c.json({ error: "webhook_disabled" }, 503) } if (!isAuthorized(c.req.raw)) { + logWebhookDiagnostics(c.req.raw, "unauthorized") return c.json({ error: "unauthorized" }, 401) } + logWebhookDiagnostics(c.req.raw, "authorized") const body = await c.req.json().catch(() => null) console.log("[openrouter-webhook] received payload", JSON.stringify(body, null, 2)) From 2c098720e1c89b93fe450c598d457a22ac800084 Mon Sep 17 00:00:00 2001 From: src-opn Date: Wed, 13 May 2026 08:51:18 -0700 Subject: [PATCH 06/16] chore(inference): add local dev env defaults --- ee/apps/inference/src/env.ts | 13 ++++++++++++- ee/apps/inference/src/load-env.ts | 16 +++++++++++++++- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/ee/apps/inference/src/env.ts b/ee/apps/inference/src/env.ts index 1b7116120..cf554f3fe 100644 --- a/ee/apps/inference/src/env.ts +++ b/ee/apps/inference/src/env.ts @@ -30,7 +30,18 @@ const EnvSchema = z.object({ } }) -const parsed = EnvSchema.parse(process.env) +const isDevMode = process.env.OPENWORK_DEV_MODE === "1" + +const parsed = EnvSchema.parse({ + ...process.env, + DATABASE_URL: process.env.DATABASE_URL ?? (isDevMode ? "mysql://root:password@127.0.0.1:3306/openwork_den" : undefined), + DB_MODE: process.env.DB_MODE ?? (isDevMode ? "mysql" : undefined), + DEN_DB_ENCRYPTION_KEY: + process.env.DEN_DB_ENCRYPTION_KEY ?? + (isDevMode ? "local-dev-db-encryption-key-please-change-1234567890" : undefined), + INFERENCE_WEBHOOK_SECRET: + process.env.INFERENCE_WEBHOOK_SECRET ?? (isDevMode ? "local-dev-webhook-secret" : undefined), +}) function optionalString(value: string | undefined) { const trimmed = value?.trim() diff --git a/ee/apps/inference/src/load-env.ts b/ee/apps/inference/src/load-env.ts index 50207f346..3e3830565 100644 --- a/ee/apps/inference/src/load-env.ts +++ b/ee/apps/inference/src/load-env.ts @@ -1 +1,15 @@ -import "dotenv/config" +import { existsSync } from "node:fs" +import path from "node:path" +import { fileURLToPath } from "node:url" +import dotenv from "dotenv" + +const srcDir = path.dirname(fileURLToPath(import.meta.url)) +const serviceDir = path.resolve(srcDir, "..") + +for (const filePath of [path.join(serviceDir, ".env.local"), path.join(serviceDir, ".env")]) { + if (existsSync(filePath)) { + dotenv.config({ path: filePath, override: false }) + } +} + +dotenv.config({ override: false }) From 9458dc40d3c48d74bb0cc31d7bbe584fe8b352ad Mon Sep 17 00:00:00 2001 From: src-opn Date: Wed, 13 May 2026 09:06:14 -0700 Subject: [PATCH 07/16] feat(inference): settle usage from internal pricing --- ee/apps/den-api/src/inference.ts | 23 +++--- ee/apps/inference/src/model-catalog.ts | 22 +++++- ee/apps/inference/src/proxy.ts | 7 -- ee/apps/inference/src/webhooks.ts | 96 +++++++++++++++++--------- packages/types/src/den/inference.ts | 18 +++++ 5 files changed, 115 insertions(+), 51 deletions(-) diff --git a/ee/apps/den-api/src/inference.ts b/ee/apps/den-api/src/inference.ts index dfe280b33..d4360de85 100644 --- a/ee/apps/den-api/src/inference.ts +++ b/ee/apps/den-api/src/inference.ts @@ -109,17 +109,20 @@ function buildOpenWorkProviderConfig() { } function buildOpenWorkModelRows(llmProviderId: DenTypeId<"llmProvider">, now: Date) { - return Object.entries(INFERENCE_MODEL_ALIASES).map(([alias, model]) => ({ - id: createDenTypeId("llmProviderModel"), - llmProviderId, - modelId: `${OPENWORK_PROVIDER_ID}/${alias}`, - name: model.displayName, - modelConfig: { - id: `${OPENWORK_PROVIDER_ID}/${alias}`, + return Object.entries(INFERENCE_MODEL_ALIASES) + .filter(([, model]) => model.enabled) + .map(([alias, model]) => ({ + id: createDenTypeId("llmProviderModel"), + llmProviderId, + modelId: `${OPENWORK_PROVIDER_ID}/${alias}`, name: model.displayName, - }, - createdAt: now, - })) + modelConfig: { + id: `${OPENWORK_PROVIDER_ID}/${alias}`, + name: model.displayName, + limit: model.limit, + }, + createdAt: now, + })) } async function revokeMemberInferenceKeys(memberId: MemberId) { diff --git a/ee/apps/inference/src/model-catalog.ts b/ee/apps/inference/src/model-catalog.ts index 5f4b465ce..f4821e95e 100644 --- a/ee/apps/inference/src/model-catalog.ts +++ b/ee/apps/inference/src/model-catalog.ts @@ -6,21 +6,39 @@ export type ModelCatalogEntry = { alias: string upstreamModel: string displayName: string + enabled: boolean + limit: { + context: number + output: number + } + usageUnitsPerMillionTokens: { + input: number + output: number + } } const models: ModelCatalogEntry[] = Object.entries(INFERENCE_MODEL_ALIASES).map(([alias, model]) => ({ alias, upstreamModel: model.upstreamModel, displayName: model.displayName, + enabled: model.enabled, + limit: model.limit, + usageUnitsPerMillionTokens: model.usageUnitsPerMillionTokens, })) +const enabledModels = models.filter((model) => model.enabled) + export function resolveModelAlias(alias: string) { const normalizedAlias = alias.startsWith(`${OPENWORK_PROVIDER_ID}/`) ? alias.slice(OPENWORK_PROVIDER_ID.length + 1) : alias - return models.find((model) => model.alias === normalizedAlias) ?? null + return enabledModels.find((model) => model.alias === normalizedAlias) ?? null +} + +export function resolveModelByUpstreamModel(upstreamModel: string) { + return enabledModels.find((model) => model.upstreamModel === upstreamModel) ?? null } export function listModelCatalog() { - return models + return enabledModels } diff --git a/ee/apps/inference/src/proxy.ts b/ee/apps/inference/src/proxy.ts index 43fb9c5e7..61af02550 100644 --- a/ee/apps/inference/src/proxy.ts +++ b/ee/apps/inference/src/proxy.ts @@ -1,6 +1,5 @@ import { createHash } from "node:crypto" import type { Hono } from "hono" -import type { DenTypeId } from "@openwork-ee/utils/typeid" import { env } from "./env.js" import { findActiveInferenceKey, getOpenRouterProviderKey } from "./keys.js" import { ensureUsableBuckets } from "./limits.js" @@ -102,7 +101,6 @@ async function prepareBody(request: Request, input: { orgMembershipId: string inferenceKeyId: string openworkRequestId: string - bucketIds: Partial>> }) { if (!isJsonRequest(request)) { return { body: request.body, modelAlias: "unknown", upstreamModel: null as string | null } @@ -128,20 +126,16 @@ async function prepareBody(request: Request, input: { return { error: openAiError(404, "model_not_found", `Unknown OpenWork model alias: ${body.model}`) } } - const trace = typeof body.trace === "object" && body.trace !== null ? body.trace as JsonObject : {} body.model = model.upstreamModel body.user = input.orgMembershipId body.session_id = typeof body.session_id === "string" ? body.session_id : input.openworkRequestId body.trace = { - ...trace, trace_id: input.openworkRequestId, trace_name: "OpenWork Inference", generation_name: model.alias, - organization_id: input.organizationId, org_membership_id: input.orgMembershipId, inference_key_id: input.inferenceKeyId, openwork_request_id: input.openworkRequestId, - ...Object.fromEntries(Object.entries(input.bucketIds).map(([windowType, id]) => [`bucket_${windowType}_id`, id])), } return { @@ -192,7 +186,6 @@ export function registerProxyRoutes(app: Hono) { orgMembershipId: inferenceKey.org_membership_id, inferenceKeyId: inferenceKey.id, openworkRequestId, - bucketIds: limits.bucketIds, }) if ("error" in prepared) { logProxyError("Invalid inference proxy request", { diff --git a/ee/apps/inference/src/webhooks.ts b/ee/apps/inference/src/webhooks.ts index ec8fe08a4..efd56d598 100644 --- a/ee/apps/inference/src/webhooks.ts +++ b/ee/apps/inference/src/webhooks.ts @@ -1,23 +1,26 @@ import { and, eq, sql } from "drizzle-orm" import type { Hono } from "hono" -import { InferenceUsageLedgerBucketChargeTable, InferenceUsageLedgerEntryTable, InferenceOrgUsageBucketTable } from "@openwork-ee/den-db" +import { InferenceKeyTable, InferenceUsageLedgerBucketChargeTable, InferenceUsageLedgerEntryTable, InferenceOrgUsageBucketTable } from "@openwork-ee/den-db" import { createDenTypeId, normalizeDenTypeId } from "@openwork-ee/utils/typeid" import type { DenTypeId } from "@openwork-ee/utils/typeid" import { db } from "./db.js" import { env } from "./env.js" import { constantTimeEquals } from "./keys.js" +import { ensureUsableBuckets } from "./limits.js" +import { resolveModelByUpstreamModel } from "./model-catalog.js" type JsonRecord = Record type ParsedSpan = { - organizationId: string orgMembershipId: string - inferenceKeyId: string | null + inferenceKeyId: string openworkRequestId: string externalEventId: string | null costAmount: number occurredAt: Date - bucketIds: Record> + upstreamModel: string + inputTokens: number + outputTokens: number } function isRecord(value: unknown): value is JsonRecord { @@ -58,10 +61,21 @@ function stringAttr(attrs: JsonRecord, keys: string[]) { return null } -function costToCredits(value: unknown) { - const numberValue = typeof value === "number" ? value : typeof value === "string" ? Number(value) : NaN - if (!Number.isFinite(numberValue) || numberValue <= 0) return null - return Math.max(1, Math.round(numberValue * env.creditsPerDollar)) +function numberAttr(attrs: JsonRecord, keys: string[]) { + for (const key of keys) { + const value = attrs[key] + const numberValue = typeof value === "number" ? value : typeof value === "string" ? Number(value) : NaN + if (Number.isFinite(numberValue)) return numberValue + } + return null +} + +function usageUnitsForModel(input: { upstreamModel: string; inputTokens: number; outputTokens: number }) { + const model = resolveModelByUpstreamModel(input.upstreamModel) + if (!model) return null + const inputUnits = input.inputTokens * model.usageUnitsPerMillionTokens.input + const outputUnits = input.outputTokens * model.usageUnitsPerMillionTokens.output + return Math.max(1, Math.ceil((inputUnits + outputUnits) / 1_000_000)) } function timeFromSpan(span: JsonRecord) { @@ -73,39 +87,33 @@ function timeFromSpan(span: JsonRecord) { function parseSpan(span: JsonRecord, resourceAttrs: JsonRecord, scopeAttrs: JsonRecord): ParsedSpan | null { const attrs = { ...resourceAttrs, ...scopeAttrs, ...attributesToRecord(span.attributes) } - const organizationId = stringAttr(attrs, ["trace.metadata.organization_id", "trace.organization_id", "metadata.organization_id", "organization_id"]) const orgMembershipId = stringAttr(attrs, ["trace.metadata.org_membership_id", "trace.org_membership_id", "metadata.org_membership_id", "org_membership_id"]) + const inferenceKeyId = stringAttr(attrs, ["trace.metadata.inference_key_id", "trace.inference_key_id", "metadata.inference_key_id", "inference_key_id"]) const openworkRequestId = stringAttr(attrs, ["trace.metadata.openwork_request_id", "trace.openwork_request_id", "metadata.openwork_request_id", "openwork_request_id", "trace_id"]) ?? (typeof span.traceId === "string" ? span.traceId : null) - const cost = costToCredits( - attrs["gen_ai.usage.cost"] ?? attrs["openrouter.cost"] ?? attrs.cost ?? attrs["cost_usd"] ?? attrs["usage.cost"], - ) - if (!organizationId || !orgMembershipId || !openworkRequestId || cost === null) { + const upstreamModel = stringAttr(attrs, ["gen_ai.request.model", "gen_ai.response.model"]) + const inputTokens = numberAttr(attrs, ["gen_ai.usage.input_tokens"]) + const outputTokens = numberAttr(attrs, ["gen_ai.usage.output_tokens"]) + if (!orgMembershipId || !inferenceKeyId || !openworkRequestId || !upstreamModel || inputTokens === null || outputTokens === null) { return null } - const bucketIds: Record> = {} - for (const [key, value] of Object.entries(attrs)) { - const match = /^trace\.metadata\.bucket_(.+)_id$|^trace\.bucket_(.+)_id$|^metadata\.bucket_(.+)_id$|^bucket_(.+)_id$/.exec(key) - const windowType = match?.[1] ?? match?.[2] ?? match?.[3] ?? match?.[4] - if (windowType && typeof value === "string") { - try { - bucketIds[windowType] = normalizeDenTypeId("inferenceOrgUsageBucket", value) - } catch { - continue - } - } + const costAmount = usageUnitsForModel({ upstreamModel, inputTokens, outputTokens }) + if (costAmount === null) { + console.warn("[openrouter-webhook] skipped span for unknown priced model", { upstreamModel }) + return null } return { - organizationId, orgMembershipId, - inferenceKeyId: stringAttr(attrs, ["trace.metadata.inference_key_id", "trace.inference_key_id", "metadata.inference_key_id", "inference_key_id"]), + inferenceKeyId, openworkRequestId, externalEventId: stringAttr(attrs, ["event_id", "id", "span_id"]) ?? (typeof span.spanId === "string" ? span.spanId : null), - costAmount: cost, + costAmount, occurredAt: timeFromSpan(span), - bucketIds, + upstreamModel, + inputTokens, + outputTokens, } } @@ -155,6 +163,30 @@ function logWebhookDiagnostics(request: Request, outcome: string) { } async function ingestSpan(span: ParsedSpan) { + const [inferenceKey] = await db.select().from(InferenceKeyTable) + .where(eq(InferenceKeyTable.id, normalizeDenTypeId("inferenceKey", span.inferenceKeyId))) + .limit(1) + if (!inferenceKey || inferenceKey.status !== "active") { + console.warn("[openrouter-webhook] skipped span for missing or inactive inference key", { inferenceKeyId: span.inferenceKeyId }) + return + } + if (inferenceKey.org_membership_id !== normalizeDenTypeId("member", span.orgMembershipId)) { + console.warn("[openrouter-webhook] skipped span for mismatched org membership", { + inferenceKeyId: span.inferenceKeyId, + spanOrgMembershipId: span.orgMembershipId, + keyOrgMembershipId: inferenceKey.org_membership_id, + }) + return + } + + const limits = await ensureUsableBuckets(inferenceKey.organization_id, span.occurredAt) + if (!limits.ok) { + console.warn("[openrouter-webhook] settling usage after limit was exceeded", { + inferenceKeyId: span.inferenceKeyId, + limitedBy: limits.limitedBy, + }) + } + if (span.externalEventId) { const [event] = await db.select({ id: InferenceUsageLedgerEntryTable.id }).from(InferenceUsageLedgerEntryTable) .where(eq(InferenceUsageLedgerEntryTable.external_event_id, span.externalEventId)) @@ -168,9 +200,9 @@ async function ingestSpan(span: ParsedSpan) { const entryId = createDenTypeId("inferenceUsageLedgerEntry") await db.insert(InferenceUsageLedgerEntryTable).values({ id: entryId, - organization_id: normalizeDenTypeId("organization", span.organizationId), - org_membership_id: normalizeDenTypeId("member", span.orgMembershipId), - inference_key_id: span.inferenceKeyId ? normalizeDenTypeId("inferenceKey", span.inferenceKeyId) : null, + organization_id: inferenceKey.organization_id, + org_membership_id: inferenceKey.org_membership_id, + inference_key_id: inferenceKey.id, external_job_id: span.openworkRequestId, external_event_id: span.externalEventId, cost_amount: span.costAmount, @@ -182,7 +214,7 @@ async function ingestSpan(span: ParsedSpan) { if (!entry) return await db.transaction(async (tx) => { - for (const bucketId of Object.values(span.bucketIds)) { + for (const bucketId of Object.values(limits.bucketIds).filter((id): id is DenTypeId<"inferenceOrgUsageBucket"> => Boolean(id))) { const [charge] = await tx.select({ id: InferenceUsageLedgerBucketChargeTable.id }) .from(InferenceUsageLedgerBucketChargeTable) .where(and( diff --git a/packages/types/src/den/inference.ts b/packages/types/src/den/inference.ts index d913f32de..e4749ea55 100644 --- a/packages/types/src/den/inference.ts +++ b/packages/types/src/den/inference.ts @@ -36,10 +36,28 @@ export const INFERENCE_MODEL_ALIASES = { model1: { upstreamModel: "openai/gpt-4o-mini", displayName: "OpenWork Model 1", + enabled: true, + limit: { + context: 200_000, + output: 65_536, + }, + usageUnitsPerMillionTokens: { + input: 150_000, + output: 600_000, + }, }, model2: { upstreamModel: "anthropic/claude-3.5-sonnet", displayName: "OpenWork Model 2", + enabled: true, + limit: { + context: 200_000, + output: 65_536, + }, + usageUnitsPerMillionTokens: { + input: 3_000_000, + output: 15_000_000, + }, }, } as const From 9eb715d4e99d1f65fe73a8c7359b83b89c8888f4 Mon Sep 17 00:00:00 2001 From: src-opn Date: Wed, 13 May 2026 10:18:04 -0700 Subject: [PATCH 08/16] chore(inference): remove temporary webhook debug logs --- ee/apps/inference/src/webhooks.ts | 23 ----------------------- 1 file changed, 23 deletions(-) diff --git a/ee/apps/inference/src/webhooks.ts b/ee/apps/inference/src/webhooks.ts index efd56d598..47f43412c 100644 --- a/ee/apps/inference/src/webhooks.ts +++ b/ee/apps/inference/src/webhooks.ts @@ -144,24 +144,6 @@ function isAuthorized(request: Request) { return [bearer, signature].some((value) => value !== null && constantTimeEquals(value, env.webhookSecret!)) } -function logWebhookDiagnostics(request: Request, outcome: string) { - const auth = request.headers.get("authorization") - const bearer = auth?.toLowerCase().startsWith("bearer ") ? auth.slice(7).trim() : null - const signature = request.headers.get("x-webhook-signature")?.trim() ?? null - console.log("[openrouter-webhook] diagnostics", { - outcome, - webhookSecretPresent: Boolean(env.webhookSecret), - webhookSecretLength: env.webhookSecret?.length ?? 0, - authorizationPresent: Boolean(auth), - authorizationIsBearer: Boolean(bearer), - bearerLength: bearer?.length ?? 0, - xWebhookSignaturePresent: Boolean(signature), - xWebhookSignatureLength: signature?.length ?? 0, - contentType: request.headers.get("content-type"), - userAgent: request.headers.get("user-agent"), - }) -} - async function ingestSpan(span: ParsedSpan) { const [inferenceKey] = await db.select().from(InferenceKeyTable) .where(eq(InferenceKeyTable.id, normalizeDenTypeId("inferenceKey", span.inferenceKeyId))) @@ -242,21 +224,16 @@ async function ingestSpan(span: ParsedSpan) { export function registerWebhookRoutes(app: Hono) { app.post("/webhooks/openrouter", async (c) => { if (c.req.header("x-test-connection")?.toLowerCase() === "true") { - logWebhookDiagnostics(c.req.raw, "test_connection") return c.body(null, 204) } if (!env.webhookSecret) { - logWebhookDiagnostics(c.req.raw, "webhook_disabled") return c.json({ error: "webhook_disabled" }, 503) } if (!isAuthorized(c.req.raw)) { - logWebhookDiagnostics(c.req.raw, "unauthorized") return c.json({ error: "unauthorized" }, 401) } - logWebhookDiagnostics(c.req.raw, "authorized") const body = await c.req.json().catch(() => null) - console.log("[openrouter-webhook] received payload", JSON.stringify(body, null, 2)) const spans = parseOtlpSpans(body) let ingested = 0 let skipped = 0 From f72ad735bee7844ec82d6459c68026015bffd9a6 Mon Sep 17 00:00:00 2001 From: src-opn Date: Wed, 13 May 2026 13:58:55 -0700 Subject: [PATCH 09/16] feat(inference): expose OpenWork model catalog --- ee/apps/inference/src/app.ts | 63 +- ee/apps/inference/src/models.json | 2243 +++++++++++++++++++++++++++ packages/types/src/den/inference.ts | 79 +- 3 files changed, 2342 insertions(+), 43 deletions(-) create mode 100644 ee/apps/inference/src/models.json diff --git a/ee/apps/inference/src/app.ts b/ee/apps/inference/src/app.ts index dbca4ea22..d80caf35f 100644 --- a/ee/apps/inference/src/app.ts +++ b/ee/apps/inference/src/app.ts @@ -1,37 +1,50 @@ -import "./load-env.js" -import { cors } from "hono/cors" -import { Hono } from "hono" -import { logger } from "hono/logger" -import { z } from "zod" -import { env } from "./env.js" -import { registerProxyRoutes } from "./proxy.js" -import { registerWebhookRoutes } from "./webhooks.js" +import "./load-env.js"; +import { cors } from "hono/cors"; +import { Hono } from "hono"; +import { logger } from "hono/logger"; +import { z } from "zod"; +import { env } from "./env.js"; +import { registerProxyRoutes } from "./proxy.js"; +import { registerWebhookRoutes } from "./webhooks.js"; +import models from "./models.json"; -const app = new Hono() +const app = new Hono(); -app.use("*", logger()) +app.use("*", logger()); if (env.corsOrigins.length > 0) { - app.use("*", cors({ - origin: env.corsOrigins, - credentials: true, - allowHeaders: ["Content-Type", "Authorization", "X-Api-Key", "X-Webhook-Signature", "X-Test-Connection"], - allowMethods: ["GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS"], - maxAge: 600, - })) + app.use( + "*", + cors({ + origin: env.corsOrigins, + credentials: true, + allowHeaders: [ + "Content-Type", + "Authorization", + "X-Api-Key", + "X-Webhook-Signature", + "X-Test-Connection", + ], + allowMethods: ["GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS"], + maxAge: 600, + }), + ); } -app.get("/health", (c) => c.json({ ok: true, service: "inference" })) +app.get("/health", (c) => c.json({ ok: true, service: "inference" })); +app.get("/models/api.json", (c) => { + return c.json(models); +}); -registerProxyRoutes(app) -registerWebhookRoutes(app) +registerProxyRoutes(app); +registerWebhookRoutes(app); app.onError((error, c) => { if (error instanceof z.ZodError) { - return c.json({ error: "invalid_request", issues: error.issues }, 400) + return c.json({ error: "invalid_request", issues: error.issues }, 400); } - console.error(error) - return c.json({ error: "internal_server_error" }, 500) -}) + console.error(error); + return c.json({ error: "internal_server_error" }, 500); +}); -export default app +export default app; diff --git a/ee/apps/inference/src/models.json b/ee/apps/inference/src/models.json new file mode 100644 index 000000000..c3333ae67 --- /dev/null +++ b/ee/apps/inference/src/models.json @@ -0,0 +1,2243 @@ +{ + "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, + "limit": { + "context": 400000, + "input": 272000, + "output": 128000 + }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125 + } + }, + "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, + "limit": { + "context": 128000, + "output": 4096 + }, + "cost": { + "input": 5, + "output": 15 + } + }, + "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, + "limit": { + "context": 128000, + "output": 65536 + }, + "cost": { + "input": 1.1, + "output": 4.4, + "cache_read": 0.55 + } + }, + "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, + "limit": { + "context": 400000, + "input": 272000, + "output": 128000 + }, + "cost": { + "input": 21, + "output": 168 + } + }, + "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, + "limit": { + "context": 8191, + "output": 3072 + }, + "cost": { + "input": 0.13, + "output": 0 + } + }, + "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, + "limit": { + "context": 128000, + "output": 16384 + }, + "cost": { + "input": 1.75, + "output": 14, + "cache_read": 0.175 + } + }, + "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, + "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" + } + } + } + } + }, + "cost": { + "input": 5, + "output": 30, + "cache_read": 0.5, + "tiers": [ + { + "input": 10, + "output": 45, + "cache_read": 1, + "tier": { + "type": "context", + "size": 272000 + } + } + ], + "context_over_200k": { + "input": 10, + "output": 45, + "cache_read": 1 + } + } + }, + "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, + "limit": { + "context": 400000, + "input": 272000, + "output": 128000 + }, + "cost": { + "input": 0.25, + "output": 2, + "cache_read": 0.025 + } + }, + "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, + "limit": { + "context": 400000, + "input": 272000, + "output": 128000 + }, + "cost": { + "input": 0.05, + "output": 0.4, + "cache_read": 0.005 + } + }, + "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, + "limit": { + "context": 400000, + "input": 272000, + "output": 128000 + }, + "cost": { + "input": 1.75, + "output": 14, + "cache_read": 0.175 + } + }, + "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, + "limit": { + "context": 128000, + "output": 4096 + }, + "cost": { + "input": 10, + "output": 30 + } + }, + "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, + "limit": { + "context": 8192, + "output": 1536 + }, + "cost": { + "input": 0.1, + "output": 0 + } + }, + "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, + "limit": { + "context": 400000, + "input": 272000, + "output": 128000 + }, + "cost": { + "input": 1.75, + "output": 14, + "cache_read": 0.175 + } + }, + "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, + "limit": { + "context": 200000, + "output": 100000 + }, + "cost": { + "input": 20, + "output": 80 + } + }, + "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, + "limit": { + "context": 128000, + "output": 16384 + }, + "cost": { + "input": 0.15, + "output": 0.6, + "cache_read": 0.08 + } + }, + "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, + "limit": { + "context": 200000, + "output": 100000 + }, + "cost": { + "input": 2, + "output": 8, + "cache_read": 0.5 + } + }, + "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, + "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" + } + } + } + } + }, + "cost": { + "input": 0.75, + "output": 4.5, + "cache_read": 0.075 + } + }, + "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, + "limit": { + "context": 200000, + "output": 100000 + }, + "cost": { + "input": 1.1, + "output": 4.4, + "cache_read": 0.28 + } + }, + "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, + "limit": { + "context": 400000, + "input": 272000, + "output": 128000 + }, + "cost": { + "input": 0.2, + "output": 1.25, + "cache_read": 0.02 + } + }, + "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, + "limit": { + "context": 400000, + "input": 272000, + "output": 128000 + }, + "cost": { + "input": 1.75, + "output": 14, + "cache_read": 0.175 + } + }, + "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, + "limit": { + "context": 128000, + "output": 16384 + }, + "cost": { + "input": 1.75, + "output": 14, + "cache_read": 0.175 + } + }, + "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, + "limit": { + "context": 400000, + "input": 272000, + "output": 128000 + }, + "cost": { + "input": 0.25, + "output": 2, + "cache_read": 0.025 + } + }, + "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, + "limit": { + "context": 128000, + "output": 32768 + }, + "cost": { + "input": 15, + "output": 60, + "cache_read": 7.5 + } + }, + "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, + "limit": { + "context": 128000, + "output": 16384 + }, + "cost": { + "input": 2.5, + "output": 10, + "cache_read": 1.25 + } + }, + "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, + "limit": { + "context": 400000, + "input": 272000, + "output": 128000 + }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.13 + } + }, + "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, + "limit": { + "context": 200000, + "output": 100000 + }, + "cost": { + "input": 15, + "output": 60, + "cache_read": 7.5 + } + }, + "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, + "limit": { + "context": 1050000, + "input": 922000, + "output": 128000 + }, + "cost": { + "input": 30, + "output": 180, + "tiers": [ + { + "input": 60, + "output": 270, + "tier": { + "type": "context", + "size": 272000 + } + } + ], + "context_over_200k": { + "input": 60, + "output": 270 + } + } + }, + "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, + "limit": { + "context": 16385, + "output": 4096 + }, + "cost": { + "input": 0.5, + "output": 1.5, + "cache_read": 1.25 + } + }, + "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, + "limit": { + "context": 200000, + "output": 100000 + }, + "cost": { + "input": 10, + "output": 40, + "cache_read": 2.5 + } + }, + "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, + "limit": { + "context": 200000, + "output": 100000 + }, + "cost": { + "input": 1.1, + "output": 4.4, + "cache_read": 0.55 + } + }, + "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, + "limit": { + "context": 8191, + "output": 1536 + }, + "cost": { + "input": 0.02, + "output": 0 + } + }, + "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, + "limit": { + "context": 200000, + "output": 100000 + }, + "cost": { + "input": 150, + "output": 600 + } + }, + "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, + "limit": { + "context": 8192, + "output": 8192 + }, + "cost": { + "input": 30, + "output": 60 + } + }, + "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, + "limit": { + "context": 400000, + "input": 272000, + "output": 128000 + }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125 + } + }, + "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, + "limit": { + "context": 1050000, + "input": 922000, + "output": 128000 + }, + "experimental": { + "modes": { + "fast": { + "cost": { + "input": 5, + "output": 30, + "cache_read": 0.5 + }, + "provider": { + "body": { + "service_tier": "priority" + } + } + } + } + }, + "cost": { + "input": 2.5, + "output": 15, + "cache_read": 0.25, + "tiers": [ + { + "input": 5, + "output": 22.5, + "cache_read": 0.5, + "tier": { + "type": "context", + "size": 272000 + } + } + ], + "context_over_200k": { + "input": 5, + "output": 22.5, + "cache_read": 0.5 + } + } + }, + "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, + "limit": { + "context": 128000, + "output": 16384 + }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125 + } + }, + "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, + "limit": { + "context": 128000, + "input": 100000, + "output": 32000 + }, + "cost": { + "input": 1.75, + "output": 14, + "cache_read": 0.175 + } + }, + "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, + "limit": { + "context": 1047576, + "output": 32768 + }, + "cost": { + "input": 0.1, + "output": 0.4, + "cache_read": 0.03 + } + }, + "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, + "limit": { + "context": 200000, + "output": 100000 + }, + "cost": { + "input": 2, + "output": 8, + "cache_read": 0.5 + } + }, + "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, + "limit": { + "context": 400000, + "input": 272000, + "output": 272000 + }, + "cost": { + "input": 15, + "output": 120 + } + }, + "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, + "limit": { + "context": 128000, + "output": 16384 + }, + "cost": { + "input": 2.5, + "output": 10, + "cache_read": 1.25 + } + }, + "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, + "limit": { + "context": 400000, + "input": 272000, + "output": 128000 + }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125 + } + }, + "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, + "limit": { + "context": 400000, + "input": 272000, + "output": 128000 + }, + "cost": { + "input": 1.25, + "output": 10 + } + }, + "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, + "limit": { + "context": 1050000, + "input": 922000, + "output": 128000 + }, + "cost": { + "input": 30, + "output": 180, + "tiers": [ + { + "input": 60, + "output": 270, + "tier": { + "type": "context", + "size": 272000 + } + } + ], + "context_over_200k": { + "input": 60, + "output": 270 + } + } + }, + "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, + "limit": { + "context": 1047576, + "output": 32768 + }, + "cost": { + "input": 2, + "output": 8, + "cache_read": 0.5 + } + }, + "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, + "limit": { + "context": 1047576, + "output": 32768 + }, + "cost": { + "input": 0.4, + "output": 1.6, + "cache_read": 0.1 + } + }, + "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, + "limit": { + "context": 400000, + "input": 272000, + "output": 128000 + }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125 + } + }, + "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, + "limit": { + "context": 128000, + "output": 16384 + }, + "cost": { + "input": 2.5, + "output": 10, + "cache_read": 1.25 + } + } + } + }, + "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, + "limit": { + "context": 200000, + "output": 4096 + }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 0.3 + } + }, + "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, + "limit": { + "context": 200000, + "output": 64000 + }, + "cost": { + "input": 1, + "output": 5, + "cache_read": 0.1, + "cache_write": 1.25 + } + }, + "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, + "limit": { + "context": 200000, + "output": 64000 + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } + }, + "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, + "limit": { + "context": 200000, + "output": 4096 + }, + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + "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, + "limit": { + "context": 200000, + "output": 8192 + }, + "cost": { + "input": 0.8, + "output": 4, + "cache_read": 0.08, + "cache_write": 1 + } + }, + "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, + "limit": { + "context": 200000, + "output": 8192 + }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { + "context": 1000000, + "output": 64000 + }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { + "context": 200000, + "output": 32000 + }, + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + "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, + "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" + } + } + } + } + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } + }, + "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, + "limit": { + "context": 200000, + "output": 4096 + }, + "cost": { + "input": 0.25, + "output": 1.25, + "cache_read": 0.03, + "cache_write": 0.3 + } + }, + "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, + "limit": { + "context": 200000, + "output": 64000 + }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { + "context": 200000, + "output": 8192 + }, + "cost": { + "input": 0.8, + "output": 4, + "cache_read": 0.08, + "cache_write": 1 + } + }, + "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, + "limit": { + "context": 200000, + "output": 32000 + }, + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + "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, + "limit": { + "context": 200000, + "output": 64000 + }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { + "context": 200000, + "output": 8192 + }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { + "context": 200000, + "output": 64000 + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } + }, + "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, + "limit": { + "context": 200000, + "output": 32000 + }, + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + "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, + "limit": { + "context": 200000, + "output": 64000 + }, + "cost": { + "input": 1, + "output": 5, + "cache_read": 0.1, + "cache_write": 1.25 + } + }, + "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, + "limit": { + "context": 200000, + "output": 64000 + }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "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" + } + } + } + } + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } + }, + "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, + "limit": { + "context": 200000, + "output": 64000 + }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { + "context": 200000, + "output": 64000 + }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { + "context": 200000, + "output": 32000 + }, + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + } + } + }, + "openwork": { + "id": "openwork", + "env": ["OPENWORK_API_KEY"], + "npm": "@openrouter/ai-sdk-provider", + "name": "OpenWork Clarity", + "api": "http://127.0.0.1:8791/api/v1", + "models": { + "olive": { + "id": "olive", + "name": "Olive 40 Mini", + "family": "olive", + "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, + "limit": { + "context": 128000, + "output": 16384 + } + }, + "sarah": { + "id": "sarah", + "name": "Sarah 4.7", + "family": "sarah", + "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, + "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" + } + } + } + } + } + } + } + } +} diff --git a/packages/types/src/den/inference.ts b/packages/types/src/den/inference.ts index e4749ea55..f67ee6097 100644 --- a/packages/types/src/den/inference.ts +++ b/packages/types/src/den/inference.ts @@ -1,10 +1,17 @@ -export const INFERENCE_WINDOW_TYPES = ["five_hour", "weekly", "monthly"] as const -export type InferenceWindowType = (typeof INFERENCE_WINDOW_TYPES)[number] +export const INFERENCE_WINDOW_TYPES = [ + "five_hour", + "weekly", + "monthly", +] as const; +export type InferenceWindowType = (typeof INFERENCE_WINDOW_TYPES)[number]; -export const INFERENCE_TIERS = ["tier1", "tier2"] as const -export type InferenceTier = (typeof INFERENCE_TIERS)[number] +export const INFERENCE_TIERS = ["tier1", "tier2"] as const; +export type InferenceTier = (typeof INFERENCE_TIERS)[number]; -export const INFERENCE_TIER_LIMITS: Record> = { +export const INFERENCE_TIER_LIMITS: Record< + InferenceTier, + Record +> = { tier1: { five_hour: 10_000, weekly: 50_000, @@ -15,22 +22,32 @@ export const INFERENCE_TIER_LIMITS: Record = { +export const INFERENCE_RESET_STRATEGY_BY_WINDOW_TYPE: Record< + InferenceWindowType, + InferenceResetStrategy +> = { five_hour: "activity_based", weekly: "anchored", monthly: "anchored", -} as const +} as const; -export const INFERENCE_WINDOW_DURATIONS_MS: Record = { +export const INFERENCE_WINDOW_DURATIONS_MS: Record< + InferenceWindowType, + number +> = { five_hour: 5 * 60 * 60 * 1000, weekly: 7 * 24 * 60 * 60 * 1000, monthly: 30 * 24 * 60 * 60 * 1000, -} as const +} as const; export const INFERENCE_MODEL_ALIASES = { model1: { @@ -47,7 +64,7 @@ export const INFERENCE_MODEL_ALIASES = { }, }, model2: { - upstreamModel: "anthropic/claude-3.5-sonnet", + upstreamModel: "anthropic/claude-opus-4-7", displayName: "OpenWork Model 2", enabled: true, limit: { @@ -59,11 +76,37 @@ export const INFERENCE_MODEL_ALIASES = { output: 15_000_000, }, }, -} as const + olive: { + upstreamModel: "openai/gpt-4o-mini", + displayName: "OpenWork OliveInf", + enabled: true, + limit: { + context: 200_000, + output: 65_536, + }, + usageUnitsPerMillionTokens: { + input: 150_000, + output: 600_000, + }, + }, + sarah: { + upstreamModel: "anthropic/claude-opus-4-7", + displayName: "OpenWork Sarah", + enabled: true, + limit: { + context: 200_000, + output: 65_536, + }, + usageUnitsPerMillionTokens: { + input: 3_000_000, + output: 15_000_000, + }, + }, +} as const; -export type InferenceModelAlias = keyof typeof INFERENCE_MODEL_ALIASES +export type InferenceModelAlias = keyof typeof INFERENCE_MODEL_ALIASES; export type InferenceOrganizationMetadata = { - enabled: true - tier: InferenceTier -} + enabled: true; + tier: InferenceTier; +}; From 74f7159a719398bff698a736d6fd7fe1630145ad Mon Sep 17 00:00:00 2001 From: src-opn Date: Wed, 13 May 2026 17:47:22 -0700 Subject: [PATCH 10/16] feat(inference): generate public model catalog --- .gitignore | 1 + ee/apps/inference/package.json | 7 +- ee/apps/inference/public/models/.gitkeep | 0 ee/apps/inference/scripts/build-models.mjs | 22 + ee/apps/inference/src/app.ts | 20 +- ee/apps/inference/src/env.ts | 132 +- ee/apps/inference/src/models.json | 2243 - ee/apps/inference/src/models/base.json | 78305 ++++++++++++++++ .../inference/src/models/openwork-dev.json | 74 + .../inference/src/models/openwork-prod.json | 74 + packages/types/src/den/inference.ts | 38 +- 11 files changed, 78585 insertions(+), 2331 deletions(-) create mode 100644 ee/apps/inference/public/models/.gitkeep create mode 100644 ee/apps/inference/scripts/build-models.mjs delete mode 100644 ee/apps/inference/src/models.json create mode 100644 ee/apps/inference/src/models/base.json create mode 100644 ee/apps/inference/src/models/openwork-dev.json create mode 100644 ee/apps/inference/src/models/openwork-prod.json diff --git a/.gitignore b/.gitignore index 413dceaad..11395acbd 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,7 @@ packages/*/dist/ apps/*/dist/ ee/apps/*/dist/ ee/packages/*/dist/ +ee/apps/inference/public/models/api.json tmp/ # Local git worktrees diff --git a/ee/apps/inference/package.json b/ee/apps/inference/package.json index d5f496a0b..c19aa4e6c 100644 --- a/ee/apps/inference/package.json +++ b/ee/apps/inference/package.json @@ -3,9 +3,10 @@ "private": true, "type": "module", "scripts": { - "dev": "tsx watch src/server.ts", - "dev:local": "sh -lc 'OPENWORK_DEV_MODE=1 PORT=${INFERENCE_PORT:-8791} tsx watch src/server.ts'", - "build": "tsc -p tsconfig.json", + "models:build": "node scripts/build-models.mjs", + "dev": "pnpm run models:build && tsx watch src/server.ts", + "dev:local": "sh -lc 'OPENWORK_DEV_MODE=1 pnpm run models:build && OPENWORK_DEV_MODE=1 PORT=${INFERENCE_PORT:-8791} tsx watch src/server.ts'", + "build": "pnpm run models:build && tsc -p tsconfig.json", "start": "node dist/server.js" }, "dependencies": { diff --git a/ee/apps/inference/public/models/.gitkeep b/ee/apps/inference/public/models/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/ee/apps/inference/scripts/build-models.mjs b/ee/apps/inference/scripts/build-models.mjs new file mode 100644 index 000000000..b6fb9f89e --- /dev/null +++ b/ee/apps/inference/scripts/build-models.mjs @@ -0,0 +1,22 @@ +import { mkdir, readFile, writeFile } from "node:fs/promises" +import path from "node:path" +import { fileURLToPath } from "node:url" + +const __dirname = path.dirname(fileURLToPath(import.meta.url)) +const appDir = path.resolve(__dirname, "..") +const sourceDir = path.join(appDir, "src", "models") +const outputPath = path.join(appDir, "public", "models", "api.json") + +async function readJson(filePath) { + return JSON.parse(await readFile(filePath, "utf8")) +} + +const isDevMode = process.env.OPENWORK_DEV_MODE === "1" +const base = await readJson(path.join(sourceDir, "base.json")) +const openwork = await readJson(path.join(sourceDir, isDevMode ? "openwork-dev.json" : "openwork-prod.json")) +const models = { ...base, ...openwork } + +await mkdir(path.dirname(outputPath), { recursive: true }) +await writeFile(outputPath, `${JSON.stringify(models)}\n`) + +console.log(`[inference] generated ${path.relative(appDir, outputPath)} (${isDevMode ? "dev" : "prod"})`) diff --git a/ee/apps/inference/src/app.ts b/ee/apps/inference/src/app.ts index d80caf35f..d3b7f7659 100644 --- a/ee/apps/inference/src/app.ts +++ b/ee/apps/inference/src/app.ts @@ -1,4 +1,7 @@ import "./load-env.js"; +import { readFile } from "node:fs/promises"; +import path from "node:path"; +import { fileURLToPath } from "node:url"; import { cors } from "hono/cors"; import { Hono } from "hono"; import { logger } from "hono/logger"; @@ -6,7 +9,10 @@ import { z } from "zod"; import { env } from "./env.js"; import { registerProxyRoutes } from "./proxy.js"; import { registerWebhookRoutes } from "./webhooks.js"; -import models from "./models.json"; + +const srcDir = path.dirname(fileURLToPath(import.meta.url)); +const modelsApiJsonPath = path.resolve(srcDir, "..", "public", "models", "api.json"); +const isVercelRuntime = Boolean(process.env.VERCEL || process.env.VERCEL_ENV || process.env.VERCEL_URL); const app = new Hono(); @@ -32,9 +38,15 @@ if (env.corsOrigins.length > 0) { } app.get("/health", (c) => c.json({ ok: true, service: "inference" })); -app.get("/models/api.json", (c) => { - return c.json(models); -}); + +if (!isVercelRuntime) { + app.get("/models/api.json", async (c) => { + const body = await readFile(modelsApiJsonPath, "utf8"); + c.header("Content-Type", "application/json; charset=utf-8"); + c.header("Cache-Control", "no-store"); + return c.body(body); + }); +} registerProxyRoutes(app); registerWebhookRoutes(app); diff --git a/ee/apps/inference/src/env.ts b/ee/apps/inference/src/env.ts index cf554f3fe..e7aca8ebe 100644 --- a/ee/apps/inference/src/env.ts +++ b/ee/apps/inference/src/env.ts @@ -1,92 +1,126 @@ -import "./load-env.js" -import type { DenDbMode, PlanetScaleCredentials } from "@openwork-ee/den-db" -import { z } from "zod" +import "./load-env.js"; +import type { DenDbMode, PlanetScaleCredentials } from "@openwork-ee/den-db"; +import { z } from "zod"; -const EnvSchema = z.object({ - PORT: z.string().optional(), - CORS_ORIGINS: z.string().optional(), - DATABASE_URL: z.string().min(1).optional(), - DB_MODE: z.enum(["mysql", "planetscale"]).optional(), - DATABASE_HOST: z.string().min(1).optional(), - DATABASE_USERNAME: z.string().min(1).optional(), - DATABASE_PASSWORD: z.string().optional(), - DEN_DB_ENCRYPTION_KEY: z.string().trim().min(32), - INFERENCE_PROXY_BASE_URL: z.string().optional(), - OPENROUTER_UPSTREAM_URL: z.string().optional(), - INFERENCE_ADMIN_TOKEN: z.string().optional(), - INFERENCE_WEBHOOK_SECRET: z.string().optional(), - INFERENCE_CREDITS_PER_DOLLAR: z.string().optional(), -}).superRefine((value, ctx) => { - const mode = value.DB_MODE ?? (value.DATABASE_URL ? "mysql" : "planetscale") - if (mode === "mysql" && !value.DATABASE_URL) { - ctx.addIssue({ code: z.ZodIssueCode.custom, path: ["DATABASE_URL"], message: "DATABASE_URL is required in mysql mode" }) - } - if (mode === "planetscale") { - for (const key of ["DATABASE_HOST", "DATABASE_USERNAME", "DATABASE_PASSWORD"] as const) { - if (!value[key]) { - ctx.addIssue({ code: z.ZodIssueCode.custom, path: [key], message: `${key} is required in planetscale mode` }) +const EnvSchema = z + .object({ + PORT: z.string().optional(), + CORS_ORIGINS: z.string().optional(), + DATABASE_URL: z.string().min(1).optional(), + DB_MODE: z.enum(["mysql", "planetscale"]).optional(), + DATABASE_HOST: z.string().min(1).optional(), + DATABASE_USERNAME: z.string().min(1).optional(), + DATABASE_PASSWORD: z.string().optional(), + DEN_DB_ENCRYPTION_KEY: z.string().trim().min(32), + INFERENCE_PROXY_BASE_URL: z.string().optional(), + OPENROUTER_UPSTREAM_URL: z.string().optional(), + INFERENCE_ADMIN_TOKEN: z.string().optional(), + INFERENCE_WEBHOOK_SECRET: z.string().optional(), + INFERENCE_CREDITS_PER_DOLLAR: z.string().optional(), + }) + .superRefine((value, ctx) => { + const mode = + value.DB_MODE ?? (value.DATABASE_URL ? "mysql" : "planetscale"); + if (mode === "mysql" && !value.DATABASE_URL) { + ctx.addIssue({ + code: z.ZodIssueCode.custom, + path: ["DATABASE_URL"], + message: "DATABASE_URL is required in mysql mode", + }); + } + if (mode === "planetscale") { + for (const key of [ + "DATABASE_HOST", + "DATABASE_USERNAME", + "DATABASE_PASSWORD", + ] as const) { + if (!value[key]) { + ctx.addIssue({ + code: z.ZodIssueCode.custom, + path: [key], + message: `${key} is required in planetscale mode`, + }); + } } } - } -}) + }); -const isDevMode = process.env.OPENWORK_DEV_MODE === "1" +export const isDevMode = process.env.OPENWORK_DEV_MODE === "1"; const parsed = EnvSchema.parse({ ...process.env, - DATABASE_URL: process.env.DATABASE_URL ?? (isDevMode ? "mysql://root:password@127.0.0.1:3306/openwork_den" : undefined), + DATABASE_URL: + process.env.DATABASE_URL ?? + (isDevMode + ? "mysql://root:password@127.0.0.1:3306/openwork_den" + : undefined), DB_MODE: process.env.DB_MODE ?? (isDevMode ? "mysql" : undefined), DEN_DB_ENCRYPTION_KEY: process.env.DEN_DB_ENCRYPTION_KEY ?? - (isDevMode ? "local-dev-db-encryption-key-please-change-1234567890" : undefined), + (isDevMode + ? "local-dev-db-encryption-key-please-change-1234567890" + : undefined), INFERENCE_WEBHOOK_SECRET: - process.env.INFERENCE_WEBHOOK_SECRET ?? (isDevMode ? "local-dev-webhook-secret" : undefined), -}) + process.env.INFERENCE_WEBHOOK_SECRET ?? + (isDevMode ? "local-dev-webhook-secret" : undefined), +}); function optionalString(value: string | undefined) { - const trimmed = value?.trim() - return trimmed ? trimmed : undefined + const trimmed = value?.trim(); + return trimmed ? trimmed : undefined; } function splitCsv(value: string | undefined) { - return (value ?? "").split(",").map((entry) => entry.trim()).filter(Boolean) + return (value ?? "") + .split(",") + .map((entry) => entry.trim()) + .filter(Boolean); } function normalizeUrl(value: string) { - return value.replace(/\/+$/, "") + return value.replace(/\/+$/, ""); } function parsePort(value: string | undefined) { - const port = Number(value ?? "8791") + const port = Number(value ?? "8791"); if (!Number.isInteger(port) || port <= 0 || port > 65535) { - throw new Error("PORT must be an integer between 1 and 65535") + throw new Error("PORT must be an integer between 1 and 65535"); } - return port + return port; } function parseCreditsPerDollar(value: string | undefined) { - const credits = Number(value ?? "1000000") + const credits = Number(value ?? "1000000"); if (!Number.isFinite(credits) || credits <= 0) { - throw new Error("INFERENCE_CREDITS_PER_DOLLAR must be a positive number") + throw new Error("INFERENCE_CREDITS_PER_DOLLAR must be a positive number"); } - return credits + return credits; } const planetscale: PlanetScaleCredentials | null = - parsed.DATABASE_HOST && parsed.DATABASE_USERNAME && parsed.DATABASE_PASSWORD !== undefined - ? { host: parsed.DATABASE_HOST, username: parsed.DATABASE_USERNAME, password: parsed.DATABASE_PASSWORD } - : null + parsed.DATABASE_HOST && + parsed.DATABASE_USERNAME && + parsed.DATABASE_PASSWORD !== undefined + ? { + host: parsed.DATABASE_HOST, + username: parsed.DATABASE_USERNAME, + password: parsed.DATABASE_PASSWORD, + } + : null; export const env = { port: parsePort(parsed.PORT), corsOrigins: splitCsv(parsed.CORS_ORIGINS), databaseUrl: parsed.DATABASE_URL, - dbMode: (parsed.DB_MODE ?? (parsed.DATABASE_URL ? "mysql" : "planetscale")) as DenDbMode, + dbMode: (parsed.DB_MODE ?? + (parsed.DATABASE_URL ? "mysql" : "planetscale")) as DenDbMode, planetscale, dbEncryptionKey: parsed.DEN_DB_ENCRYPTION_KEY, proxyBaseUrl: optionalString(parsed.INFERENCE_PROXY_BASE_URL), - openRouterUpstreamUrl: normalizeUrl(parsed.OPENROUTER_UPSTREAM_URL ?? "https://openrouter.ai/api/v1"), + openRouterUpstreamUrl: normalizeUrl( + parsed.OPENROUTER_UPSTREAM_URL ?? "https://openrouter.ai/api/v1", + ), adminToken: optionalString(parsed.INFERENCE_ADMIN_TOKEN), webhookSecret: optionalString(parsed.INFERENCE_WEBHOOK_SECRET), creditsPerDollar: parseCreditsPerDollar(parsed.INFERENCE_CREDITS_PER_DOLLAR), -} +}; diff --git a/ee/apps/inference/src/models.json b/ee/apps/inference/src/models.json deleted file mode 100644 index c3333ae67..000000000 --- a/ee/apps/inference/src/models.json +++ /dev/null @@ -1,2243 +0,0 @@ -{ - "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, - "limit": { - "context": 400000, - "input": 272000, - "output": 128000 - }, - "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.125 - } - }, - "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, - "limit": { - "context": 128000, - "output": 4096 - }, - "cost": { - "input": 5, - "output": 15 - } - }, - "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, - "limit": { - "context": 128000, - "output": 65536 - }, - "cost": { - "input": 1.1, - "output": 4.4, - "cache_read": 0.55 - } - }, - "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, - "limit": { - "context": 400000, - "input": 272000, - "output": 128000 - }, - "cost": { - "input": 21, - "output": 168 - } - }, - "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, - "limit": { - "context": 8191, - "output": 3072 - }, - "cost": { - "input": 0.13, - "output": 0 - } - }, - "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, - "limit": { - "context": 128000, - "output": 16384 - }, - "cost": { - "input": 1.75, - "output": 14, - "cache_read": 0.175 - } - }, - "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, - "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" - } - } - } - } - }, - "cost": { - "input": 5, - "output": 30, - "cache_read": 0.5, - "tiers": [ - { - "input": 10, - "output": 45, - "cache_read": 1, - "tier": { - "type": "context", - "size": 272000 - } - } - ], - "context_over_200k": { - "input": 10, - "output": 45, - "cache_read": 1 - } - } - }, - "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, - "limit": { - "context": 400000, - "input": 272000, - "output": 128000 - }, - "cost": { - "input": 0.25, - "output": 2, - "cache_read": 0.025 - } - }, - "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, - "limit": { - "context": 400000, - "input": 272000, - "output": 128000 - }, - "cost": { - "input": 0.05, - "output": 0.4, - "cache_read": 0.005 - } - }, - "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, - "limit": { - "context": 400000, - "input": 272000, - "output": 128000 - }, - "cost": { - "input": 1.75, - "output": 14, - "cache_read": 0.175 - } - }, - "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, - "limit": { - "context": 128000, - "output": 4096 - }, - "cost": { - "input": 10, - "output": 30 - } - }, - "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, - "limit": { - "context": 8192, - "output": 1536 - }, - "cost": { - "input": 0.1, - "output": 0 - } - }, - "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, - "limit": { - "context": 400000, - "input": 272000, - "output": 128000 - }, - "cost": { - "input": 1.75, - "output": 14, - "cache_read": 0.175 - } - }, - "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, - "limit": { - "context": 200000, - "output": 100000 - }, - "cost": { - "input": 20, - "output": 80 - } - }, - "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, - "limit": { - "context": 128000, - "output": 16384 - }, - "cost": { - "input": 0.15, - "output": 0.6, - "cache_read": 0.08 - } - }, - "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, - "limit": { - "context": 200000, - "output": 100000 - }, - "cost": { - "input": 2, - "output": 8, - "cache_read": 0.5 - } - }, - "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, - "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" - } - } - } - } - }, - "cost": { - "input": 0.75, - "output": 4.5, - "cache_read": 0.075 - } - }, - "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, - "limit": { - "context": 200000, - "output": 100000 - }, - "cost": { - "input": 1.1, - "output": 4.4, - "cache_read": 0.28 - } - }, - "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, - "limit": { - "context": 400000, - "input": 272000, - "output": 128000 - }, - "cost": { - "input": 0.2, - "output": 1.25, - "cache_read": 0.02 - } - }, - "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, - "limit": { - "context": 400000, - "input": 272000, - "output": 128000 - }, - "cost": { - "input": 1.75, - "output": 14, - "cache_read": 0.175 - } - }, - "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, - "limit": { - "context": 128000, - "output": 16384 - }, - "cost": { - "input": 1.75, - "output": 14, - "cache_read": 0.175 - } - }, - "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, - "limit": { - "context": 400000, - "input": 272000, - "output": 128000 - }, - "cost": { - "input": 0.25, - "output": 2, - "cache_read": 0.025 - } - }, - "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, - "limit": { - "context": 128000, - "output": 32768 - }, - "cost": { - "input": 15, - "output": 60, - "cache_read": 7.5 - } - }, - "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, - "limit": { - "context": 128000, - "output": 16384 - }, - "cost": { - "input": 2.5, - "output": 10, - "cache_read": 1.25 - } - }, - "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, - "limit": { - "context": 400000, - "input": 272000, - "output": 128000 - }, - "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.13 - } - }, - "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, - "limit": { - "context": 200000, - "output": 100000 - }, - "cost": { - "input": 15, - "output": 60, - "cache_read": 7.5 - } - }, - "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, - "limit": { - "context": 1050000, - "input": 922000, - "output": 128000 - }, - "cost": { - "input": 30, - "output": 180, - "tiers": [ - { - "input": 60, - "output": 270, - "tier": { - "type": "context", - "size": 272000 - } - } - ], - "context_over_200k": { - "input": 60, - "output": 270 - } - } - }, - "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, - "limit": { - "context": 16385, - "output": 4096 - }, - "cost": { - "input": 0.5, - "output": 1.5, - "cache_read": 1.25 - } - }, - "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, - "limit": { - "context": 200000, - "output": 100000 - }, - "cost": { - "input": 10, - "output": 40, - "cache_read": 2.5 - } - }, - "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, - "limit": { - "context": 200000, - "output": 100000 - }, - "cost": { - "input": 1.1, - "output": 4.4, - "cache_read": 0.55 - } - }, - "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, - "limit": { - "context": 8191, - "output": 1536 - }, - "cost": { - "input": 0.02, - "output": 0 - } - }, - "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, - "limit": { - "context": 200000, - "output": 100000 - }, - "cost": { - "input": 150, - "output": 600 - } - }, - "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, - "limit": { - "context": 8192, - "output": 8192 - }, - "cost": { - "input": 30, - "output": 60 - } - }, - "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, - "limit": { - "context": 400000, - "input": 272000, - "output": 128000 - }, - "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.125 - } - }, - "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, - "limit": { - "context": 1050000, - "input": 922000, - "output": 128000 - }, - "experimental": { - "modes": { - "fast": { - "cost": { - "input": 5, - "output": 30, - "cache_read": 0.5 - }, - "provider": { - "body": { - "service_tier": "priority" - } - } - } - } - }, - "cost": { - "input": 2.5, - "output": 15, - "cache_read": 0.25, - "tiers": [ - { - "input": 5, - "output": 22.5, - "cache_read": 0.5, - "tier": { - "type": "context", - "size": 272000 - } - } - ], - "context_over_200k": { - "input": 5, - "output": 22.5, - "cache_read": 0.5 - } - } - }, - "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, - "limit": { - "context": 128000, - "output": 16384 - }, - "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.125 - } - }, - "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, - "limit": { - "context": 128000, - "input": 100000, - "output": 32000 - }, - "cost": { - "input": 1.75, - "output": 14, - "cache_read": 0.175 - } - }, - "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, - "limit": { - "context": 1047576, - "output": 32768 - }, - "cost": { - "input": 0.1, - "output": 0.4, - "cache_read": 0.03 - } - }, - "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, - "limit": { - "context": 200000, - "output": 100000 - }, - "cost": { - "input": 2, - "output": 8, - "cache_read": 0.5 - } - }, - "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, - "limit": { - "context": 400000, - "input": 272000, - "output": 272000 - }, - "cost": { - "input": 15, - "output": 120 - } - }, - "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, - "limit": { - "context": 128000, - "output": 16384 - }, - "cost": { - "input": 2.5, - "output": 10, - "cache_read": 1.25 - } - }, - "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, - "limit": { - "context": 400000, - "input": 272000, - "output": 128000 - }, - "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.125 - } - }, - "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, - "limit": { - "context": 400000, - "input": 272000, - "output": 128000 - }, - "cost": { - "input": 1.25, - "output": 10 - } - }, - "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, - "limit": { - "context": 1050000, - "input": 922000, - "output": 128000 - }, - "cost": { - "input": 30, - "output": 180, - "tiers": [ - { - "input": 60, - "output": 270, - "tier": { - "type": "context", - "size": 272000 - } - } - ], - "context_over_200k": { - "input": 60, - "output": 270 - } - } - }, - "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, - "limit": { - "context": 1047576, - "output": 32768 - }, - "cost": { - "input": 2, - "output": 8, - "cache_read": 0.5 - } - }, - "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, - "limit": { - "context": 1047576, - "output": 32768 - }, - "cost": { - "input": 0.4, - "output": 1.6, - "cache_read": 0.1 - } - }, - "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, - "limit": { - "context": 400000, - "input": 272000, - "output": 128000 - }, - "cost": { - "input": 1.25, - "output": 10, - "cache_read": 0.125 - } - }, - "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, - "limit": { - "context": 128000, - "output": 16384 - }, - "cost": { - "input": 2.5, - "output": 10, - "cache_read": 1.25 - } - } - } - }, - "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, - "limit": { - "context": 200000, - "output": 4096 - }, - "cost": { - "input": 3, - "output": 15, - "cache_read": 0.3, - "cache_write": 0.3 - } - }, - "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, - "limit": { - "context": 200000, - "output": 64000 - }, - "cost": { - "input": 1, - "output": 5, - "cache_read": 0.1, - "cache_write": 1.25 - } - }, - "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, - "limit": { - "context": 200000, - "output": 64000 - }, - "cost": { - "input": 5, - "output": 25, - "cache_read": 0.5, - "cache_write": 6.25 - } - }, - "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, - "limit": { - "context": 200000, - "output": 4096 - }, - "cost": { - "input": 15, - "output": 75, - "cache_read": 1.5, - "cache_write": 18.75 - } - }, - "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, - "limit": { - "context": 200000, - "output": 8192 - }, - "cost": { - "input": 0.8, - "output": 4, - "cache_read": 0.08, - "cache_write": 1 - } - }, - "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, - "limit": { - "context": 200000, - "output": 8192 - }, - "cost": { - "input": 3, - "output": 15, - "cache_read": 0.3, - "cache_write": 3.75 - } - }, - "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, - "limit": { - "context": 1000000, - "output": 64000 - }, - "cost": { - "input": 3, - "output": 15, - "cache_read": 0.3, - "cache_write": 3.75 - } - }, - "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, - "limit": { - "context": 200000, - "output": 32000 - }, - "cost": { - "input": 15, - "output": 75, - "cache_read": 1.5, - "cache_write": 18.75 - } - }, - "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, - "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" - } - } - } - } - }, - "cost": { - "input": 5, - "output": 25, - "cache_read": 0.5, - "cache_write": 6.25 - } - }, - "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, - "limit": { - "context": 200000, - "output": 4096 - }, - "cost": { - "input": 0.25, - "output": 1.25, - "cache_read": 0.03, - "cache_write": 0.3 - } - }, - "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, - "limit": { - "context": 200000, - "output": 64000 - }, - "cost": { - "input": 3, - "output": 15, - "cache_read": 0.3, - "cache_write": 3.75 - } - }, - "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, - "limit": { - "context": 200000, - "output": 8192 - }, - "cost": { - "input": 0.8, - "output": 4, - "cache_read": 0.08, - "cache_write": 1 - } - }, - "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, - "limit": { - "context": 200000, - "output": 32000 - }, - "cost": { - "input": 15, - "output": 75, - "cache_read": 1.5, - "cache_write": 18.75 - } - }, - "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, - "limit": { - "context": 200000, - "output": 64000 - }, - "cost": { - "input": 3, - "output": 15, - "cache_read": 0.3, - "cache_write": 3.75 - } - }, - "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, - "limit": { - "context": 200000, - "output": 8192 - }, - "cost": { - "input": 3, - "output": 15, - "cache_read": 0.3, - "cache_write": 3.75 - } - }, - "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, - "limit": { - "context": 200000, - "output": 64000 - }, - "cost": { - "input": 5, - "output": 25, - "cache_read": 0.5, - "cache_write": 6.25 - } - }, - "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, - "limit": { - "context": 200000, - "output": 32000 - }, - "cost": { - "input": 15, - "output": 75, - "cache_read": 1.5, - "cache_write": 18.75 - } - }, - "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, - "limit": { - "context": 200000, - "output": 64000 - }, - "cost": { - "input": 1, - "output": 5, - "cache_read": 0.1, - "cache_write": 1.25 - } - }, - "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, - "limit": { - "context": 200000, - "output": 64000 - }, - "cost": { - "input": 3, - "output": 15, - "cache_read": 0.3, - "cache_write": 3.75 - } - }, - "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, - "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" - } - } - } - } - }, - "cost": { - "input": 5, - "output": 25, - "cache_read": 0.5, - "cache_write": 6.25 - } - }, - "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, - "limit": { - "context": 200000, - "output": 64000 - }, - "cost": { - "input": 3, - "output": 15, - "cache_read": 0.3, - "cache_write": 3.75 - } - }, - "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, - "limit": { - "context": 200000, - "output": 64000 - }, - "cost": { - "input": 3, - "output": 15, - "cache_read": 0.3, - "cache_write": 3.75 - } - }, - "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, - "limit": { - "context": 200000, - "output": 32000 - }, - "cost": { - "input": 15, - "output": 75, - "cache_read": 1.5, - "cache_write": 18.75 - } - } - } - }, - "openwork": { - "id": "openwork", - "env": ["OPENWORK_API_KEY"], - "npm": "@openrouter/ai-sdk-provider", - "name": "OpenWork Clarity", - "api": "http://127.0.0.1:8791/api/v1", - "models": { - "olive": { - "id": "olive", - "name": "Olive 40 Mini", - "family": "olive", - "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, - "limit": { - "context": 128000, - "output": 16384 - } - }, - "sarah": { - "id": "sarah", - "name": "Sarah 4.7", - "family": "sarah", - "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, - "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" - } - } - } - } - } - } - } - } -} diff --git a/ee/apps/inference/src/models/base.json b/ee/apps/inference/src/models/base.json new file mode 100644 index 000000000..8122d7046 --- /dev/null +++ b/ee/apps/inference/src/models/base.json @@ -0,0 +1,78305 @@ +{ + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.29, "output": 2.86 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { "input": 2, "output": 10 } + }, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "cost": { "input": 0.33, "output": 1.32 } + }, + "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, + "limit": { "context": 2000000, "output": 30000 }, + "cost": { "input": 0.2, "output": 0.5 } + }, + "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, + "limit": { "context": 1000000, "output": 65536 }, + "cost": { "input": 0.3, "output": 2.5 } + }, + "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, + "limit": { "context": 2000000, "output": 30000 }, + "cost": { "input": 2, "output": 6 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.632, "output": 2.53 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { "input": 1, "output": 5 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { "input": 5, "output": 25 } + }, + "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, + "limit": { "context": 1000000, "output": 65536 }, + "cost": { "input": 0.1, "output": 0.4 } + }, + "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, + "limit": { "context": 128000, "output": 65536 }, + "cost": { "input": 0.29, "output": 1.143 } + }, + "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, + "limit": { "context": 200000, "output": 131072 }, + "cost": { "input": 0.72, "output": 3.2 } + }, + "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, + "limit": { "context": 128000, "output": 262144 }, + "cost": { "input": 1.1, "output": 3.3 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0.286, "output": 1.142 } + }, + "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, + "limit": { "context": 200000, "output": 8192 }, + "cost": { "input": 0.8, "output": 4 } + }, + "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, + "limit": { "context": 224000, "output": 64000 }, + "cost": { "input": 0.114, "output": 0.286 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 5, "output": 15 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0.6, "output": 2.6 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0.29, "output": 0.43 } + }, + "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, + "limit": { "context": 128000, "output": 128000 }, + "cost": { "input": 0.29, "output": 0.43 } + }, + "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, + "limit": { "context": 1000000, "output": 64000 }, + "cost": { "input": 3, "output": 15 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10 } + }, + "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, + "limit": { "context": 200000, "output": 131072 }, + "cost": { "input": 0.0715, "output": 0.429 } + }, + "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, + "limit": { "context": 1000000, "output": 65536 }, + "cost": { "input": 0.5, "output": 3 } + }, + "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, + "limit": { "context": 1000000, "output": 32768 }, + "cost": { "input": 0.12, "output": 1.2 } + }, + "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, + "limit": { "context": 2000000, "output": 30000 }, + "cost": { "input": 2, "output": 6 } + }, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25, + "tiers": [ + { + "input": 10, + "output": 37.5, + "cache_read": 1, + "cache_write": 12.5, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { + "input": 10, + "output": 37.5, + "cache_read": 1, + "cache_write": 12.5 + } + } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 0.25, "output": 2 } + }, + "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, + "limit": { "context": 1000000, "output": 64000 }, + "cost": { "input": 2, "output": 12 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0.3, "output": 1.2 } + }, + "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, + "limit": { "context": 258048, "output": 65536 }, + "cost": { "input": 0.86, "output": 3.43 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { "input": 3, "output": 15 } + }, + "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, + "limit": { "context": 1000000, "output": 32768 }, + "cost": { "input": 0.022, "output": 0.22 } + }, + "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, + "limit": { "context": 1000000, "output": 65536 }, + "cost": { "input": 1.25, "output": 10 } + }, + "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, + "limit": { "context": 2000000, "output": 30000 }, + "cost": { "input": 0.2, "output": 0.5 } + }, + "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, + "limit": { "context": 200000, "output": 8192 }, + "cost": { "input": 0.8, "output": 4 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { "input": 5, "output": 25 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 1.75, "output": 14 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 0.75, "output": 4.5 } + }, + "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, + "limit": { "context": 32768, "output": 64000 }, + "cost": { "input": 2, "output": 120 } + }, + "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, + "limit": { "context": 200000, "output": 131072 }, + "cost": { "input": 0.86, "output": 3.5 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.343, "output": 1.372 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 0.2, "output": 1.25 } + }, + "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, + "limit": { "context": 32768, "output": 32768 }, + "cost": { "input": 0.3, "output": 30 } + }, + "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, + "limit": { "context": 131072, "output": 98304 }, + "cost": { "input": 0.286, "output": 1.142 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 0.75, "output": 4.5 } + }, + "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, + "limit": { "context": 1000000, "output": 65536 }, + "cost": { "input": 0.3, "output": 2.5 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 1.75, "output": 14 } + }, + "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, + "limit": { "context": 256000, "output": 32000 }, + "cost": { "input": 0.114, "output": 1.143 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.5, "output": 60 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0.6, "output": 4.8 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 1.143, "output": 2.29 } + }, + "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, + "limit": { "context": 1000000, "output": 131072 }, + "cost": { "input": 0.3, "output": 1.2 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 1.265, "output": 9.119 } + }, + "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, + "limit": { "context": 128000, "output": 128000 }, + "cost": { "input": 0.29, "output": 0.43 } + }, + "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, + "limit": { "context": 2000000, "output": 30000 }, + "cost": { "input": 0.2, "output": 0.5 } + }, + "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, + "limit": { "context": 200000, "output": 32000 }, + "cost": { "input": 15, "output": 75 } + }, + "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, + "limit": { "context": 131072, "output": 98304 }, + "cost": { "input": 0.1143, "output": 0.286 } + }, + "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, + "limit": { "context": 1050000, "input": 922000, "output": 128000 }, + "cost": { + "input": 30, + "output": 180, + "cache_read": 0, + "cache_write": 0, + "tiers": [ + { + "input": 60, + "output": 270, + "tier": { "type": "context", "size": 272000 } + } + ], + "context_over_200k": { "input": 60, "output": 270 } + } + }, + "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, + "limit": { "context": 200000, "output": 131072 }, + "cost": { "input": 0.72, "output": 3.2 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0.11, "output": 1.08 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { "input": 5, "output": 25 } + }, + "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, + "limit": { "context": 64000, "output": 16384 }, + "cost": { "input": 0.29, "output": 0.86 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0.286, "output": 1.142 } + }, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "cost": { "input": 5, "output": 25 } + }, + "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, + "limit": { "context": 1000000, "output": 65536 }, + "cost": { "input": 0.3, "output": 2.5 } + }, + "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, + "limit": { "context": 1000000, "output": 64000 }, + "cost": { "input": 3, "output": 15 } + }, + "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, + "limit": { "context": 128000, "output": 32768 }, + "cost": { "input": 0.145, "output": 0.43 } + }, + "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, + "limit": { "context": 200000, "output": 32000 }, + "cost": { "input": 15, "output": 75 } + }, + "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, + "limit": { "context": 1050000, "input": 922000, "output": 128000 }, + "cost": { + "input": 2.5, + "output": 15, + "cache_read": 0.25, + "cache_write": 0, + "tiers": [ + { + "input": 5, + "output": 22.5, + "tier": { "type": "context", "size": 272000 } + } + ], + "context_over_200k": { "input": 5, "output": 22.5 } + } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 1.25, "output": 10 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { "input": 1, "output": 5 } + }, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "cost": { "input": 0.132, "output": 1.254 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 0.2, "output": 1.25 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { "input": 3, "output": 15 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.86, "output": 3.43 } + }, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "cost": { "input": 5, "output": 25 } + }, + "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, + "limit": { "context": 256000, "output": 32000 }, + "cost": { "input": 0.17, "output": 1.14 } + }, + "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, + "limit": { "context": 1047576, "output": 32768 }, + "cost": { "input": 0.1, "output": 0.4 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0.29, "output": 0.43 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 272000 }, + "cost": { "input": 15, "output": 120 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 2.5, "output": 10 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { "input": 3, "output": 15 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10 } + }, + "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, + "limit": { "context": 2000000, "output": 30000 }, + "cost": { "input": 2, "output": 6 } + }, + "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, + "limit": { "context": 200000, "output": 32000 }, + "cost": { "input": 15, "output": 75 } + }, + "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, + "limit": { "context": 200000, "output": 131072 }, + "cost": { "input": 0.086, "output": 0.343 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { "input": 3, "output": 15 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.572, "output": 1.714 } + }, + "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, + "limit": { "context": 1047576, "output": 32768 }, + "cost": { "input": 2, "output": 8 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.575, "output": 2.3 } + }, + "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, + "limit": { "context": 2000000, "output": 8192 }, + "cost": { "input": 0.075, "output": 0.3 } + }, + "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, + "limit": { "context": 1047576, "output": 32768 }, + "cost": { "input": 0.4, "output": 1.6 } + }, + "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, + "limit": { "context": 2000000, "output": 30000 }, + "cost": { "input": 0.2, "output": 0.5 } + }, + "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, + "limit": { "context": 256000, "output": 16000 }, + "cost": { "input": 0.121, "output": 1.21 } + }, + "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, + "limit": { "context": 128000, "output": 128000 }, + "cost": { "input": 0.33, "output": 0.33 } + } + } + }, + "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, + "limit": { "context": 131072, "output": 16384 }, + "cost": { "input": 0.7, "output": 2.8, "reasoning": 8.4 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.4, "output": 3.2 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { "input": 1, "output": 5 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.6, "output": 3.6 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.3, "output": 2.4 } + }, + "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, + "limit": { "context": 34096, "output": 4096 }, + "cost": { "input": 0.72, "output": 0.72 } + }, + "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, + "limit": { "context": 32768, "output": 2048 }, + "cost": { + "input": 0.27, + "output": 1.07, + "input_audio": 4.44, + "output_audio": 8.89 + } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.18, "output": 0.7, "reasoning": 2.1 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.6, "output": 3.6 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.8, "output": 2.4 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.21, "output": 0.63 } + }, + "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, + "limit": { "context": 53248, "output": 4096 }, + "cost": { + "input": 10, + "output": 10, + "input_audio": 10, + "output_audio": 38 + } + }, + "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, + "limit": { "context": 131072, "output": 16384 }, + "cost": { "input": 0.7, "output": 2.8, "reasoning": 8.4 } + }, + "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, + "limit": { "context": 32768, "output": 8192 }, + "cost": { "input": 1.6, "output": 6.4 } + }, + "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, + "limit": { "context": 1000000, "output": 32768 }, + "cost": { "input": 0.4, "output": 1.2, "reasoning": 4 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.248, "output": 1.485 } + }, + "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, + "limit": { "context": 32768, "output": 2048 }, + "cost": { + "input": 0.07, + "output": 0.27, + "input_audio": 4.44, + "output_audio": 8.89 + } + }, + "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, + "limit": { "context": 1000000, "output": 32768 }, + "cost": { "input": 0.05, "output": 0.4 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.35, "output": 1.05 } + }, + "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, + "limit": { "context": 1000000, "output": 65536 }, + "cost": { + "input": 0.5, + "output": 3, + "cache_read": 0.05, + "cache_write": 0.625, + "tiers": [ + { + "input": 2, + "output": 6, + "cache_read": 0.2, + "cache_write": 2.5, + "tier": { "type": "context", "size": 256000 } + } + ], + "context_over_200k": { + "input": 2, + "output": 6, + "cache_read": 0.2, + "cache_write": 2.5 + } + } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 1.2, "output": 6 } + }, + "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, + "limit": { "context": 65536, "output": 16384 }, + "cost": { + "input": 0.43, + "output": 1.66, + "input_audio": 3.81, + "output_audio": 15.11 + } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 1.4, "output": 5.6 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.7, "output": 2.8, "reasoning": 8.4 } + }, + "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, + "limit": { "context": 53248, "output": 4096 }, + "cost": { "input": 0.035, "output": 0.035 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.5, "output": 6 } + }, + "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, + "limit": { "context": 16384, "output": 8192 }, + "cost": { "input": 2.46, "output": 7.37 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.8, "output": 3.2 } + }, + "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, + "limit": { "context": 1000000, "output": 65536 }, + "cost": { "input": 0.3, "output": 1.5 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.175, "output": 0.7 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.35, "output": 1.4 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.7, "output": 2.8 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.5, "output": 2 } + }, + "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, + "limit": { "context": 8192, "output": 512 }, + "cost": { "input": 0.5, "output": 1.4 } + }, + "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, + "limit": { "context": 65536, "output": 16384 }, + "cost": { + "input": 0.52, + "output": 1.99, + "input_audio": 4.57, + "output_audio": 18.13 + } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.2, "output": 0.8, "reasoning": 2.4 } + }, + "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, + "limit": { "context": 262144, "output": 32768 }, + "cost": { "input": 0.2, "output": 1.6, "reasoning": 4.8 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 1.5, "output": 7.5 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.45, "output": 2.25 } + }, + "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, + "limit": { "context": 1000000, "output": 16384 }, + "cost": { "input": 0.05, "output": 0.2, "reasoning": 0.5 } + }, + "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, + "limit": { "context": 16384, "output": 8192 }, + "cost": { "input": 0.16, "output": 0.49 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { + "input": 1.3, + "output": 7.8, + "cache_read": 0.13, + "cache_write": 1.625 + } + }, + "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, + "limit": { "context": 32768, "output": 2048 }, + "cost": { "input": 0.1, "output": 0.4, "input_audio": 6.76 } + }, + "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, + "limit": { "context": 1000000, "output": 65536 }, + "cost": { "input": 0.4, "output": 2.4, "reasoning": 2.4 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 2.8, "output": 8.4 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 1.2, "output": 4.8 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.35, "output": 1.4, "reasoning": 4.2 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.25, "output": 2 } + } + } + }, + "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, + "limit": { "context": 32768, "output": 4096 }, + "cost": { "input": 0.1, "output": 0 } + }, + "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, + "limit": { "context": 260000, "output": 16384 }, + "cost": { "input": 0.75, "output": 2.25 } + }, + "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, + "limit": { "context": 100000, "output": 16384 }, + "cost": { "input": 0.9, "output": 0.9 } + }, + "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, + "limit": { "context": 256000, "output": 16384 }, + "cost": { "input": 0.6, "output": 3.6 } + }, + "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, + "limit": { "context": 256000, "output": 16384 }, + "cost": { "input": 0.4, "output": 2 } + }, + "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, + "limit": { "context": 32000, "output": 8196 }, + "cost": { "input": 0.9, "output": 0.9 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0.2, "output": 0.2 } + }, + "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, + "limit": { "context": 0, "output": 8192 }, + "cost": { "input": 0.003, "output": 0 } + }, + "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, + "limit": { "context": 32000, "output": 16384 }, + "cost": { "input": 0.15, "output": 0.35 } + }, + "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, + "limit": { "context": 40000, "output": 8192 }, + "cost": { "input": 0.25, "output": 0.5 } + }, + "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, + "limit": { "context": 8191, "output": 3072 }, + "cost": { "input": 0.1, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 32768 }, + "cost": { "input": 0.2, "output": 0.8 } + }, + "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, + "limit": { "context": 128000, "output": 32768 }, + "cost": { "input": 0.15, "output": 0.35 } + }, + "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, + "limit": { "context": 128000, "output": 32768 }, + "cost": { "input": 0.15, "output": 0.6 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0.2, "output": 0.2 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.2, "output": 0.2 } + } + } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 4096 }, + "cost": { "input": 0.1003, "output": 0.1003 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 16384 }, + "cost": { "input": 0.02, "output": 0.03 } + }, + "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, + "limit": { "context": 200000, "input": 200000, "output": 32000 }, + "cost": { "input": 14.994, "output": 75.004 } + }, + "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, + "limit": { "context": 1048756, "input": 1048756, "output": 65536 }, + "cost": { "input": 2.5, "output": 10 } + }, + "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, + "limit": { "context": 131072, "input": 131072, "output": 131072 }, + "cost": { "input": 0.6, "output": 4 } + }, + "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, + "limit": { "context": 200000, "input": 200000, "output": 131072 }, + "cost": { "input": 0.17, "output": 1.53 } + }, + "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, + "limit": { "context": 256000, "input": 256000, "output": 8192 }, + "cost": { "input": 2.5, "output": 10 } + }, + "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, + "limit": { "context": 8192, "input": 8192, "output": 8192 }, + "cost": { "input": 5, "output": 5 } + }, + "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, + "limit": { "context": 8192, "input": 8192, "output": 8192 }, + "cost": { "input": 2.5, "output": 2.5 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 16384 }, + "cost": { "input": 0.306, "output": 0.306 } + }, + "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, + "limit": { "context": 2097152, "input": 2097152, "output": 8192 }, + "cost": { "input": 1.258, "output": 4.998 } + }, + "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, + "limit": { "context": 200000, "input": 200000, "output": 32000 }, + "cost": { "input": 4.998, "output": 25.007 } + }, + "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, + "limit": { "context": 1000000, "input": 1000000, "output": 1000000 }, + "cost": { "input": 9.996, "output": 19.992 } + }, + "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, + "limit": { "context": 256000, "input": 256000, "output": 4096 }, + "cost": { "input": 0.1989, "output": 0.408 } + }, + "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, + "limit": { "context": 1048756, "input": 1048756, "output": 65536 }, + "cost": { "input": 0.1, "output": 0.4 } + }, + "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, + "limit": { "context": 32000, "input": 32000, "output": 4096 }, + "cost": { "input": 3.196, "output": 3.196 } + }, + "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, + "limit": { "context": 1000000, "input": 1000000, "output": 1000000 }, + "cost": { "input": 9.996, "output": 19.992 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 16384 }, + "cost": { "input": 2.499, "output": 9.996 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 8192 }, + "cost": { "input": 0.25, "output": 0.7 } + }, + "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, + "limit": { "context": 200000, "input": 200000, "output": 8192 }, + "cost": { "input": 0.8, "output": 4 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 8192 }, + "cost": { "input": 0.612, "output": 6.12 } + }, + "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, + "limit": { "context": 256000, "input": 256000, "output": 16384 }, + "cost": { "input": 0.204, "output": 0.51 } + }, + "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, + "limit": { "context": 64000, "input": 64000, "output": 8192 }, + "cost": { "input": 0.15, "output": 0.6 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 16384 }, + "cost": { "input": 1.1, "output": 2 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 4096 }, + "cost": { "input": 0.1394, "output": 0.1394 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 32768 }, + "cost": { "input": 7.5, "output": 7.5 } + }, + "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, + "limit": { "context": 256000, "input": 256000, "output": 16384 }, + "cost": { "input": 0.204, "output": 2.04 } + }, + "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, + "limit": { "context": 1000000, "input": 1000000, "output": 8192 }, + "cost": { "input": 0.1003, "output": 0.408 } + }, + "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, + "limit": { "context": 200000, "input": 200000, "output": 32000 }, + "cost": { "input": 14.994, "output": 75.004 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 16384 }, + "cost": { "input": 0.306, "output": 0.306 } + }, + "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, + "limit": { "context": 220600, "input": 220600, "output": 65536 }, + "cost": { "input": 0.306, "output": 0.306 } + }, + "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, + "limit": { "context": 200000, "input": 200000, "output": 8192 }, + "cost": { "input": 2.992, "output": 14.994 } + }, + "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, + "limit": { "context": 200000, "input": 200000, "output": 4096 }, + "cost": { "input": 2.499, "output": 2.499 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 16384 }, + "cost": { "input": 0.306, "output": 0.306 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 16384 }, + "cost": { "input": 0.17, "output": 0.68 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 16384 }, + "cost": { "input": 0.306, "output": 0.306 } + }, + "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, + "limit": { "context": 32000, "input": 32000, "output": 16384 }, + "cost": { "input": 0.33, "output": 1.32 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 8192 }, + "cost": { "input": 0.25, "output": 0.7 } + }, + "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, + "limit": { "context": 32000, "input": 32000, "output": 16384 }, + "cost": { "input": 0.07, "output": 0.07 } + }, + "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, + "limit": { "context": 200000, "input": 200000, "output": 64000 }, + "cost": { "input": 2.992, "output": 14.994 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 4096 }, + "cost": { "input": 0.2006, "output": 0.2006 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 16384 }, + "cost": { "input": 0.493, "output": 0.493 } + }, + "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, + "limit": { "context": 1000000, "input": 1000000, "output": 8192 }, + "cost": { "input": 0.306, "output": 1.003 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 32768 }, + "cost": { "input": 0.4, "output": 1.4 } + }, + "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, + "limit": { "context": 32000, "input": 32000, "output": 8192 }, + "cost": { "input": 0.1343, "output": 0.3349 } + }, + "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, + "limit": { "context": 80000, "input": 80000, "output": 16384 }, + "cost": { "input": 0.4, "output": 0.4 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 4096 }, + "cost": { "input": 14.994, "output": 14.994 } + }, + "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, + "limit": { "context": 32000, "input": 32000, "output": 8192 }, + "cost": { "input": 1.5997, "output": 6.392 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 32768 }, + "cost": { "input": 0.5, "output": 1.2 } + }, + "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, + "limit": { "context": 256000, "input": 256000, "output": 4096 }, + "cost": { "input": 1.989, "output": 7.99 } + }, + "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, + "limit": { "context": 995904, "input": 995904, "output": 32768 }, + "cost": { "input": 0.3995, "output": 1.2002 } + }, + "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, + "limit": { "context": 32000, "input": 32000, "output": 32768 }, + "cost": { "input": 0.69989, "output": 0.69989 } + }, + "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, + "limit": { "context": 1000000, "input": 1000000, "output": 64000 }, + "cost": { "input": 2.992, "output": 14.994 } + }, + "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, + "limit": { "context": 1048756, "input": 1048756, "output": 65536 }, + "cost": { "input": 2, "output": 12 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 16384 }, + "cost": { "input": 0.306, "output": 0.306 } + }, + "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, + "limit": { "context": 131072, "input": 131072, "output": 98304 }, + "cost": { "input": 0.306, "output": 0.306 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 32768 }, + "cost": { "input": 30, "output": 30 } + }, + "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, + "limit": { "context": 1000000, "input": 1000000, "output": 64000 }, + "cost": { "input": 2.992, "output": 14.994 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 16384 }, + "cost": { "input": 0.25, "output": 0.75 } + }, + "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, + "limit": { "context": 200000, "input": 200000, "output": 64000 }, + "cost": { "input": 2.992, "output": 14.994 } + }, + "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, + "limit": { "context": 1048000, "input": 1048000, "output": 65536 }, + "cost": { "input": 0.15, "output": 0.6 } + }, + "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, + "limit": { "context": 131072, "input": 131072, "output": 65536 }, + "cost": { "input": 0.306, "output": 0.306 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 16384 }, + "cost": { "input": 0.306, "output": 0.306 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 32768 }, + "cost": { "input": 0.5, "output": 6 } + }, + "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, + "limit": { "context": 200000, "input": 200000, "output": 64000 }, + "cost": { "input": 2.992, "output": 14.994 } + }, + "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, + "limit": { "context": 200000, "input": 200000, "output": 64000 }, + "cost": { "input": 2.992, "output": 14.994 } + }, + "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, + "limit": { "context": 1000000, "input": 1000000, "output": 64000 }, + "cost": { "input": 2.992, "output": 14.994 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 16384 }, + "cost": { "input": 0.306, "output": 0.306 } + }, + "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, + "limit": { "context": 1000000, "input": 1000000, "output": 64000 }, + "cost": { "input": 2.992, "output": 14.994 } + }, + "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, + "limit": { "context": 1048756, "input": 1048756, "output": 65536 }, + "cost": { "input": 2.5, "output": 10 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 16384 }, + "cost": { "input": 0.306, "output": 0.306 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 4096 }, + "cost": { "input": 9.996, "output": 9.996 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 32768 }, + "cost": { "input": 0.1, "output": 0.2 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 4096 }, + "cost": { "input": 4.998, "output": 6.987 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 8192 }, + "cost": { "input": 0.4, "output": 1.7 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 16384 }, + "cost": { "input": 0.6, "output": 2.4 } + }, + "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, + "limit": { "context": 200000, "input": 200000, "output": 128000 }, + "cost": { "input": 2.992, "output": 14.994 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 96000 }, + "cost": { "input": 0.42, "output": 0.42 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 8192 }, + "cost": { "input": 0.25, "output": 0.7 } + }, + "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, + "limit": { "context": 2097152, "input": 2097152, "output": 8192 }, + "cost": { "input": 1.989, "output": 7.956 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 16384 }, + "cost": { "input": 0.1496, "output": 0.595 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 16384 }, + "cost": { "input": 0.306, "output": 0.306 } + }, + "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, + "limit": { "context": 200000, "input": 200000, "output": 32000 }, + "cost": { "input": 14.994, "output": 75.004 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 16384 }, + "cost": { "input": 0.306, "output": 0.306 } + }, + "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, + "limit": { "context": 256000, "input": 256000, "output": 16384 }, + "cost": { "input": 0.1, "output": 0.4 } + }, + "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, + "limit": { "context": 991800, "output": 65536 }, + "cost": { "input": 0.45, "output": 2.7 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 16384 }, + "cost": { "input": 0.306, "output": 0.306 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 131072 }, + "cost": { "input": 0.1, "output": 0.3 } + }, + "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, + "limit": { "context": 64000, "input": 64000, "output": 8192 }, + "cost": { "input": 0.3, "output": 0.3 } + }, + "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, + "limit": { "context": 256000, "input": 256000, "output": 16384 }, + "cost": { "input": 0.17, "output": 0.66 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 16384 }, + "cost": { "input": 0.55, "output": 1.43 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 16384 }, + "cost": { "input": 1, "output": 1 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 16384 }, + "cost": { "input": 1.1, "output": 2 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 16384 }, + "cost": { "input": 0.306, "output": 0.306 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 16384 }, + "cost": { "input": 0.306, "output": 0.306 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 96000 }, + "cost": { "input": 0.306, "output": 0.306 } + }, + "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, + "limit": { "context": 1048756, "input": 1048756, "output": 65536 }, + "cost": { "input": 0.1, "output": 0.4 } + }, + "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, + "limit": { "context": 256000, "input": 256000, "output": 128000 }, + "cost": { "input": 0.782, "output": 3.876 } + }, + "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, + "limit": { "context": 1048756, "input": 1048756, "output": 65536 }, + "cost": { "input": 2, "output": 12 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 16384 }, + "cost": { "input": 0.306, "output": 0.306 } + }, + "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, + "limit": { "context": 256000, "input": 256000, "output": 4096 }, + "cost": { "input": 0.1989, "output": 0.408 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 16384 }, + "cost": { "input": 0.306, "output": 0.306 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 16384 }, + "cost": { "input": 0.6, "output": 2.4 } + }, + "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, + "limit": { "context": 1048756, "input": 1048756, "output": 65536 }, + "cost": { "input": 2.5, "output": 10 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 65536 }, + "cost": { "input": 1.292, "output": 4.998 } + }, + "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, + "limit": { "context": 256000, "input": 256000, "output": 32000 }, + "cost": { "input": 0.1462, "output": 0.8738 } + }, + "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, + "limit": { "context": 1048756, "input": 1048756, "output": 65536 }, + "cost": { "input": 0.15, "output": 0.6 } + }, + "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, + "limit": { "context": 60000, "input": 60000, "output": 128000 }, + "cost": { "input": 3.4, "output": 13.6 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 16384 }, + "cost": { "input": 0.306, "output": 0.306 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 16384 }, + "cost": { "input": 0.306, "output": 0.306 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 16384 }, + "cost": { "input": 0.306, "output": 0.306 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 16384 }, + "cost": { "input": 0.306, "output": 0.306 } + }, + "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, + "limit": { "context": 256000, "input": 256000, "output": 32768 }, + "cost": { "input": 0.2, "output": 0.5 } + }, + "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, + "limit": { "context": 1048756, "input": 1048756, "output": 65536 }, + "cost": { "input": 0.3, "output": 2.5 } + }, + "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, + "limit": { "context": 1048756, "input": 1048756, "output": 65536 }, + "cost": { "input": 0.3, "output": 2.5 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 8192 }, + "cost": { "input": 3, "output": 15 } + }, + "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, + "limit": { "context": 8000, "input": 8000, "output": 16384 }, + "cost": { "input": 0.66, "output": 2.6 } + }, + "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, + "limit": { "context": 256000, "input": 256000, "output": 32000 }, + "cost": { "input": 0.0493, "output": 0.4845 } + }, + "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, + "limit": { "context": 1048756, "input": 1048756, "output": 65536 }, + "cost": { "input": 2, "output": 12 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 16384 }, + "cost": { "input": 0.306, "output": 0.306 } + }, + "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, + "limit": { "context": 1000000, "input": 1000000, "output": 64000 }, + "cost": { "input": 15, "output": 75 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 16384 }, + "cost": { "input": 0.132, "output": 0.55 } + }, + "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, + "limit": { "context": 256000, "input": 256000, "output": 32768 }, + "cost": { "input": 1.5, "output": 6 } + }, + "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, + "limit": { "context": 200000, "input": 200000, "output": 8192 }, + "cost": { "input": 2.992, "output": 14.994 } + }, + "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, + "limit": { "context": 200000, "input": 200000, "output": 32000 }, + "cost": { "input": 14.994, "output": 75.004 } + }, + "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, + "limit": { "context": 32767, "input": 32767, "output": 8192 }, + "cost": { "input": 0.2, "output": 0.8 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 16384 }, + "cost": { "input": 0.306, "output": 0.306 } + }, + "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, + "limit": { "context": 8000, "input": 8000, "output": 4096 }, + "cost": { "input": 1.802, "output": 1.802 } + }, + "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, + "limit": { "context": 200000, "input": 200000, "output": 16384 }, + "cost": { "input": 4.998, "output": 14.994 } + }, + "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, + "limit": { "context": 8000, "input": 8000, "output": 4096 }, + "cost": { "input": 2.006, "output": 2.006 } + }, + "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, + "limit": { "context": 8000, "input": 8000, "output": 4096 }, + "cost": { "input": 0.2006, "output": 0.408 } + }, + "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, + "limit": { "context": 1048756, "input": 1048756, "output": 65536 }, + "cost": { "input": 0.15, "output": 3.5 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 16384 }, + "cost": { "input": 0.306, "output": 0.306 } + }, + "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, + "limit": { "context": 64000, "input": 64000, "output": 65536 }, + "cost": { "input": 0.4, "output": 1.7 } + }, + "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, + "limit": { "context": 32000, "input": 32000, "output": 16384 }, + "cost": { "input": 0.7, "output": 0.7 } + }, + "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, + "limit": { "context": 256000, "input": 256000, "output": 4096 }, + "cost": { "input": 0.1989, "output": 0.408 } + }, + "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, + "limit": { "context": 200000, "input": 200000, "output": 32000 }, + "cost": { "input": 14.994, "output": 75.004 } + }, + "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, + "limit": { "context": 131072, "input": 131072, "output": 131072 }, + "cost": { "input": 3, "output": 15 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 16384 }, + "cost": { "input": 0.306, "output": 0.306 } + }, + "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, + "limit": { "context": 127000, "input": 127000, "output": 128000 }, + "cost": { "input": 1.003, "output": 1.003 } + }, + "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, + "limit": { "context": 158600, "input": 158600, "output": 65536 }, + "cost": { "input": 0.306, "output": 0.306 } + }, + "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, + "limit": { "context": 256000, "input": 256000, "output": 4096 }, + "cost": { "input": 1.989, "output": 7.99 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 8192 }, + "cost": { "input": 3, "output": 15 } + }, + "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, + "limit": { "context": 32000, "input": 32000, "output": 16384 }, + "cost": { "input": 0.495, "output": 1.43 } + }, + "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, + "limit": { "context": 16384, "input": 16384, "output": 16384 }, + "cost": { "input": 0.01, "output": 0.01 } + }, + "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, + "limit": { "context": 256000, "input": 256000, "output": 16384 }, + "cost": { "input": 0.0374, "output": 0.374 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 32768 }, + "cost": { "input": 0.25599999, "output": 0.30499999 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 16384 }, + "cost": { "input": 0.306, "output": 0.306 } + }, + "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, + "limit": { "context": 1048756, "input": 1048756, "output": 65536 }, + "cost": { "input": 0.15, "output": 0.6 } + }, + "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, + "limit": { "context": 32000, "input": 32000, "output": 16384 }, + "cost": { "input": 0.165, "output": 0.66 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 65536 }, + "cost": { "input": 0.6, "output": 2.2 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 16384 }, + "cost": { "input": 0.306, "output": 0.306 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 16384 }, + "cost": { "input": 0.306, "output": 0.306 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 16384 }, + "cost": { "input": 0.306, "output": 0.306 } + }, + "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, + "limit": { "context": 131072, "input": 131072, "output": 98304 }, + "cost": { "input": 0.306, "output": 0.306 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 16384 }, + "cost": { "input": 0.306, "output": 0.306 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 16384 }, + "cost": { "input": 0.306, "output": 0.306 } + }, + "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, + "limit": { "context": 24000, "input": 24000, "output": 8192 }, + "cost": { "input": 0.187, "output": 0.374 } + }, + "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, + "limit": { "context": 1048756, "input": 1048756, "output": 65536 }, + "cost": { "input": 0.3, "output": 2.5 } + }, + "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, + "limit": { "context": 131072, "input": 131072, "output": 8192 }, + "cost": { "input": 0.4, "output": 1.5 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 4096 }, + "cost": { "input": 7.497, "output": 7.497 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 16384 }, + "cost": { "input": 0.306, "output": 0.306 } + }, + "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, + "limit": { "context": 16384, "input": 16384, "output": 16384 }, + "cost": { "input": 5, "output": 5 } + }, + "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, + "limit": { "context": 256000, "input": 256000, "output": 32768 }, + "cost": { "input": 1.2002, "output": 6.001 } + }, + "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, + "limit": { "context": 200000, "input": 200000, "output": 32000 }, + "cost": { "input": 14.994, "output": 75.004 } + }, + "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, + "limit": { "context": 200000, "input": 200000, "output": 64000 }, + "cost": { "input": 1, "output": 5 } + }, + "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, + "limit": { "context": 1000000, "input": 1000000, "output": 131072 }, + "cost": { "input": 0.1394, "output": 1.3328 } + }, + "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, + "limit": { "context": 1048756, "input": 1048756, "output": 65536 }, + "cost": { "input": 0.3, "output": 2.5 } + }, + "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, + "limit": { "context": 16384, "input": 16384, "output": 16384 }, + "cost": { "input": 2.5, "output": 2.5 } + }, + "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, + "limit": { "context": 131072, "input": 131072, "output": 131072 }, + "cost": { "input": 5, "output": 25 } + }, + "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, + "limit": { "context": 200000, "input": 200000, "output": 32000 }, + "cost": { "input": 4.998, "output": 25.007 } + }, + "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, + "limit": { "context": 1048756, "input": 1048756, "output": 65536 }, + "cost": { "input": 2.5, "output": 10 } + }, + "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, + "limit": { "context": 200000, "input": 200000, "output": 16000 }, + "cost": { "input": 2.992, "output": 14.994 } + }, + "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, + "limit": { "context": 200000, "input": 200000, "output": 32000 }, + "cost": { "input": 14.994, "output": 75.004 } + }, + "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, + "limit": { "context": 1000000, "input": 1000000, "output": 64000 }, + "cost": { "input": 2.992, "output": 14.994 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 16384 }, + "cost": { "input": 0.306, "output": 0.306 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 65536 }, + "cost": { "input": 2.5, "output": 11 } + }, + "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, + "limit": { "context": 32000, "input": 32000, "output": 16384 }, + "cost": { "input": 0.33, "output": 1.32 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 16384 }, + "cost": { "input": 0.306, "output": 0.306 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 32768 }, + "cost": { "input": 0.1, "output": 0.2 } + }, + "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, + "limit": { "context": 1048756, "input": 1048756, "output": 65536 }, + "cost": { "input": 2.5, "output": 10 } + }, + "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, + "limit": { "context": 200000, "input": 200000, "output": 32000 }, + "cost": { "input": 14.994, "output": 75.004 } + }, + "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, + "limit": { "context": 200000, "input": 200000, "output": 64000 }, + "cost": { "input": 2.992, "output": 14.994 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 16384 }, + "cost": { "input": 0.306, "output": 0.306 } + }, + "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, + "limit": { "context": 24576, "input": 24576, "output": 8192 }, + "cost": { "input": 0.493, "output": 0.493 } + }, + "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, + "limit": { "context": 8192, "input": 8192, "output": 8192 }, + "cost": { "input": 5, "output": 5 } + }, + "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, + "limit": { "context": 16000, "input": 16000, "output": 8192 }, + "cost": { "input": 7.004, "output": 19.992 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 16384 }, + "cost": { "input": 0.306, "output": 0.306 } + }, + "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, + "limit": { "context": 1000000, "input": 1000000, "output": 64000 }, + "cost": { "input": 2.992, "output": 14.994 } + }, + "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, + "limit": { "context": 256000, "input": 256000, "output": 16384 }, + "cost": { "input": 0.799, "output": 1.445 } + }, + "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, + "limit": { "context": 200000, "input": 200000, "output": 16000 }, + "cost": { "input": 2.992, "output": 14.994 } + }, + "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, + "limit": { "context": 32767, "input": 32767, "output": 8192 }, + "cost": { "input": 3.502, "output": 10.506 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 65536 }, + "cost": { "input": 0.1, "output": 0.4 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 16384 }, + "cost": { "input": 0.306, "output": 0.306 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 16384 }, + "cost": { "input": 0.306, "output": 0.306 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 16384 }, + "cost": { "input": 0.306, "output": 0.306 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 16384 }, + "cost": { "input": 0.4, "output": 0.4 } + }, + "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, + "limit": { "context": 65536, "input": 65536, "output": 8192 }, + "cost": { "input": 0.2499, "output": 0.6494 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 16384 }, + "cost": { "input": 0.306, "output": 0.306 } + }, + "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, + "limit": { "context": 1000000, "input": 1000000, "output": 1000000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 200000, "input": 200000, "output": 32000 }, + "cost": { "input": 14.994, "output": 75.004 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 16384 }, + "cost": { "input": 0.306, "output": 0.306 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 32768 }, + "cost": { "input": 0.157, "output": 0.157 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 16384 }, + "cost": { "input": 31.46, "output": 31.46 } + }, + "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, + "limit": { "context": 1000000, "input": 1000000, "output": 8192 }, + "cost": { "input": 0.04998, "output": 0.2006 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 16384 }, + "cost": { "input": 0.306, "output": 0.306 } + }, + "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, + "limit": { "context": 200000, "input": 200000, "output": 32000 }, + "cost": { "input": 14.994, "output": 75.004 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 16384 }, + "cost": { "input": 0.306, "output": 0.306 } + }, + "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, + "limit": { "context": 200000, "input": 200000, "output": 32000 }, + "cost": { "input": 14.994, "output": 75.004 } + }, + "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, + "limit": { "context": 1048756, "input": 1048756, "output": 65536 }, + "cost": { "input": 0.1, "output": 0.4 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 16384 }, + "cost": { "input": 0.07, "output": 0.11 } + }, + "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, + "limit": { "context": 256000, "input": 256000, "output": 128000 }, + "cost": { "input": 0.782, "output": 3.893 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 65536 }, + "cost": { "input": 0.4, "output": 1.7 } + }, + "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, + "limit": { "context": 4096, "input": 4096, "output": 4096 }, + "cost": { "input": 2.5, "output": 2.5 } + }, + "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, + "limit": { "context": 200000, "input": 200000, "output": 64000 }, + "cost": { "input": 3, "output": 15 } + }, + "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, + "limit": { "context": 64000, "input": 64000, "output": 8192 }, + "cost": { "input": 0.3, "output": 0.3 } + }, + "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, + "limit": { "context": 200000, "input": 200000, "output": 100000 }, + "cost": { "input": 14.994, "output": 59.993 } + }, + "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, + "limit": { "context": 202600, "input": 202600, "output": 98304 }, + "cost": { "input": 0.306, "output": 0.306 } + }, + "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, + "limit": { "context": 200000, "input": 200000, "output": 65536 }, + "cost": { "input": 1.088, "output": 4.3996 } + }, + "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, + "limit": { "context": 245800, "output": 65536 }, + "cost": { "input": 1.3, "output": 7.8 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 16384 }, + "cost": { "input": 0.306, "output": 0.306 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 16384 }, + "cost": { "input": 0.306, "output": 0.306 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 32768 }, + "cost": { "input": 0.2, "output": 0.2 } + }, + "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, + "limit": { "context": 200000, "input": 200000, "output": 32000 }, + "cost": { "input": 14.994, "output": 75.004 } + }, + "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, + "limit": { "context": 12000, "input": 12000, "output": 4096 }, + "cost": { "input": 0.2006, "output": 0.2006 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 16384 }, + "cost": { "input": 0.306, "output": 0.306 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 16384 }, + "cost": { "input": 0.306, "output": 0.306 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 16384 }, + "cost": { "input": 0.306, "output": 0.306 } + }, + "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, + "limit": { "context": 131072, "input": 131072, "output": 131072 }, + "cost": { "input": 0.3, "output": 0.5 } + }, + "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, + "limit": { "context": 1000000, "input": 1000000, "output": 1000000 }, + "cost": { "input": 9.996, "output": 19.992 } + }, + "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, + "limit": { "context": 1000000, "input": 1000000, "output": 64000 }, + "cost": { "input": 2.992, "output": 14.994 } + }, + "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, + "limit": { "context": 200000, "input": 200000, "output": 64000 }, + "cost": { "input": 3, "output": 15 } + }, + "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, + "limit": { "context": 131072, "input": 131072, "output": 16384 }, + "cost": { "input": 0.1, "output": 2 } + }, + "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, + "limit": { "context": 1000000, "input": 1000000, "output": 4096 }, + "cost": { "input": 0.2006, "output": 0.2006 } + }, + "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, + "limit": { "context": 256000, "input": 256000, "output": 4096 }, + "cost": { "input": 1.989, "output": 7.99 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 8192 }, + "cost": { "input": 1.4, "output": 5.3 } + }, + "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, + "limit": { "context": 32767, "input": 32767, "output": 8192 }, + "cost": { "input": 0.1003, "output": 0.408 } + }, + "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, + "limit": { "context": 1000000, "input": 1000000, "output": 8192 }, + "cost": { "input": 0.0748, "output": 0.306 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 4096 }, + "cost": { "input": 9.996, "output": 30.005 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 32768 }, + "cost": { "input": 15.73, "output": 15.73 } + }, + "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, + "limit": { "context": 10000000, "input": 10000000, "output": 8192 }, + "cost": { "input": 0.1003, "output": 0.408 } + }, + "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, + "limit": { "context": 127000, "input": 127000, "output": 128000 }, + "cost": { "input": 2.006, "output": 7.9985 } + }, + "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, + "limit": { "context": 1048000, "input": 1048000, "output": 65536 }, + "cost": { "input": 0.15, "output": 3.5 } + }, + "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, + "limit": { "context": 131072, "input": 131072, "output": 65536 }, + "cost": { "input": 0.306, "output": 0.306 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 16384 }, + "cost": { "input": 0.306, "output": 0.306 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 32768 }, + "cost": { "input": 2.42, "output": 2.42 } + }, + "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, + "limit": { "context": 32000, "input": 32000, "output": 8192 }, + "cost": { "input": 0.459, "output": 1.377 } + }, + "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, + "limit": { "context": 991800, "output": 65536 }, + "cost": { "input": 0.19, "output": 1.16 } + }, + "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, + "limit": { "context": 8000, "input": 8000, "output": 4096 }, + "cost": { "input": 2.499, "output": 9.996 } + }, + "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, + "limit": { "context": 8000, "input": 8000, "output": 4096 }, + "cost": { "input": 2.499, "output": 9.996 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 8192 }, + "cost": { "input": 0.15, "output": 0.15 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 32768 }, + "cost": { "input": 0.17, "output": 0.68 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 65535 }, + "cost": { "input": 0.3, "output": 1.9 } + }, + "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, + "limit": { "context": 131000, "input": 131000, "output": 65535 }, + "cost": { "input": 0.85, "output": 3.3 } + }, + "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, + "limit": { "context": 258048, "input": 258048, "output": 65536 }, + "cost": { "input": 0.6, "output": 3.6 } + }, + "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, + "limit": { "context": 203000, "input": 203000, "output": 65535 }, + "cost": { "input": 1.2, "output": 3.5 } + }, + "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, + "limit": { "context": 65536, "input": 65536, "output": 8192 }, + "cost": { "input": 0.7, "output": 0.7 } + }, + "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, + "limit": { "context": 200000, "input": 200000, "output": 131072 }, + "cost": { "input": 0.3, "output": 1.2 } + }, + "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, + "limit": { "context": 262000, "input": 262000, "output": 32768 }, + "cost": { "input": 0.15, "output": 0.44999999999999996 } + }, + "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, + "limit": { "context": 164000, "input": 164000, "output": 8192 }, + "cost": { "input": 1, "output": 2.5 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 16384 }, + "cost": { "input": 2, "output": 2 } + }, + "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, + "limit": { "context": 203000, "input": 203000, "output": 65535 }, + "cost": { "input": 0.75, "output": 2 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 65535 }, + "cost": { "input": 0.3, "output": 1.9 } + }, + "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, + "limit": { "context": 131072, "input": 131072, "output": 8192 }, + "cost": { "input": 0.2, "output": 0.8 } + }, + "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, + "limit": { "context": 164000, "input": 164000, "output": 65536 }, + "cost": { "input": 0.5, "output": 1 } + }, + "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, + "limit": { "context": 131072, "input": 131072, "output": 8192 }, + "cost": { "input": 0.2, "output": 0.8 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 32768 }, + "cost": { "input": 1.5, "output": 2 } + }, + "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, + "limit": { "context": 203000, "input": 203000, "output": 65535 }, + "cost": { "input": 0.15, "output": 0.5 } + }, + "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, + "limit": { "context": 131072, "input": 131072, "output": 16384 }, + "cost": { "input": 2, "output": 2 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 65536 }, + "cost": { "input": 2, "output": 2 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 65535 }, + "cost": { "input": 2, "output": 2 } + }, + "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, + "limit": { "context": 16384, "input": 16384, "output": 16384 }, + "cost": { "input": 0.49299999999999994, "output": 0.49299999999999994 } + }, + "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, + "limit": { "context": 163000, "input": 163000, "output": 65536 }, + "cost": { "input": 0.27999999999999997, "output": 0.42000000000000004 } + }, + "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, + "limit": { "context": 160000, "input": 160000, "output": 16384 }, + "cost": { "input": 1, "output": 2.5 } + }, + "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, + "limit": { "context": 163000, "input": 163000, "output": 65536 }, + "cost": { "input": 0.27999999999999997, "output": 0.42000000000000004 } + }, + "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, + "limit": { "context": 163000, "input": 163000, "output": 65536 }, + "cost": { "input": 0.27999999999999997, "output": 0.42000000000000004 } + }, + "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, + "limit": { "context": 16384, "input": 16384, "output": 32768 }, + "cost": { "input": 0.49299999999999994, "output": 0.49299999999999994 } + }, + "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, + "limit": { "context": 16384, "input": 16384, "output": 8192 }, + "cost": { "input": 2.006, "output": 2.006 } + }, + "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, + "limit": { "context": 16384, "input": 16384, "output": 8192 }, + "cost": { "input": 1, "output": 1.5 } + }, + "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, + "limit": { "context": 16384, "input": 16384, "output": 16384 }, + "cost": { "input": 0.49299999999999994, "output": 0.49299999999999994 } + }, + "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, + "limit": { "context": 16384, "input": 16384, "output": 16384 }, + "cost": { "input": 0.49299999999999994, "output": 0.49299999999999994 } + }, + "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, + "limit": { "context": 16384, "input": 16384, "output": 16384 }, + "cost": { "input": 0.49299999999999994, "output": 0.49299999999999994 } + }, + "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, + "limit": { "context": 16384, "input": 16384, "output": 16384 }, + "cost": { "input": 0.69989, "output": 0.69989 } + }, + "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, + "limit": { "context": 16384, "input": 16384, "output": 16384 }, + "cost": { "input": 0.49299999999999994, "output": 0.49299999999999994 } + }, + "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, + "limit": { "context": 16384, "input": 16384, "output": 16384 }, + "cost": { "input": 0.49299999999999994, "output": 0.49299999999999994 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 4000 }, + "cost": { "input": 0.3, "output": 1.2 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 65536 }, + "cost": { "input": 0.1, "output": 0.4 } + }, + "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, + "limit": { "context": 131072, "input": 131072, "output": 8192 }, + "cost": { "input": 0.045000000000000005, "output": 0.15 } + }, + "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, + "limit": { "context": 131072, "input": 131072, "output": 8192 }, + "cost": { "input": 0.25, "output": 1 } + }, + "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, + "limit": { "context": 8192, "input": 8192, "output": 4096 }, + "cost": { "input": 0.306, "output": 0.306 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 32768 }, + "cost": { "input": 1.7999999999999998, "output": 1.7999999999999998 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 16384 }, + "cost": { "input": 1.25, "output": 1.25 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 16384 }, + "cost": { "input": 2.5, "output": 2.5 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 8192 }, + "cost": { "input": 0.3, "output": 1.2 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 32768 }, + "cost": { "input": 0.3, "output": 0.3 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 8192 }, + "cost": { "input": 0.2006, "output": 0.39949999999999997 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 8192 }, + "cost": { "input": 0.3, "output": 1.2 } + }, + "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, + "limit": { "context": 65536, "input": 65536, "output": 8192 }, + "cost": { "input": 0.408, "output": 0.408 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 8192 }, + "cost": { "input": 0.2006, "output": 0.39949999999999997 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 8192 }, + "cost": { "input": 0.3, "output": 0.3 } + }, + "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, + "limit": { "context": 16384, "input": 16384, "output": 32768 }, + "cost": { "input": 0.3, "output": 0.3 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 8192 }, + "cost": { "input": 0.3, "output": 0.3 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 8192 }, + "cost": { "input": 0.27999999999999997, "output": 0.42000000000000004 } + }, + "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, + "limit": { "context": 16384, "input": 16384, "output": 8192 }, + "cost": { "input": 0.49299999999999994, "output": 0.49299999999999994 } + }, + "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, + "limit": { "context": 16384, "input": 16384, "output": 8192 }, + "cost": { "input": 0.49299999999999994, "output": 0.49299999999999994 } + }, + "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, + "limit": { "context": 16384, "input": 16384, "output": 8192 }, + "cost": { "input": 2.006, "output": 2.992 } + }, + "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, + "limit": { "context": 16384, "input": 16384, "output": 8192 }, + "cost": { "input": 2.006, "output": 2.992 } + }, + "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, + "limit": { "context": 16384, "input": 16384, "output": 32768 }, + "cost": { "input": 0.5, "output": 0.5 } + }, + "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, + "limit": { "context": 16384, "input": 16384, "output": 16384 }, + "cost": { "input": 0.7, "output": 0.95 } + }, + "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, + "limit": { "context": 6144, "input": 6144, "output": 4096 }, + "cost": { "input": 0.7989999999999999, "output": 1.2069999999999999 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 8192 }, + "cost": { "input": 0.49299999999999994, "output": 0.49299999999999994 } + }, + "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, + "limit": { "context": 36864, "input": 36864, "output": 36864 }, + "cost": { "input": 0.2, "output": 0.2 } + }, + "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, + "limit": { "context": 65536, "input": 65536, "output": 8192 }, + "cost": { "input": 0.2, "output": 0.6 } + }, + "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, + "limit": { "context": 65536, "input": 65536, "output": 8192 }, + "cost": { "input": 0.15, "output": 0.5 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 8192 }, + "cost": { "input": 0.3, "output": 0.44999999999999996 } + }, + "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, + "limit": { "context": 256000, "input": 256000, "output": 256000 }, + "cost": { "input": 0.2, "output": 0.5 } + }, + "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, + "limit": { "context": 256000, "input": 256000, "output": 256000 }, + "cost": { "input": 0.2, "output": 0.5 } + }, + "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, + "limit": { "context": 200000, "input": 200000, "output": 128000 }, + "cost": { "input": 0.15, "output": 0.8 } + }, + "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, + "limit": { "context": 200000, "input": 200000, "output": 128000 }, + "cost": { "input": 0.3, "output": 2.55 } + }, + "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, + "limit": { "context": 200000, "input": 200000, "output": 131072 }, + "cost": { "input": 0.3, "output": 2.55 } + }, + "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, + "limit": { "context": 200000, "input": 200000, "output": 131072 }, + "cost": { "input": 0.3, "output": 2.55 } + }, + "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, + "limit": { "context": 200000, "input": 200000, "output": 128000 }, + "cost": { "input": 0.3, "output": 2.55 } + }, + "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, + "limit": { "context": 200000, "input": 200000, "output": 128000 }, + "cost": { "input": 0.07, "output": 0.4 } + }, + "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, + "limit": { "context": 32000, "input": 32000, "output": 8192 }, + "cost": { "input": 0.5, "output": 0.5 } + }, + "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, + "limit": { "context": 8192, "input": 8192, "output": 8192 }, + "cost": { "input": 0.44, "output": 0.44 } + }, + "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, + "limit": { "context": 16000, "input": 16000, "output": 8192 }, + "cost": { "input": 4.505, "output": 4.505 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 32768 }, + "cost": { "input": 0.27, "output": 0.27 } + }, + "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, + "limit": { "context": 32000, "input": 32000, "output": 32768 }, + "cost": { "input": 0.1989, "output": 0.595 } + }, + "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, + "limit": { "context": 262144, "input": 262144, "output": 256000 }, + "cost": { "input": 1, "output": 3 } + }, + "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, + "limit": { "context": 262144, "input": 262144, "output": 65536 }, + "cost": { "input": 0.4, "output": 1.4 } + }, + "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, + "limit": { "context": 256000, "input": 256000, "output": 32768 }, + "cost": { "input": 0.3, "output": 0.8999999999999999 } + }, + "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, + "limit": { "context": 262144, "input": 262144, "output": 32768 }, + "cost": { "input": 0.1, "output": 0.4 } + }, + "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, + "limit": { "context": 32000, "input": 32000, "output": 8192 }, + "cost": { "input": 0.25499999999999995, "output": 0.25499999999999995 } + }, + "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, + "limit": { "context": 262144, "input": 262144, "output": 32768 }, + "cost": { "input": 0.15, "output": 0.15 } + }, + "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, + "limit": { "context": 65536, "input": 65536, "output": 32768 }, + "cost": { "input": 0.8999999999999999, "output": 0.8999999999999999 } + }, + "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, + "limit": { "context": 131072, "input": 131072, "output": 32768 }, + "cost": { "input": 0.4, "output": 2 } + }, + "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, + "limit": { "context": 131072, "input": 131072, "output": 32768 }, + "cost": { "input": 0.1, "output": 0.1 } + }, + "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, + "limit": { "context": 16384, "input": 16384, "output": 8192 }, + "cost": { "input": 0.1003, "output": 0.1207 } + }, + "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, + "limit": { "context": 131072, "input": 131072, "output": 32768 }, + "cost": { "input": 0.4, "output": 2 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 8192 }, + "cost": { "input": 0.0544, "output": 0.0544 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 8192 }, + "cost": { + "input": 0.060000000000000005, + "output": 0.060000000000000005 + } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 32768 }, + "cost": { "input": 0.1, "output": 0.3 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 256000 }, + "cost": { "input": 2.006, "output": 6.001 } + }, + "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, + "limit": { "context": 262144, "input": 262144, "output": 32768 }, + "cost": { "input": 0.2, "output": 0.2 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 4096 }, + "cost": { "input": 0.5, "output": 0.5 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 16384 }, + "cost": { "input": 0.5, "output": 0.5 } + }, + "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, + "limit": { "context": 131072, "input": 131072, "output": 16384 }, + "cost": { "input": 0.05, "output": 0.23 } + }, + "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, + "limit": { "context": 328000, "input": 328000, "output": 65536 }, + "cost": { "input": 0.085, "output": 0.46 } + }, + "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, + "limit": { "context": 1048576, "input": 1048576, "output": 65536 }, + "cost": { "input": 0.18000000000000002, "output": 0.8 } + }, + "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, + "limit": { "context": 131072, "input": 131072, "output": 16384 }, + "cost": { "input": 0.9009999999999999, "output": 0.9009999999999999 } + }, + "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, + "limit": { "context": 131072, "input": 131072, "output": 8192 }, + "cost": { "input": 0.0306, "output": 0.0493 } + }, + "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, + "limit": { "context": 131072, "input": 131072, "output": 16384 }, + "cost": { "input": 0.0544, "output": 0.0544 } + }, + "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, + "limit": { "context": 16384, "input": 16384, "output": 8192 }, + "cost": { "input": 0.49299999999999994, "output": 0.49299999999999994 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 131072 }, + "cost": { "input": 0.1, "output": 2 } + }, + "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, + "limit": { "context": 4000, "input": 4000, "output": 4096 }, + "cost": { "input": 0.1003, "output": 0.1003 } + }, + "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, + "limit": { "context": 2000000, "input": 2000000, "output": 131072 }, + "cost": { "input": 0.2, "output": 0.5 } + }, + "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, + "limit": { "context": 256000, "input": 256000, "output": 131072 }, + "cost": { "input": 3, "output": 15 } + }, + "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, + "limit": { "context": 2000000, "input": 2000000, "output": 131072 }, + "cost": { "input": 0.2, "output": 0.5 } + }, + "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, + "limit": { "context": 256000, "input": 256000, "output": 131072 }, + "cost": { "input": 0.2, "output": 1.5 } + }, + "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, + "limit": { "context": 2000000, "input": 2000000, "output": 131072 }, + "cost": { "input": 0.2, "output": 0.5 } + }, + "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, + "limit": { "context": 2000000, "input": 2000000, "output": 131072 }, + "cost": { "input": 0.2, "output": 0.5 } + }, + "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, + "limit": { "context": 8192, "input": 8192, "output": 8192 }, + "cost": { "input": 10, "output": 20 } + }, + "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, + "limit": { "context": 65536, "input": 65536, "output": 8192 }, + "cost": { "input": 0.49299999999999994, "output": 0.49299999999999994 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 8192 }, + "cost": { "input": 0.3, "output": 0.3 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 4096 }, + "cost": { "input": 0.476, "output": 1.428 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 4096 }, + "cost": { "input": 2.856, "output": 14.246 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 131072 }, + "cost": { "input": 0.2, "output": 0.4 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 16384 }, + "cost": { "input": 0.4, "output": 0.8 } + }, + "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, + "limit": { "context": 256000, "input": 256000, "output": 262144 }, + "cost": { "input": 0.17, "output": 0.68 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 16384 }, + "cost": { "input": 0.17, "output": 0.68 } + }, + "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, + "limit": { "context": 16384, "input": 16384, "output": 8192 }, + "cost": { "input": 0.357, "output": 0.408 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 16384 }, + "cost": { "input": 0.15, "output": 0.15 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 16384 }, + "cost": { "input": 0.05, "output": 0.25 } + }, + "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, + "limit": { "context": 65536, "input": 65536, "output": 16384 }, + "cost": { "input": 0.31, "output": 0.31 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 32768 }, + "cost": { "input": 0.1003, "output": 0.1207 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 32768 }, + "cost": { "input": 0.1003, "output": 0.1207 } + }, + "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, + "limit": { "context": 16384, "input": 16384, "output": 32768 }, + "cost": { "input": 0.2006, "output": 0.2414 } + }, + "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, + "limit": { "context": 131072, "input": 131072, "output": 16384 }, + "cost": { "input": 0.31, "output": 0.31 } + }, + "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, + "limit": { "context": 16384, "input": 16384, "output": 8192 }, + "cost": { "input": 0.408, "output": 0.595 } + }, + "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, + "limit": { "context": 16384, "input": 16384, "output": 32768 }, + "cost": { "input": 0.1003, "output": 0.1207 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 8192 }, + "cost": { "input": 0.49299999999999994, "output": 0.49299999999999994 } + }, + "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, + "limit": { "context": 16384, "input": 16384, "output": 32768 }, + "cost": { "input": 0.1003, "output": 0.1207 } + }, + "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, + "limit": { "context": 64000, "input": 64000, "output": 32768 }, + "cost": { "input": 0.49299999999999994, "output": 0.49299999999999994 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 65536 }, + "cost": { "input": 0.2, "output": 0.7 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 65536 }, + "cost": { "input": 0.2, "output": 0.7 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 65536 }, + "cost": { "input": 0.25, "output": 0.7 } + }, + "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, + "limit": { "context": 163840, "input": 163840, "output": 65536 }, + "cost": { "input": 0.27999999999999997, "output": 0.42000000000000004 } + }, + "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, + "limit": { "context": 163840, "input": 163840, "output": 65536 }, + "cost": { "input": 0.27999999999999997, "output": 0.42000000000000004 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 163840 }, + "cost": { "input": 0.4, "output": 1.7 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 65536 }, + "cost": { "input": 0.25, "output": 0.7 } + }, + "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, + "limit": { "context": 400000, "input": 400000, "output": 128000 }, + "cost": { "input": 2.5, "output": 20 } + }, + "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, + "limit": { "context": 400000, "input": 400000, "output": 16384 }, + "cost": { "input": 1.75, "output": 14 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 16384 }, + "cost": { "input": 0.088, "output": 0.35 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 16384 }, + "cost": { "input": 4.998, "output": 14.993999999999998 } + }, + "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, + "limit": { "context": 400000, "input": 400000, "output": 128000 }, + "cost": { "input": 21, "output": 168 } + }, + "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, + "limit": { "context": 400000, "input": 400000, "output": 128000 }, + "cost": { "input": 0.25, "output": 2 } + }, + "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, + "limit": { "context": 400000, "input": 400000, "output": 128000 }, + "cost": { "input": 0.05, "output": 0.4 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 4096 }, + "cost": { "input": 10, "output": 30 } + }, + "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, + "limit": { "context": 400000, "input": 400000, "output": 128000 }, + "cost": { "input": 1.75, "output": 14 } + }, + "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, + "limit": { "context": 200000, "input": 200000, "output": 100000 }, + "cost": { "input": 0.64, "output": 2.588 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 16384 }, + "cost": { "input": 0.1496, "output": 0.595 } + }, + "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, + "limit": { "context": 200000, "input": 200000, "output": 100000 }, + "cost": { "input": 9.996, "output": 19.992 } + }, + "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, + "limit": { "context": 400000, "input": 400000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10 } + }, + "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, + "limit": { "context": 200000, "input": 200000, "output": 100000 }, + "cost": { "input": 1.1, "output": 4.4 } + }, + "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, + "limit": { "context": 400000, "input": 400000, "output": 128000 }, + "cost": { "input": 1.75, "output": 14 } + }, + "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, + "limit": { "context": 400000, "input": 400000, "output": 128000 }, + "cost": { "input": 0.25, "output": 2 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 32768 }, + "cost": { "input": 14.993999999999998, "output": 59.993 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 16384 }, + "cost": { "input": 2.499, "output": 9.996 } + }, + "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, + "limit": { "context": 400000, "input": 400000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10 } + }, + "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, + "limit": { "context": 200000, "input": 200000, "output": 100000 }, + "cost": { "input": 14.993999999999998, "output": 59.993 } + }, + "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, + "limit": { "context": 16385, "input": 16385, "output": 4096 }, + "cost": { "input": 0.5, "output": 1.5 } + }, + "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, + "limit": { "context": 200000, "input": 200000, "output": 100000 }, + "cost": { "input": 9.996, "output": 19.992 } + }, + "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, + "limit": { "context": 200000, "input": 200000, "output": 100000 }, + "cost": { "input": 1.1, "output": 4.4 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 4096 }, + "cost": { "input": 9.996, "output": 30.004999999999995 } + }, + "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, + "limit": { "context": 200000, "input": 200000, "output": 100000 }, + "cost": { "input": 150, "output": 600 } + }, + "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, + "limit": { "context": 256000, "input": 256000, "output": 32768 }, + "cost": { "input": 9.996, "output": 19.992 } + }, + "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, + "limit": { "context": 400000, "input": 400000, "output": 16384 }, + "cost": { "input": 1.25, "output": 10 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 16384 }, + "cost": { "input": 1.47, "output": 5.88 } + }, + "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, + "limit": { "context": 1047576, "input": 1047576, "output": 32768 }, + "cost": { "input": 0.1, "output": 0.4 } + }, + "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, + "limit": { "context": 200000, "input": 200000, "output": 100000 }, + "cost": { "input": 1.1, "output": 4.4 } + }, + "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, + "limit": { "context": 200000, "input": 200000, "output": 100000 }, + "cost": { "input": 2, "output": 8 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 16384 }, + "cost": { "input": 0.04, "output": 0.15 } + }, + "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, + "limit": { "context": 400000, "input": 400000, "output": 128000 }, + "cost": { "input": 15, "output": 120 } + }, + "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, + "limit": { "context": 1000000, "input": 1000000, "output": 32768 }, + "cost": { "input": 1.25, "output": 10 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 16384 }, + "cost": { "input": 2.499, "output": 9.996 } + }, + "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, + "limit": { "context": 200000, "input": 200000, "output": 100000 }, + "cost": { "input": 9.996, "output": 19.992 } + }, + "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, + "limit": { "context": 400000, "input": 400000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 16384 }, + "cost": { "input": 0.075, "output": 0.3 } + }, + "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, + "limit": { "context": 200000, "input": 200000, "output": 100000 }, + "cost": { "input": 9.996, "output": 19.992 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 16384 }, + "cost": { "input": 0.05, "output": 0.25 } + }, + "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, + "limit": { "context": 400000, "input": 400000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10 } + }, + "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, + "limit": { "context": 1047576, "input": 1047576, "output": 32768 }, + "cost": { "input": 2, "output": 8 } + }, + "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, + "limit": { "context": 1047576, "input": 1047576, "output": 32768 }, + "cost": { "input": 0.4, "output": 1.6 } + }, + "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, + "limit": { "context": 400000, "input": 400000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 16384 }, + "cost": { "input": 2.5, "output": 10 } + }, + "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, + "limit": { "context": 16384, "input": 16384, "output": 8192 }, + "cost": { "input": 0.49299999999999994, "output": 0.49299999999999994 } + }, + "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, + "limit": { "context": 300000, "input": 300000, "output": 5120 }, + "cost": { "input": 0.0595, "output": 0.238 } + }, + "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, + "limit": { "context": 300000, "input": 300000, "output": 32000 }, + "cost": { "input": 0.7989999999999999, "output": 3.1959999999999997 } + }, + "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, + "limit": { "context": 1000000, "input": 1000000, "output": 65535 }, + "cost": { "input": 0.5099999999999999, "output": 4.25 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 5120 }, + "cost": { "input": 0.0357, "output": 0.1394 } + }, + "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, + "limit": { "context": 20480, "input": 20480, "output": 16384 }, + "cost": { "input": 0.49299999999999994, "output": 0.49299999999999994 } + }, + "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, + "limit": { "context": 20480, "input": 20480, "output": 16384 }, + "cost": { "input": 0.306, "output": 0.357 } + }, + "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, + "limit": { "context": 16384, "input": 16384, "output": 16384 }, + "cost": { "input": 0.49299999999999994, "output": 0.49299999999999994 } + }, + "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, + "limit": { "context": 16384, "input": 16384, "output": 8192 }, + "cost": { "input": 0.2006, "output": 0.2006 } + }, + "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, + "limit": { "context": 16384, "input": 16384, "output": 16384 }, + "cost": { "input": 0.700000007, "output": 0.700000007 } + }, + "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, + "limit": { "context": 200000, "input": 200000, "output": 65535 }, + "cost": { "input": 0.4, "output": 1.5 } + }, + "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, + "limit": { "context": 64000, "input": 64000, "output": 96000 }, + "cost": { "input": 0.6, "output": 1.7999999999999998 } + }, + "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, + "limit": { "context": 200000, "input": 200000, "output": 65535 }, + "cost": { "input": 0.4, "output": 1.5 } + }, + "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, + "limit": { "context": 64000, "input": 64000, "output": 96000 }, + "cost": { "input": 0.6, "output": 1.7999999999999998 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 16384 }, + "cost": { "input": 0.13999999999999999, "output": 0.5599999999999999 } + }, + "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, + "limit": { "context": 131072, "input": 131072, "output": 16384 }, + "cost": { "input": 0.35, "output": 1.15 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 8192 }, + "cost": { "input": 0.3, "output": 0.6 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 8192 }, + "cost": { "input": 0.2, "output": 0.4 } + }, + "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, + "limit": { "context": 16384, "input": 16384, "output": 8192 }, + "cost": { "input": 0.25499999999999995, "output": 0.49299999999999994 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 32768 }, + "cost": { "input": 0.15, "output": 0.7 } + }, + "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, + "limit": { "context": 8192, "input": 8192, "output": 8192 }, + "cost": { "input": 0.02, "output": 0.16 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 32768 }, + "cost": { "input": 0.060000000000000005, "output": 0.5 } + }, + "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, + "limit": { "context": 16384, "input": 16384, "output": 16384 }, + "cost": { "input": 0.02, "output": 0.16 } + }, + "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, + "limit": { "context": 204800, "input": 204800, "output": 131072 }, + "cost": { "input": 0.3, "output": 1.2 } + }, + "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, + "limit": { "context": 1000192, "input": 1000192, "output": 16384 }, + "cost": { "input": 0.1394, "output": 1.1219999999999999 } + }, + "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, + "limit": { "context": 200000, "input": 200000, "output": 131072 }, + "cost": { "input": 0.33, "output": 1.32 } + }, + "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, + "limit": { "context": 65532, "input": 65532, "output": 2048 }, + "cost": { "input": 0.30200000000000005, "output": 1.2069999999999999 } + }, + "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, + "limit": { "context": 204800, "input": 204800, "output": 131072 }, + "cost": { "input": 0.3, "output": 1.2 } + }, + "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, + "limit": { "context": 262144, "output": 16384 }, + "cost": { "input": 0.29, "output": 1.74 } + }, + "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, + "limit": { "context": 258048, "input": 258048, "output": 65536 }, + "cost": { "input": 0.6, "output": 3.6 } + }, + "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, + "limit": { "context": 262144, "output": 16384 }, + "cost": { "input": 0.29, "output": 1.74 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 8192 }, + "cost": { "input": 0.1003, "output": 0.1003 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 131072 }, + "cost": { "input": 0.272, "output": 0.272 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 8192 }, + "cost": { "input": 0.2006, "output": 0.2006 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 96000 }, + "cost": { "input": 0.2992, "output": 0.2992 } + }, + "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, + "limit": { "context": 32000, "input": 32000, "output": 8000 }, + "cost": { "input": 0.2, "output": 0.2 } + }, + "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, + "limit": { "context": 32000, "input": 32000, "output": 8000 }, + "cost": { "input": 0.2, "output": 0.2 } + }, + "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, + "limit": { "context": 32000, "input": 32000, "output": 65536 }, + "cost": { "input": 0.2, "output": 0.2 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 65536 }, + "cost": { "input": 0.2, "output": 0.2 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 65536 }, + "cost": { "input": 0.2, "output": 0.2 } + }, + "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, + "limit": { "context": 1048756, "input": 1048756, "output": 65536 }, + "cost": { "input": 0.5, "output": 3 } + }, + "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, + "limit": { "context": 2000000, "input": 2000000, "output": 8192 }, + "cost": { "input": 0.0748, "output": 0.306 } + }, + "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, + "limit": { "context": 1048756, "input": 1048756, "output": 65536 }, + "cost": { "input": 0.5, "output": 3 } + }, + "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, + "limit": { "context": 256000, "input": 256000, "output": 65536 }, + "cost": { "input": 0.3, "output": 1.9 } + }, + "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, + "limit": { "context": 256000, "input": 256000, "output": 8192 }, + "cost": { "input": 0.1, "output": 2 } + }, + "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, + "limit": { "context": 256000, "input": 256000, "output": 16384 }, + "cost": { "input": 0.6, "output": 2.5 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 8192 }, + "cost": { "input": 0.1, "output": 2 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 131072 }, + "cost": { "input": 0.4, "output": 0.4 } + }, + "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, + "limit": { "context": 256000, "input": 256000, "output": 16384 }, + "cost": { "input": 1.15, "output": 8 } + }, + "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, + "limit": { "context": 256000, "output": 65536 }, + "cost": { "input": 0.53, "output": 2.73 } + }, + "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, + "limit": { "context": 256000, "output": 65536 }, + "cost": { "input": 0.53, "output": 2.73 } + }, + "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, + "limit": { "context": 256000, "input": 256000, "output": 262144 }, + "cost": { "input": 0.4, "output": 2 } + }, + "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, + "limit": { "context": 256000, "input": 256000, "output": 262144 }, + "cost": { "input": 0.3, "output": 1.2 } + }, + "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, + "limit": { "context": 256000, "input": 256000, "output": 65536 }, + "cost": { "input": 0.3, "output": 1.9 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 40960 }, + "cost": { "input": 0.13999999999999999, "output": 0.6 } + }, + "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, + "limit": { "context": 16384, "input": 16384, "output": 16384 }, + "cost": { "input": 0.49299999999999994, "output": 0.49299999999999994 } + }, + "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, + "limit": { "context": 65536, "input": 65536, "output": 8192 }, + "cost": { "input": 3.995, "output": 7.99 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 16384 }, + "cost": { "input": 0.2006, "output": 0.2006 } + }, + "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, + "limit": { "context": 131072, "input": 131072, "output": 8192 }, + "cost": { "input": 0.7989999999999999, "output": 1.394 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 65536 }, + "cost": { "input": 0.08, "output": 0.24000000000000002 } + }, + "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, + "limit": { "context": 1000000, "input": 1000000, "output": 131072 }, + "cost": { "input": 0.6052, "output": 2.4225000000000003 } + }, + "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, + "limit": { "context": 1000000, "input": 1000000, "output": 128000 }, + "cost": { "input": 4.998, "output": 25.007 } + }, + "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, + "limit": { "context": 1000000, "input": 1000000, "output": 128000 }, + "cost": { "input": 4.998, "output": 25.007 } + }, + "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, + "limit": { "context": 1000000, "input": 1000000, "output": 128000 }, + "cost": { "input": 2.992, "output": 14.993999999999998 } + }, + "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, + "limit": { "context": 1000000, "input": 1000000, "output": 128000 }, + "cost": { "input": 4.998, "output": 25.007 } + }, + "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, + "limit": { "context": 1000000, "input": 1000000, "output": 128000 }, + "cost": { "input": 4.998, "output": 25.007 } + }, + "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, + "limit": { "context": 1000000, "input": 1000000, "output": 128000 }, + "cost": { "input": 2.992, "output": 14.993999999999998 } + }, + "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, + "limit": { "context": 1000000, "input": 1000000, "output": 128000 }, + "cost": { "input": 4.998, "output": 25.007 } + }, + "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, + "limit": { "context": 16384, "input": 16384, "output": 8192 }, + "cost": { "input": 0.49299999999999994, "output": 0.49299999999999994 } + }, + "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, + "limit": { "context": 16384, "input": 16384, "output": 16384 }, + "cost": { "input": 2.006, "output": 2.006 } + }, + "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, + "limit": { "context": 16384, "input": 16384, "output": 8192 }, + "cost": { "input": 0.7989999999999999, "output": 0.7989999999999999 } + }, + "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, + "limit": { "context": 16384, "input": 16384, "output": 16384 }, + "cost": { "input": 2.006, "output": 2.006 } + }, + "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, + "limit": { "context": 16384, "input": 16384, "output": 8192 }, + "cost": { "input": 0.7989999999999999, "output": 0.7989999999999999 } + }, + "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, + "limit": { "context": 16384, "input": 16384, "output": 8192 }, + "cost": { "input": 1.4, "output": 1.4 } + }, + "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, + "limit": { "context": 16384, "input": 16384, "output": 8192 }, + "cost": { "input": 0.7, "output": 0.7 } + }, + "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, + "limit": { "context": 16384, "input": 16384, "output": 16384 }, + "cost": { "input": 0.7, "output": 0.7 } + }, + "huihui-ai/Qwen2.5-32B-Instruct-abliterated": { + "id": "huihui-ai/Qwen2.5-32B-Instruct-abliterated", + "name": "Qwen 2.5 32B Abliterated", + "family": "qwen", + "attachment": false, + "reasoning": false, + "tool_call": false, + "structured_output": false, + "release_date": "2025-01-06", + "last_updated": "2025-01-06", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": false, + "limit": { "context": 32768, "input": 32768, "output": 8192 }, + "cost": { "input": 0.7, "output": 0.7 } + }, + "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, + "limit": { "context": 16384, "input": 16384, "output": 16384 }, + "cost": { "input": 0.7, "output": 0.7 } + }, + "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, + "limit": { "context": 256000, "input": 256000, "output": 32768 }, + "cost": { "input": 0.102, "output": 0.306 } + }, + "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, + "limit": { "context": 256000, "input": 256000, "output": 32768 }, + "cost": { "input": 0.102, "output": 0.306 } + }, + "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, + "limit": { "context": 256000, "input": 256000, "output": 32768 }, + "cost": { "input": 0.102, "output": 0.306 } + }, + "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, + "limit": { "context": 256000, "input": 256000, "output": 32768 }, + "cost": { "input": 0.102, "output": 0.306 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 8192 }, + "cost": { "input": 0.31, "output": 0.31 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 65536 }, + "cost": { "input": 0.3, "output": 1.2 } + }, + "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, + "limit": { "context": 16384, "input": 16384, "output": 8192 }, + "cost": { "input": 0.49299999999999994, "output": 0.49299999999999994 } + }, + "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, + "limit": { "context": 8192, "input": 8192, "output": 8192 }, + "cost": { "input": 0.7, "output": 0.7 } + } + } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { "input": 5, "output": 25 } + }, + "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, + "limit": { "context": 262144, "output": 32768 }, + "cost": { "input": 0.6, "output": 3 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 0.25, + "output": 1.5, + "cache_read": 0.025, + "cache_write": 1 + } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { "input": 3, "output": 15 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { "input": 2, "output": 12 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.75, "output": 14 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { "input": 0.5, "output": 3 } + }, + "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, + "limit": { "context": 128000, "output": 32768 }, + "cost": { "input": 0.59, "output": 0.79 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 0.25, "output": 2 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 0.05, "output": 0.4 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 1.75, "output": 14 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { "input": 3, "output": 15 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { "input": 1.25, "output": 10 } + }, + "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, + "limit": { "context": 2000000, "output": 16384 }, + "cost": { "input": 0.2, "output": 0.5 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.75, "output": 14 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 20, "output": 40 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.15, "output": 0.6 } + }, + "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, + "limit": { "context": 131072, "output": 16384 }, + "cost": { "input": 1.2, "output": 6 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 1.1, "output": 4.4 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 1.75, "output": 14 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { "input": 0.3, "output": 2.5 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.75, "output": 14 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 1.75, "output": 14 } + }, + "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, + "limit": { "context": 256000, "output": 16384 }, + "cost": { "input": 0.2, "output": 1.5 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 1.1, "output": 4.4 } + }, + "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, + "limit": { "context": 256000, "output": 16384 }, + "cost": { "input": 3, "output": 15 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 3, "output": 15 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0.79, "output": 0.79 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10 } + }, + "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, + "limit": { "context": 200000, "output": 32000 }, + "cost": { "input": 15, "output": 75 } + }, + "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, + "limit": { "context": 1050000, "input": 922000, "output": 128000 }, + "cost": { "input": 2.5, "output": 15 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { "input": 1, "output": 5 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { "input": 3, "output": 15 } + }, + "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, + "limit": { "context": 256000, "output": 8192 }, + "cost": { "input": 0.15, "output": 8 } + }, + "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, + "limit": { "context": 200000, "output": 128000 }, + "cost": { "input": 5, "output": 25 } + }, + "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, + "limit": { "context": 1047576, "output": 32768 }, + "cost": { "input": 0.1, "output": 0.4 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { "input": 3, "output": 15 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 2, "output": 8 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10 } + }, + "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, + "limit": { "context": 200000, "output": 32000 }, + "cost": { "input": 15, "output": 75 } + }, + "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, + "limit": { "context": 1047576, "output": 32768 }, + "cost": { "input": 2, "output": 8 } + }, + "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, + "limit": { "context": 1047576, "output": 32768 }, + "cost": { "input": 0.4, "output": 1.6 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 2.5, "output": 10 } + }, + "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, + "limit": { "context": 2000000, "output": 16384 }, + "cost": { "input": 0.2, "output": 0.5 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0.55, "output": 1.66 } + }, + "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, + "limit": { "context": 32768, "output": 32768 }, + "cost": { "input": 0.4, "output": 0.4 } + }, + "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, + "limit": { "context": 262144, "output": 8192 }, + "cost": { "input": 0.13, "output": 0.6 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0.09, "output": 0.29 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.29, "output": 1.2 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0.11, "output": 0.38 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0.6, "output": 2.2 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 1, "output": 3.2 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0.6, "output": 2.2 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0.6, "output": 2.2 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 3.5, "output": 3.5 } + }, + "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, + "limit": { "context": 1000000, "output": 32768 }, + "cost": { "input": 0.14, "output": 0.59 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0.02, "output": 0.05 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 3, "output": 7 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0.27, "output": 0.4 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0.27, "output": 1 } + }, + "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, + "limit": { "context": 128000, "output": 32768 }, + "cost": { "input": 0.08, "output": 0.44 } + } + } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0.25, "output": 2.5, "cache_read": 0.0625 } + }, + "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, + "limit": { "context": 2000000, "output": 30000 }, + "cost": { "input": 0.2, "output": 0.5, "cache_read": 0.05 } + }, + "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, + "limit": { "context": 1000000, "output": 32000 }, + "cost": { "input": 0.25, "output": 2.5 } + }, + "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, + "limit": { "context": 1050000, "input": 922000, "output": 128000 }, + "cost": { "input": 5, "output": 30, "cache_read": 0.5 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 0.25, "output": 2, "cache_read": 0.025 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 1.75, "output": 14, "cache_read": 0.175 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.125 } + }, + "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, + "limit": { "context": 1050000, "input": 922000, "output": 128000 }, + "cost": { "input": 2.5, "output": 15, "cache_read": 0.25 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 2, + "output": 12, + "cache_read": 0.2, + "tiers": [ + { + "input": 4, + "output": 18, + "cache_read": 0.4, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { "input": 4, "output": 18, "cache_read": 0.4 } + } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 0.5, + "output": 3, + "cache_read": 0.05, + "tiers": [ + { + "input": 0.5, + "output": 3, + "cache_read": 0.05, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { "input": 0.5, "output": 3, "cache_read": 0.05 } + } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125, + "tiers": [ + { + "input": 2.5, + "output": 15, + "cache_read": 0.25, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { + "input": 2.5, + "output": 15, + "cache_read": 0.25 + } + } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { "input": 0.3, "output": 2.5, "cache_read": 0.03 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { "input": 1, "output": 5, "cache_read": 0.1 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { "input": 3, "output": 15, "cache_read": 0.3 } + }, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "cost": { "input": 5, "output": 25, "cache_read": 0.5 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { "input": 5, "output": 25, "cache_read": 0.5 } + }, + "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, + "limit": { "context": 200000, "output": 128000 }, + "cost": { "input": 5, "output": 25, "cache_read": 0.5 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { "input": 3, "output": 15, "cache_read": 0.3 } + } + } + }, + "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, + "limit": { "context": 128000, "output": 128000 }, + "cost": { "input": 0.2, "output": 0.6 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.29, "output": 1.74 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.23, "output": 1.86 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.29, "output": 2.32 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.22, "output": 1.74 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.26, "output": 2.09 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.23, "output": 1.86 } + }, + "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, + "limit": { "context": 33000, "output": 4000 }, + "cost": { "input": 0.59, "output": 0.59 } + }, + "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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0.25, "output": 1 } + }, + "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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0.18, "output": 0.68 } + }, + "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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0.2, "output": 0.6 } + }, + "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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0.29, "output": 1 } + }, + "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, + "limit": { "context": 33000, "output": 4000 }, + "cost": { "input": 0.1, "output": 0.1 } + }, + "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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0.3, "output": 1.5 } + }, + "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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0.14, "output": 0.57 } + }, + "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, + "limit": { "context": 131000, "output": 131000 }, + "cost": { "input": 0.27, "output": 0.27 } + }, + "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, + "limit": { "context": 66000, "output": 66000 }, + "cost": { "input": 0.1, "output": 0.4 } + }, + "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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0.13, "output": 0.6 } + }, + "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, + "limit": { "context": 33000, "output": 4000 }, + "cost": { "input": 0.18, "output": 0.18 } + }, + "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, + "limit": { "context": 131000, "output": 4000 }, + "cost": { "input": 0.59, "output": 0.59 } + }, + "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, + "limit": { "context": 131000, "output": 131000 }, + "cost": { "input": 0.07, "output": 0.28 } + }, + "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, + "limit": { "context": 66000, "output": 66000 }, + "cost": { "input": 0.1, "output": 0.4 } + }, + "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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0.07, "output": 0.28 } + }, + "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, + "limit": { "context": 131000, "output": 131000 }, + "cost": { "input": 0.14, "output": 0.57 } + }, + "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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0.09, "output": 0.6 } + }, + "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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0.09, "output": 0.3 } + }, + "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, + "limit": { "context": 131000, "output": 131000 }, + "cost": { "input": 0.06, "output": 0.06 } + }, + "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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0.14, "output": 1.4 } + }, + "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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0.18, "output": 2 } + }, + "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, + "limit": { "context": 66000, "output": 66000 }, + "cost": { "input": 0.1, "output": 0.4 } + }, + "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, + "limit": { "context": 131000, "output": 131000 }, + "cost": { "input": 0.15, "output": 0.58 } + }, + "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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0.29, "output": 1 } + }, + "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, + "limit": { "context": 33000, "output": 4000 }, + "cost": { "input": 0.18, "output": 0.18 } + }, + "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, + "limit": { "context": 33000, "output": 4000 }, + "cost": { "input": 0.05, "output": 0.05 } + }, + "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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0.45, "output": 3.5 } + }, + "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, + "limit": { "context": 262000, "output": 131000 }, + "cost": { "input": 0.09, "output": 0.3 } + }, + "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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0.2, "output": 1.5 } + }, + "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, + "limit": { "context": 131000, "output": 4000 }, + "cost": { "input": 0.59, "output": 0.59 } + }, + "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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0.1, "output": 0.3 } + }, + "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, + "limit": { "context": 66000, "output": 66000 }, + "cost": { "input": 0.14, "output": 0.86 } + }, + "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, + "limit": { "context": 205000, "output": 205000 }, + "cost": { "input": 0.5, "output": 1.9 } + }, + "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, + "limit": { "context": 131000, "output": 131000 }, + "cost": { "input": 0.3, "output": 0.9 } + }, + "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, + "limit": { "context": 131000, "output": 131000 }, + "cost": { "input": 0.14, "output": 0.86 } + }, + "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, + "limit": { "context": 131000, "output": 131000 }, + "cost": { "input": 0.14, "output": 0.57 } + }, + "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, + "limit": { "context": 131000, "output": 131000 }, + "cost": { "input": 0.07, "output": 0.28 } + }, + "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, + "limit": { "context": 131000, "output": 131000 }, + "cost": { "input": 0.14, "output": 0.57 } + }, + "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, + "limit": { "context": 128000, "output": 128000 }, + "cost": { "input": 0.2, "output": 0.6 } + }, + "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, + "limit": { "context": 33000, "output": 33000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 131000, "output": 131000 }, + "cost": { "input": 0.14, "output": 0.57 } + }, + "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, + "limit": { "context": 205000, "output": 205000 }, + "cost": { "input": 0.6, "output": 2.2 } + }, + "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, + "limit": { "context": 205000, "output": 205000 }, + "cost": { "input": 1.4, "output": 4.4, "cache_write": 0 } + }, + "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, + "limit": { "context": 205000, "output": 205000 }, + "cost": { "input": 1, "output": 3.2 } + }, + "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, + "limit": { "context": 164000, "output": 164000 }, + "cost": { "input": 0.25, "output": 1 } + }, + "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, + "limit": { "context": 164000, "output": 164000 }, + "cost": { "input": 0.5, "output": 2.18 } + }, + "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, + "limit": { "context": 164000, "output": 164000 }, + "cost": { "input": 0.27, "output": 0.42 } + }, + "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, + "limit": { "context": 164000, "output": 164000 }, + "cost": { "input": 0.27, "output": 1 } + }, + "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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0.55, "output": 2.5 } + }, + "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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0.95, "output": 4, "cache_read": 0.16 } + }, + "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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0.4, "output": 2 } + }, + "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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0.45, "output": 2.25 } + }, + "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, + "limit": { "context": 192000, "output": 131000 }, + "cost": { "input": 0.3, "output": 1.22 } + }, + "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, + "limit": { "context": 197000, "output": 131000 }, + "cost": { "input": 0.3, "output": 1.2 } + }, + "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, + "limit": { "context": 16384, "output": 16384 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 16384, "output": 16384 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 8192, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 164000, "output": 164000 }, + "cost": { "input": 0.27, "output": 1 } + }, + "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, + "limit": { "context": 164000, "output": 164000 }, + "cost": { "input": 0.27, "output": 0.42 } + }, + "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, + "limit": { "context": 131000, "output": 131000 }, + "cost": { "input": 0.1, "output": 0.1 } + }, + "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, + "limit": { "context": 164000, "output": 164000 }, + "cost": { "input": 0.5, "output": 2.18 } + }, + "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, + "limit": { "context": 131000, "output": 131000 }, + "cost": { "input": 0.18, "output": 0.18 } + }, + "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, + "limit": { "context": 164000, "output": 164000 }, + "cost": { "input": 0.25, "output": 1 } + }, + "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, + "limit": { "context": 4000, "output": 4000 }, + "cost": { "input": 0.15, "output": 0.15 } + }, + "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, + "limit": { "context": 131000, "output": 131000 }, + "cost": { "input": 0.28, "output": 1.1 } + }, + "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, + "limit": { "context": 131000, "output": 131000 }, + "cost": { "input": 0.14, "output": 0.57 } + }, + "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, + "limit": { "context": 33000, "output": 33000 }, + "cost": { "input": 0.27, "output": 0.27 } + }, + "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, + "limit": { "context": 33000, "output": 33000 }, + "cost": { "input": 0.086, "output": 0.086 } + }, + "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, + "limit": { "context": 131000, "output": 131000 }, + "cost": { "input": 0.086, "output": 0.086 } + }, + "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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0.4, "output": 2 } + }, + "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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0.55, "output": 2.5 } + }, + "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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0.21, "output": 0.57 } + } + } + }, + "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, + "limit": { "context": 262144, "output": 131072 }, + "cost": { "input": 0.2, "output": 0.3 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.2, "output": 0.8 } + }, + "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, + "limit": { "context": 262144, "output": 131072 }, + "cost": { "input": 0.2, "output": 0.6 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.1, "output": 0.5 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.2, "output": 0.8 } + }, + "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, + "limit": { "context": 75000, "output": 163840 }, + "cost": { "input": 0.2, "output": 0.8 } + }, + "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, + "limit": { "context": 75000, "output": 163840 }, + "cost": { "input": 0.2, "output": 0.8 } + }, + "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, + "limit": { "context": 75000, "output": 163840 }, + "cost": { "input": 0.5, "output": 2.15 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.1, "output": 0.5 } + } + } + }, + "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, + "limit": { "context": 196608, "output": 128000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + } + } + }, + "claudinio": { + "id": "claudinio", + "env": ["CLAUDINIO_API_KEY"], + "npm": "@ai-sdk/openai-compatible", + "api": "https://api.claudin.io/v1", + "name": "Claudinio", + "doc": "https://claudin.io", + "models": { + "claudinio": { + "id": "claudinio", + "name": "Claudinio", + "attachment": true, + "reasoning": true, + "tool_call": true, + "knowledge": "2026-05", + "release_date": "2026-05-12", + "last_updated": "2026-05-12", + "modalities": { "input": ["text", "image"], "output": ["text"] }, + "open_weights": false, + "limit": { "context": 256000, "output": 64000 }, + "cost": { "input": 0.5, "output": 2, "cache_read": 0.05 } + } + } + }, + "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, + "limit": { "context": 200000, "output": 8192 }, + "cost": { "input": 3, "output": 15 } + }, + "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, + "limit": { "context": 128000, "output": 32768 }, + "cost": { "input": 2, "output": 8, "reasoning": 3 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 1, "output": 1 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 2, "output": 8 } + } + } + }, + "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, + "limit": { "context": 1000000, "output": 384000 }, + "cost": { "input": 0.14, "output": 0.28, "cache_read": 0.028 } + }, + "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, + "limit": { "context": 1000000, "output": 384000 }, + "cost": { "input": 0.14, "output": 0.28, "cache_read": 0.028 } + }, + "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, + "limit": { "context": 1000000, "output": 384000 }, + "cost": { "input": 0.14, "output": 0.28, "cache_read": 0.028 } + }, + "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, + "limit": { "context": 1000000, "output": 384000 }, + "cost": { "input": 1.74, "output": 3.48, "cache_read": 0.145 } + } + } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + } + } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 163840, "output": 163840 }, + "cost": { "input": 0.2, "output": 0.8 } + }, + "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, + "limit": { "context": 8192, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 64000, "output": 16000 }, + "cost": { "input": 0.7, "output": 2.5 } + }, + "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, + "limit": { "context": 163840, "output": 65536 }, + "cost": { "input": 0.27, "output": 0.41 } + }, + "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, + "limit": { "context": 163840, "output": 65536 }, + "cost": { "input": 0.28, "output": 0.4 } + }, + "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, + "limit": { "context": 131072, "output": 65536 }, + "cost": { "input": 0.27, "output": 1 } + }, + "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, + "limit": { "context": 16384, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 131072, "output": 65536 }, + "cost": { "input": 0.27, "output": 1 } + }, + "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, + "limit": { "context": 1048756, "output": 262144 }, + "status": "alpha", + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 262144, "output": 32768 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 200000, "input": 200000, "output": 8000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 262144, "output": 80000 }, + "cost": { "input": 0.22, "output": 0.85 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 32768, "output": 32768 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 4096, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 46864, "output": 46864 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 67344, "output": 67344 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 46864, "output": 46864 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 40960, "output": 40960 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 1, "output": 3 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.13, "output": 0.4 } + }, + "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, + "limit": { "context": 256000, "output": 256000 }, + "cost": { "input": 0.1, "output": 0.3, "cache_read": 0.02 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.15, "output": 0.6 } + }, + "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, + "limit": { "context": 256000, "output": 256000 }, + "cost": { "input": 0.3, "output": 0.9 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.4, "output": 2 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.15, "output": 0.6 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.4, "output": 2 } + }, + "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, + "limit": { "context": 128000, "output": 128000 }, + "cost": { "input": 0.06, "output": 0.12 } + }, + "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, + "limit": { "context": 96000, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.4, "output": 2 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.1, "output": 0.3 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 2000000, "output": 30000 }, + "status": "beta", + "cost": { + "input": 2, + "output": 6, + "cache_read": 0.2, + "tiers": [ + { + "input": 4, + "output": 12, + "cache_read": 0.4, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { "input": 4, "output": 12, "cache_read": 0.4 } + } + }, + "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, + "limit": { "context": 2000000, "output": 30000 }, + "cost": { + "input": 0.2, + "output": 0.5, + "cache_read": 0.05, + "cache_write": 0.05 + } + }, + "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, + "limit": { "context": 256000, "output": 10000 }, + "cost": { "input": 0.2, "output": 1.5, "cache_read": 0.02 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.75, + "cache_write": 15 + } + }, + "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, + "limit": { "context": 256000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.75, + "cache_write": 15, + "tiers": [ + { + "input": 6, + "output": 30, + "tier": { "type": "context", "size": 128000 } + } + ] + } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { + "input": 0.3, + "output": 0.5, + "cache_read": 0.075, + "cache_write": 0.5 + } + }, + "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, + "limit": { "context": 2000000, "output": 30000 }, + "cost": { + "input": 0.2, + "output": 0.5, + "cache_read": 0.05, + "cache_write": 0.05 + } + }, + "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, + "limit": { "context": 2000000, "output": 30000 }, + "status": "beta", + "cost": { + "input": 2, + "output": 6, + "cache_read": 0.2, + "tiers": [ + { + "input": 4, + "output": 12, + "cache_read": 0.4, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { "input": 4, "output": 12, "cache_read": 0.4 } + } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { + "input": 0.3, + "output": 0.5, + "cache_read": 0.075, + "cache_write": 0.5 + } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.75, + "cache_write": 15 + } + }, + "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, + "limit": { "context": 256000, "output": 64000 }, + "cost": { + "input": 0.066, + "output": 0.26, + "cache_read": 0.029, + "cache_write": 0.029 + } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.2, "output": 1.1 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.1, "output": 0.5 } + }, + "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, + "limit": { "context": 256000, "output": 65536 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 256000, "output": 256000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 128000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.04, "output": 0.16 } + }, + "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, + "limit": { "context": 128000, "output": 128000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0.25, "output": 0.75, "cache_read": 0.025 } + }, + "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, + "limit": { "context": 128000, "output": 50000 }, + "cost": { "input": 0.25, "output": 0.75, "cache_read": 0.025 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.1, "output": 9, "cache_read": 0.11 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 1.75, "output": 14, "cache_read": 0.175 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.05, "output": 0.24 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 21, "output": 168 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 0.25, "output": 2 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 0.05, "output": 0.4 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.75, "output": 14, "cache_read": 0.175 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.75, "output": 14, "cache_read": 0.175 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.15, "output": 0.6, "cache_read": 0.08 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 0.75, "output": 4.5, "cache_read": 0.075 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.125 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 1.1, "output": 4.4, "cache_read": 0.28 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 0.2, "output": 1.25, "cache_read": 0.02 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.75, "output": 14, "cache_read": 0.175 } + }, + "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, + "limit": { "context": 400000, "output": 100000 }, + "cost": { "input": 0.25, "output": 2, "cache_read": 0.025 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 5, "output": 10, "cache_read": 1.25 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.125 } + }, + "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, + "limit": { "context": 1050000, "input": 922000, "output": 128000 }, + "cost": { "input": 30, "output": 180, "cache_read": 30 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.125 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.05, "output": 0.2 } + }, + "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, + "limit": { "context": 400000, "output": 272000 }, + "cost": { "input": 15, "output": 120 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10 } + }, + "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, + "limit": { "context": 131072, "output": 65536 }, + "cost": { "input": 0.075, "output": 0.3 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.072, "output": 0.28 } + }, + "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, + "limit": { "context": 1047576, "output": 32768 }, + "cost": { "input": 2, "output": 8, "cache_read": 0.5 } + }, + "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, + "limit": { "context": 1047576, "output": 32768 }, + "cost": { "input": 0.4, "output": 1.6, "cache_read": 0.1 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.125 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0.6, "output": 2.2, "cache_read": 0.11 } + }, + "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, + "limit": { "context": 128000, "output": 96000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 202752, "output": 131000 }, + "cost": { "input": 1, "output": 3.2, "cache_read": 0.2 } + }, + "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, + "limit": { "context": 202752, "output": 131072 }, + "cost": { "input": 1.4, "output": 4.4, "cache_read": 0.26 } + }, + "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, + "limit": { "context": 128000, "output": 96000 }, + "cost": { "input": 0.6, "output": 2.2 } + }, + "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, + "limit": { "context": 200000, "output": 128000 }, + "cost": { "input": 0.6, "output": 1.9, "cache_read": 0.11 } + }, + "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, + "limit": { "context": 128000, "output": 96000 }, + "cost": { "input": 0.2, "output": 1.1 } + }, + "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, + "limit": { "context": 202752, "output": 131072 }, + "cost": { + "input": 0.96, + "output": 3.2, + "cache_read": 0.192, + "cache_write": 0 + } + }, + "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, + "limit": { "context": 64000, "output": 16384 }, + "cost": { "input": 0.6, "output": 1.8 } + }, + "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, + "limit": { "context": 200000, "output": 128000 }, + "cost": { "input": 0.6, "output": 2.2, "cache_read": 0.11 } + }, + "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, + "limit": { "context": 200000, "output": 65535 }, + "cost": { "input": 0.07, "output": 0.4 } + }, + "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, + "limit": { "context": 8192, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 8192, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 8192, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { + "input": 0.3, + "output": 1.2, + "cache_read": 0.06, + "cache_write": 0.375 + } + }, + "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, + "limit": { "context": 196600, "output": 118000 }, + "cost": { + "input": 0.28, + "output": 1.15, + "cache_read": 0.28, + "cache_write": 1.15 + } + }, + "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, + "limit": { "context": 1000000, "output": 1000000 }, + "cost": { "input": 0.2, "output": 1.1 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0.3, "output": 1.2 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 1000000, "output": 40000 }, + "cost": { "input": 0.4, "output": 2.2 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0.3, "output": 1.2, "cache_read": 0.03 } + }, + "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, + "limit": { "context": 1000000, "output": 65536 }, + "cost": { + "input": 0.65, + "output": 3.25, + "cache_read": 0.13, + "cache_write": 0.8125 + } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.6, "output": 3.6 } + }, + "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, + "limit": { "context": 32768, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 1000000, "output": 32768 }, + "cost": { + "input": 0.26, + "output": 0.78, + "cache_read": 0.052, + "cache_write": 0.325 + } + }, + "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, + "limit": { "context": 1000000, "output": 65536 }, + "cost": { "input": 0.065, "output": 0.26 } + }, + "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, + "limit": { "context": 1000000, "output": 65536 }, + "cost": { + "input": 0.325, + "output": 1.95, + "cache_read": 0.0325, + "cache_write": 0.40625 + } + }, + "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, + "limit": { "context": 262144, "output": 32768 }, + "cost": { + "input": 1.2, + "output": 6, + "cache_read": 0.156, + "cache_write": 0.975 + } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.38, "output": 1.53 } + }, + "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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0.2, "output": 0.8 } + }, + "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, + "limit": { "context": 262144, "output": 81920 }, + "cost": { "input": 0.195, "output": 1.56 } + }, + "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, + "limit": { "context": 262144, "output": 81920 }, + "cost": { "input": 0.078, "output": 0.312 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.14, "output": 1.4 } + }, + "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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0.2, "output": 0.8 } + }, + "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, + "limit": { "context": 128000, "output": 66536 }, + "cost": { + "input": 0.3, + "output": 1.5, + "cache_read": 0.039, + "cache_write": 0.24375 + } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.14, "output": 1.4 } + }, + "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, + "limit": { "context": 32768, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 160000, "output": 65536 }, + "cost": { "input": 0.07, "output": 0.27 } + }, + "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, + "limit": { "context": 262144, "output": 66536 }, + "cost": { "input": 0.3, "output": 1.2 } + }, + "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, + "limit": { "context": 1000000, "output": 65536 }, + "cost": { "input": 0.4, "output": 2.4 } + }, + "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, + "limit": { "context": 262144, "output": 131072 }, + "cost": { "input": 0.15, "output": 0.85 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.31 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 2, + "output": 12, + "reasoning": 12, + "tiers": [ + { + "input": 4, + "output": 18, + "cache_read": 0.4, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { "input": 4, "output": 18, "cache_read": 0.4 } + } + }, + "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, + "limit": { "context": 32768, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { "input": 0.1, "output": 0.4, "cache_read": 0.025 } + }, + "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, + "limit": { "context": 1048576, "output": 8192 }, + "cost": { "input": 0.1, "output": 0.4, "cache_read": 0.025 } + }, + "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, + "limit": { "context": 32768, "output": 32768 }, + "cost": { "input": 0.02, "output": 0.04 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "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 + } + }, + "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, + "limit": { "context": 8192, "output": 2000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 2, + "output": 12, + "reasoning": 12, + "tiers": [ + { + "input": 4, + "output": 18, + "cache_read": 0.4, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { "input": 4, "output": 18, "cache_read": 0.4 } + } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { "input": 0.5, "output": 3, "cache_read": 0.05 } + }, + "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, + "limit": { "context": 1050000, "output": 66000 }, + "cost": { "input": 2, "output": 12 } + }, + "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, + "limit": { "context": 8192, "output": 2000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 8192, "output": 8192 }, + "cost": { "input": 0.03, "output": 0.09 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.14, "output": 0.4 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.31 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.03, "output": 0.1 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0, "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, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { "input": 0.3, "output": 2.5, "cache_read": 0.0375 } + }, + "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, + "limit": { "context": 65536, "output": 65536 }, + "cost": { "input": 0.5, "output": 3 } + }, + "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, + "limit": { "context": 262144, "output": 32768 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 32768, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 96000, "output": 96000 }, + "cost": { "input": 0.01703, "output": 0.06815 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { "input": 0.3, "output": 2.5, "cache_read": 0.031 } + }, + "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, + "limit": { "context": 96000, "output": 96000 }, + "cost": { "input": 0.04, "output": 0.15 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.13, "output": 0.4 } + }, + "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, + "limit": { "context": 262144, "output": 32768 }, + "cost": { "input": 0, "output": 0 } + }, + "google/gemini-2.5-flash-lite": { + "id": "google/gemini-2.5-flash-lite", + "name": "Gemini 2.5 Flash Lite", + "family": "gemini-flash-lite", + "attachment": true, + "reasoning": true, + "tool_call": true, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { "input": 0.1, "output": 0.4, "cache_read": 0.025 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.6, "output": 3, "cache_read": 0.1 } + }, + "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, + "limit": { "context": 262144, "output": 16384 }, + "cost": { "input": 0.6, "output": 2.5 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.95, "output": 4, "cache_read": 0.16 } + }, + "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, + "limit": { "context": 262144, "output": 16384 }, + "cost": { "input": 0.6, "output": 2.5 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.55, "output": 2.2 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.6, "output": 2.5, "cache_read": 0.15 } + }, + "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, + "limit": { "context": 200000, "output": 32000 }, + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + "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, + "limit": { "context": 200000, "output": 128000 }, + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25, + "tiers": [ + { + "input": 10, + "output": 37.5, + "cache_read": 1, + "cache_write": 12.5, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { + "input": 10, + "output": 37.5, + "cache_read": 1, + "cache_write": 12.5 + } + } + }, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25, + "tiers": [ + { + "input": 10, + "output": 37.5, + "cache_read": 1, + "cache_write": 12.5, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { + "input": 10, + "output": 37.5, + "cache_read": 1, + "cache_write": 12.5 + } + } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75, + "tiers": [ + { + "input": 6, + "output": 22.5, + "cache_read": 0.6, + "cache_write": 7.5, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { + "input": 6, + "output": 22.5, + "cache_read": 0.6, + "cache_write": 7.5 + } + } + }, + "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, + "limit": { "context": 1000000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75, + "tiers": [ + { + "input": 6, + "output": 22.5, + "cache_read": 0.6, + "cache_write": 7.5, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { + "input": 6, + "output": 22.5, + "cache_read": 0.6, + "cache_write": 7.5 + } + } + }, + "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, + "limit": { "context": 200000, "output": 32000 }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 1, + "output": 5, + "cache_read": 0.1, + "cache_write": 1.25 + } + }, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75, + "tiers": [ + { + "input": 6, + "output": 22.5, + "cache_read": 0.6, + "cache_write": 7.5, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { + "input": 6, + "output": 22.5, + "cache_read": 0.6, + "cache_write": 7.5 + } + } + }, + "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, + "limit": { "context": 1048576, "output": 393216 }, + "cost": { "input": 0.14, "output": 0.28, "cache_read": 0.028 } + }, + "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, + "limit": { "context": 1048576, "output": 393216 }, + "cost": { "input": 1.74, "output": 3.48, "cache_read": 0.145 } + }, + "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, + "limit": { "context": 1000000, "output": 1000000 }, + "cost": { + "input": 1.25, + "output": 2.5, + "cache_read": 0.2, + "context_over_200k": { "input": 2.5, "output": 5, "cache_read": 0.4 }, + "tiers": [ + { + "input": 2.5, + "output": 5, + "cache_read": 0.4, + "tier": { "type": "context", "size": 200000 } + } + ] + } + }, + "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, + "limit": { "context": 1050000, "input": 922000, "output": 128000 }, + "cost": { + "input": 5, + "output": 30, + "cache_read": 0.5, + "context_over_200k": { "input": 10, "output": 45, "cache_read": 1 }, + "tiers": [ + { + "input": 10, + "output": 45, + "cache_read": 1, + "tier": { "type": "context", "size": 272000 } + } + ] + } + }, + "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, + "limit": { "context": 1050000, "input": 922000, "output": 128000 }, + "cost": { + "input": 2.5, + "output": 15, + "cache_read": 0.25, + "context_over_200k": { + "input": 5, + "output": 22.5, + "cache_read": 0.5 + }, + "tiers": [ + { + "input": 5, + "output": 22.5, + "cache_read": 0.5, + "tier": { "type": "context", "size": 272000 } + } + ] + } + }, + "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, + "limit": { "context": 1050000, "input": 922000, "output": 128000 }, + "cost": { + "input": 30, + "output": 180, + "context_over_200k": { "input": 60, "output": 270 }, + "tiers": [ + { + "input": 60, + "output": 270, + "tier": { "type": "context", "size": 272000 } + } + ] + } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125, + "context_over_200k": { + "input": 2.5, + "output": 15, + "cache_read": 0.25 + }, + "tiers": [ + { + "input": 2.5, + "output": 15, + "cache_read": 0.25, + "tier": { "type": "context", "size": 200000 } + } + ] + } + }, + "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, + "limit": { "context": 200000, "output": 32000 }, + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + "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, + "limit": { "context": 200000, "output": 8192 }, + "cost": { + "input": 0.8, + "output": 4, + "cache_read": 0.08, + "cache_write": 1 + } + }, + "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, + "limit": { "context": 1048576, "output": 131072 }, + "cost": { + "input": 1, + "output": 3, + "cache_read": 0.2, + "context_over_200k": { "input": 2, "output": 6, "cache_read": 0.4 }, + "tiers": [ + { + "input": 2, + "output": 6, + "cache_read": 0.4, + "tier": { "type": "context", "size": 256000 } + } + ] + } + }, + "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, + "limit": { "context": 262144, "output": 131072 }, + "cost": { "input": 0.4, "output": 2, "cache_read": 0.08 } + }, + "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, + "limit": { "context": 1048576, "output": 131072 }, + "cost": { + "input": 0.4, + "output": 2, + "cache_read": 0.08, + "context_over_200k": { + "input": 0.8, + "output": 4, + "cache_read": 0.16 + }, + "tiers": [ + { + "input": 0.8, + "output": 4, + "cache_read": 0.16, + "tier": { "type": "context", "size": 256000 } + } + ] + } + }, + "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, + "limit": { "context": 1048576, "output": 131072 }, + "cost": { + "input": 1, + "output": 3, + "cache_read": 0.2, + "context_over_200k": { "input": 2, "output": 6, "cache_read": 0.4 }, + "tiers": [ + { + "input": 2, + "output": 6, + "cache_read": 0.4, + "tier": { "type": "context", "size": 256000 } + } + ] + } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.1, "output": 0.3, "cache_read": 0.01 } + } + } + }, + "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, + "limit": { "context": 202800, "output": 131072 }, + "cost": { "input": 1.4, "output": 4.4, "cache_read": 0.26 } + }, + "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, + "limit": { "context": 160000, "output": 160000 }, + "cost": { "input": 0.56, "output": 1.68, "cache_read": 0.28 } + }, + "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, + "limit": { "context": 196608, "output": 196608 }, + "cost": { "input": 0.3, "output": 1.2, "cache_read": 0.03 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.22, "output": 0.88 } + }, + "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, + "limit": { "context": 202752, "output": 131072 }, + "cost": { "input": 1, "output": 3.2, "cache_read": 0.5 } + }, + "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, + "limit": { "context": 163840, "output": 163840 }, + "cost": { "input": 0.56, "output": 1.68 } + }, + "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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0.95, "output": 4, "cache_read": 0.16 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 1, "output": 3 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0.5, "output": 3, "cache_read": 0.1 } + }, + "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, + "limit": { "context": 200000, "output": 200000 }, + "cost": { "input": 0.3, "output": 1.2, "cache_read": 0.03 } + }, + "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, + "limit": { "context": 196608, "output": 196608 }, + "cost": { "input": 0.3, "output": 1.2, "cache_read": 0.03 } + }, + "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, + "limit": { "context": 198000, "output": 198000 }, + "cost": { "input": 0.6, "output": 2.2, "cache_read": 0.3 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.55, "output": 2.19 } + }, + "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, + "limit": { "context": 256000, "output": 256000 }, + "cost": { "input": 0.6, "output": 3, "cache_read": 0.1 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.05, "output": 0.2 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.15, "output": 0.6 } + }, + "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, + "limit": { "context": 256000, "output": 256000 }, + "cost": { "input": 0.6, "output": 2.5, "cache_read": 0.3 } + }, + "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, + "limit": { "context": 256000, "output": 256000 }, + "cost": { "input": 0, "output": 0, "cache_read": 0 } + }, + "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, + "limit": { "context": 1000000, "output": 384000 }, + "cost": { "input": 1.74, "output": 3.48, "cache_read": 0.15 } + } + } + }, + "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, + "limit": { "context": 262144, "output": 32768 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + }, + "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, + "limit": { "context": 262144, "output": 32768 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + }, + "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, + "limit": { "context": 262144, "output": 32768 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + } + } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 3.5, "output": 14 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 2.1, "output": 8.4 } + } + } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "provider": { "npm": "@ai-sdk/anthropic" }, + "cost": { "input": 0.3, "output": 1.2, "cache_read": 0.06 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.6, "output": 3, "cache_read": 0.1 } + }, + "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, + "limit": { "context": 1048576, "output": 128000 }, + "cost": { + "input": 1, + "output": 3, + "cache_read": 0.2, + "tiers": [ + { + "input": 2, + "output": 6, + "cache_read": 0.4, + "tier": { "type": "context", "size": 256000 } + } + ], + "context_over_200k": { "input": 2, "output": 6, "cache_read": 0.4 } + } + }, + "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, + "limit": { "context": 202752, "output": 32768 }, + "cost": { "input": 1, "output": 3.2, "cache_read": 0.2 } + }, + "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, + "limit": { "context": 262144, "output": 128000 }, + "status": "deprecated", + "cost": { "input": 0.4, "output": 2, "cache_read": 0.08 } + }, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "cost": { + "input": 0.4, + "output": 2, + "cache_read": 0.08, + "tiers": [ + { + "input": 0.8, + "output": 4, + "cache_read": 0.16, + "tier": { "type": "context", "size": 256000 } + } + ], + "context_over_200k": { "input": 0.8, "output": 4, "cache_read": 0.16 } + } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "provider": { "npm": "@ai-sdk/anthropic" }, + "cost": { + "input": 0.5, + "output": 3, + "cache_read": 0.05, + "cache_write": 0.625 + } + }, + "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, + "limit": { "context": 202752, "output": 32768 }, + "cost": { "input": 1.4, "output": 4.4, "cache_read": 0.26 } + }, + "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, + "limit": { "context": 1000000, "output": 384000 }, + "cost": { "input": 0.14, "output": 0.28, "cache_read": 0.0028 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.95, "output": 4, "cache_read": 0.16 } + }, + "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, + "limit": { "context": 1000000, "output": 384000 }, + "cost": { "input": 1.74, "output": 3.48, "cache_read": 0.0145 } + }, + "minimax-m2.5": { + "id": "minimax-m2.5", + "name": "MiniMax M2.5", + "family": "minimax-m2.5", + "attachment": false, + "reasoning": true, + "tool_call": true, + "temperature": true, + "knowledge": "2025-01", + "release_date": "2026-02-12", + "last_updated": "2026-02-12", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 204800, "output": 65536 }, + "provider": { "npm": "@ai-sdk/anthropic" }, + "cost": { "input": 0.3, "output": 1.2, "cache_read": 0.03 } + }, + "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, + "limit": { "context": 1048576, "output": 128000 }, + "status": "deprecated", + "cost": { + "input": 1, + "output": 3, + "cache_read": 0.2, + "tiers": [ + { + "input": 2, + "output": 6, + "cache_read": 0.4, + "tier": { "type": "context", "size": 256000 } + } + ], + "context_over_200k": { "input": 2, "output": 6, "cache_read": 0.4 } + } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "provider": { "npm": "@ai-sdk/anthropic" }, + "cost": { + "input": 0.2, + "output": 1.2, + "cache_read": 0.02, + "cache_write": 0.25 + } + } + } + }, + "databricks": { + "id": "databricks", + "env": ["DATABRICKS_HOST", "DATABRICKS_TOKEN"], + "npm": "@ai-sdk/openai-compatible", + "api": "https://${DATABRICKS_HOST}/ai-gateway/mlflow/v1", + "name": "Databricks", + "doc": "https://docs.databricks.com/aws/en/machine-learning/foundation-models/", + "models": { + "databricks-gpt-oss-120b": { + "id": "databricks-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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.072, "output": 0.28 } + }, + "databricks-gpt-oss-20b": { + "id": "databricks-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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.05, "output": 0.2 } + }, + "databricks-claude-haiku-4-5": { + "id": "databricks-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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 1, + "output": 5, + "cache_read": 0.1, + "cache_write": 1.25 + } + }, + "databricks-claude-sonnet-4-6": { + "id": "databricks-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, + "limit": { "context": 1000000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "databricks-gemini-3-pro": { + "id": "databricks-gemini-3-pro", + "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, + "limit": { "context": 1000000, "output": 64000 }, + "cost": { + "input": 2, + "output": 12, + "cache_read": 0.2, + "context_over_200k": { "input": 4, "output": 18, "cache_read": 0.4 }, + "tiers": [ + { + "input": 4, + "output": 18, + "cache_read": 0.4, + "tier": { "type": "context", "size": 200000 } + } + ] + } + }, + "databricks-gemini-3-1-pro": { + "id": "databricks-gemini-3-1-pro", + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 2, + "output": 12, + "cache_read": 0.2, + "context_over_200k": { "input": 4, "output": 18, "cache_read": 0.4 }, + "tiers": [ + { + "input": 4, + "output": 18, + "cache_read": 0.4, + "tier": { "type": "context", "size": 200000 } + } + ] + } + }, + "databricks-gpt-5-4-mini": { + "id": "databricks-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, + "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" } } + } + } + }, + "cost": { "input": 0.75, "output": 4.5, "cache_read": 0.075 } + }, + "databricks-claude-opus-4-6": { + "id": "databricks-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, + "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" } + } + } + } + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } + }, + "databricks-gemini-2-5-pro": { + "id": "databricks-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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125, + "context_over_200k": { + "input": 2.5, + "output": 15, + "cache_read": 0.25 + }, + "tiers": [ + { + "input": 2.5, + "output": 15, + "cache_read": 0.25, + "tier": { "type": "context", "size": 200000 } + } + ] + } + }, + "databricks-gpt-5-nano": { + "id": "databricks-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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 0.05, "output": 0.4, "cache_read": 0.005 } + }, + "databricks-gpt-5-4": { + "id": "databricks-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, + "limit": { "context": 1050000, "input": 922000, "output": 128000 }, + "experimental": { + "modes": { + "fast": { + "cost": { "input": 5, "output": 30, "cache_read": 0.5 }, + "provider": { "body": { "service_tier": "priority" } } + } + } + }, + "cost": { + "input": 2.5, + "output": 15, + "cache_read": 0.25, + "context_over_200k": { + "input": 5, + "output": 22.5, + "cache_read": 0.5 + }, + "tiers": [ + { + "input": 5, + "output": 22.5, + "cache_read": 0.5, + "tier": { "type": "context", "size": 272000 } + } + ] + } + }, + "databricks-gemini-3-1-flash-lite": { + "id": "databricks-gemini-3-1-flash-lite", + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 0.25, + "output": 1.5, + "cache_read": 0.025, + "input_audio": 0.5 + } + }, + "databricks-gpt-5": { + "id": "databricks-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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.125 } + }, + "databricks-claude-opus-4-1": { + "id": "databricks-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, + "limit": { "context": 200000, "output": 32000 }, + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + "databricks-gpt-5-2": { + "id": "databricks-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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 1.75, "output": 14, "cache_read": 0.175 } + }, + "databricks-gpt-5-5": { + "id": "databricks-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, + "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" } } + } + } + }, + "cost": { + "input": 5, + "output": 30, + "cache_read": 0.5, + "context_over_200k": { "input": 10, "output": 45, "cache_read": 1 }, + "tiers": [ + { + "input": 10, + "output": 45, + "cache_read": 1, + "tier": { "type": "context", "size": 272000 } + } + ] + } + }, + "databricks-gemini-3-flash": { + "id": "databricks-gemini-3-flash", + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 0.5, + "output": 3, + "cache_read": 0.05, + "input_audio": 1 + } + }, + "databricks-claude-opus-4-5": { + "id": "databricks-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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } + }, + "databricks-gpt-5-mini": { + "id": "databricks-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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 0.25, "output": 2, "cache_read": 0.025 } + }, + "databricks-claude-sonnet-4": { + "id": "databricks-claude-sonnet-4", + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "databricks-gpt-5-1": { + "id": "databricks-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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.13 } + }, + "databricks-claude-opus-4-7": { + "id": "databricks-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, + "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" } + } + } + } + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } + }, + "databricks-gemini-2-5-flash": { + "id": "databricks-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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 0.3, + "output": 2.5, + "cache_read": 0.03, + "input_audio": 1 + } + }, + "databricks-gpt-5-4-nano": { + "id": "databricks-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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 0.2, "output": 1.25, "cache_read": 0.02 } + }, + "databricks-claude-sonnet-4-5": { + "id": "databricks-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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + } + } + }, + "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, + "limit": { "context": 106000, "output": 4096 }, + "cost": { + "input": 0.22, + "output": 0.95, + "cache_read": 0.11, + "cache_write": 0.44 + } + }, + "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, + "limit": { "context": 262144, "output": 4096 }, + "cost": { + "input": 0.1, + "output": 0.8, + "cache_read": 0.05, + "cache_write": 0.2 + } + }, + "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, + "limit": { "context": 262144, "output": 4096 }, + "cost": { + "input": 0.11, + "output": 0.6, + "cache_read": 0.055, + "cache_write": 0.22 + } + }, + "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, + "limit": { "context": 32000, "output": 4096 }, + "cost": { + "input": 0.05, + "output": 0.22, + "cache_read": 0.025, + "cache_write": 0.1 + } + }, + "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, + "limit": { "context": 200000, "output": 4096 }, + "cost": { + "input": 0.4, + "output": 1.75, + "cache_read": 0.2, + "cache_write": 0.8 + } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { + "input": 0.5, + "output": 1.5, + "cache_read": 0.25, + "cache_write": 1 + } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 2, "output": 6, "cache_read": 1, "cache_write": 4 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { + "input": 0.02, + "output": 0.04, + "cache_read": 0.01, + "cache_write": 0.04 + } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { + "input": 0.05, + "output": 0.22, + "cache_read": 0.025, + "cache_write": 0.1 + } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { + "input": 0.13, + "output": 0.38, + "cache_read": 0.065, + "cache_write": 0.26 + } + }, + "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, + "limit": { "context": 430000, "output": 4096 }, + "cost": { + "input": 0.15, + "output": 0.6, + "cache_read": 0.075, + "cache_write": 0.3 + } + }, + "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, + "limit": { "context": 16000, "output": 4096 }, + "cost": { + "input": 0.35, + "output": 0.4, + "cache_read": 0.175, + "cache_write": 0.7 + } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { + "input": 2, + "output": 8.75, + "cache_read": 1, + "cache_write": 4 + } + }, + "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, + "limit": { "context": 64000, "output": 4096 }, + "cost": { + "input": 0.03, + "output": 0.14, + "cache_read": 0.015, + "cache_write": 0.06 + } + }, + "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, + "limit": { "context": 131072, "output": 4096 }, + "cost": { + "input": 0.04, + "output": 0.4, + "cache_read": 0.02, + "cache_write": 0.08 + } + }, + "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, + "limit": { "context": 32768, "output": 4096 }, + "cost": { + "input": 0.55, + "output": 2.25, + "cache_read": 0.275, + "cache_write": 1.1 + } + }, + "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, + "limit": { "context": 32768, "output": 4096 }, + "cost": { + "input": 0.39, + "output": 1.9, + "cache_read": 0.195, + "cache_write": 0.78 + } + } + } + }, + "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, + "limit": { "context": 131072, "output": 16384 }, + "cost": { "input": 0.287, "output": 1.147, "reasoning": 2.868 } + }, + "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, + "limit": { "context": 32768, "output": 4096 }, + "cost": { "input": 0.115, "output": 0.287 } + }, + "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, + "limit": { "context": 4096, "output": 3072 }, + "cost": { "input": 0.144, "output": 0.287 } + }, + "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, + "limit": { "context": 262144, "output": 32768 }, + "cost": { "input": 0.574, "output": 2.411 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.087, "output": 0.144 } + }, + "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, + "limit": { "context": 34096, "output": 4096 }, + "cost": { "input": 0.717, "output": 0.717 } + }, + "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, + "limit": { "context": 32768, "output": 2048 }, + "cost": { + "input": 0.23, + "output": 0.918, + "input_audio": 3.584, + "output_audio": 7.168 + } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.072, "output": 0.287, "reasoning": 0.717 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.43, "output": 2.58, "reasoning": 2.58 } + }, + "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, + "limit": { "context": 4096, "output": 3072 }, + "cost": { "input": 0.287, "output": 0.861 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.23, "output": 0.574 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.115, "output": 0.287 } + }, + "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, + "limit": { "context": 202752, "output": 16384 }, + "cost": { "input": 0.86, "output": 3.15 } + }, + "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, + "limit": { "context": 32768, "output": 16384 }, + "cost": { "input": 0.287, "output": 0.861 } + }, + "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, + "limit": { "context": 131072, "output": 16384 }, + "cost": { "input": 0.287, "output": 1.147, "reasoning": 2.868 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0.3, "output": 1.2 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.345, "output": 1.377 } + }, + "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, + "limit": { "context": 1000000, "output": 32768 }, + "cost": { "input": 0.115, "output": 0.287, "reasoning": 1.147 } + }, + "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, + "limit": { "context": 32768, "output": 2048 }, + "cost": { + "input": 0.058, + "output": 0.23, + "input_audio": 3.584, + "output_audio": 7.168 + } + }, + "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, + "limit": { "context": 1000000, "output": 32768 }, + "cost": { "input": 0.022, "output": 0.216 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.287, "output": 0.717 } + }, + "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, + "limit": { "context": 131072, "output": 16384 }, + "cost": { "input": 0.574, "output": 2.294 } + }, + "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, + "limit": { "context": 1000000, "output": 65536 }, + "cost": { "input": 0.172, "output": 1.72, "reasoning": 1.72 } + }, + "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, + "limit": { "context": 1000000, "output": 65536 }, + "cost": { + "input": 0.5, + "output": 3, + "cache_read": 0.05, + "cache_write": 0.625, + "tiers": [ + { + "input": 2, + "output": 6, + "cache_read": 0.2, + "cache_write": 2.5, + "tier": { "type": "context", "size": 256000 } + } + ], + "context_over_200k": { + "input": 2, + "output": 6, + "cache_read": 0.2, + "cache_write": 2.5 + } + } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.861, "output": 3.441 } + }, + "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, + "limit": { "context": 202752, "output": 128000 }, + "cost": { "input": 0.87, "output": 3.48, "cache_read": 0.17 } + }, + "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, + "limit": { "context": 65536, "output": 16384 }, + "cost": { + "input": 0.058, + "output": 0.23, + "input_audio": 3.584, + "output_audio": 7.168 + } + }, + "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, + "limit": { "context": 131072, "output": 65536 }, + "cost": { "input": 0.574, "output": 1.721 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.574, "output": 1.721 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.286705, "output": 1.14682, "reasoning": 2.867051 } + }, + "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, + "limit": { "context": 4096, "output": 3072 }, + "cost": { "input": 0.574, "output": 1.721 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.287, "output": 0.861 } + }, + "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, + "limit": { "context": 53248, "output": 4096 }, + "cost": { "input": 0.032, "output": 0.032 } + }, + "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, + "limit": { "context": 1000000, "output": 32768 }, + "cost": { "input": 7.742, "output": 23.367 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.144, "output": 1.434 } + }, + "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, + "limit": { "context": 16384, "output": 8192 }, + "cost": { "input": 0.259, "output": 0.775 } + }, + "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, + "limit": { "context": 32768, "output": 16384 }, + "cost": { "input": 0.287, "output": 0.861 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.23, "output": 0.574 } + }, + "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, + "limit": { "context": 1000000, "output": 65536 }, + "cost": { "input": 0.144, "output": 0.574 } + }, + "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, + "limit": { "context": 32768, "output": 16384 }, + "cost": { "input": 0.072, "output": 0.144 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.072, "output": 0.144 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.144, "output": 0.431 } + }, + "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, + "limit": { "context": 8192, "output": 1024 }, + "cost": { "input": 0.058, "output": 0.144 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.287, "output": 0.861 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.574, "output": 2.294 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.287, "output": 0.861 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.144, "output": 0.574 } + }, + "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, + "limit": { "context": 65536, "output": 16384 }, + "cost": { + "input": 0.23, + "output": 0.918, + "input_audio": 3.584, + "output_audio": 7.168 + } + }, + "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, + "limit": { "context": 262144, "output": 16384 }, + "cost": { "input": 0.929, "output": 3.858 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.108, "output": 0.431, "reasoning": 1.076 } + }, + "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, + "limit": { "context": 262144, "output": 32768 }, + "cost": { "input": 0.143353, "output": 1.433525, "reasoning": 4.300576 } + }, + "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, + "limit": { "context": 131072, "output": 65536 }, + "cost": { "input": 0.287, "output": 0.431 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.861, "output": 3.441 } + }, + "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, + "limit": { "context": 32768, "output": 16384 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.216, "output": 0.861 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.144, "output": 0.287 } + }, + "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, + "limit": { "context": 1000000, "output": 16384 }, + "cost": { "input": 0.044, "output": 0.087, "reasoning": 0.431 } + }, + "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, + "limit": { "context": 16384, "output": 8192 }, + "cost": { "input": 0.101, "output": 0.28 } + }, + "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, + "limit": { "context": 4096, "output": 3072 }, + "cost": { "input": 0.574, "output": 1.721 } + }, + "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, + "limit": { "context": 245800, "output": 65536 }, + "cost": { "input": 1.32, "output": 7.9, "cache_read": 0.132 } + }, + "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, + "limit": { "context": 32768, "output": 2048 }, + "cost": { "input": 0.087, "output": 0.345, "input_audio": 5.448 } + }, + "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, + "limit": { "context": 1000000, "output": 65536 }, + "cost": { "input": 0.573, "output": 3.44, "reasoning": 3.44 } + }, + "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, + "limit": { "context": 32768, "output": 16384 }, + "cost": { "input": 0.144, "output": 0.431 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 2.294, "output": 6.881 } + }, + "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, + "limit": { "context": 65536, "output": 8192 }, + "cost": { "input": 0.287, "output": 1.147 } + }, + "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, + "limit": { "context": 131072, "output": 16384 }, + "cost": { "input": 0.574, "output": 2.294 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 1.147, "output": 4.588 } + }, + "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, + "limit": { "context": 262144, "output": 16384 }, + "cost": { "input": 0.574, "output": 2.294 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.144, "output": 0.574, "reasoning": 1.434 } + }, + "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, + "limit": { "context": 32768, "output": 16384 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 10000000, "output": 8192 }, + "cost": { "input": 0.072, "output": 0.287 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.6, "output": 3, "cache_read": 0.1 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { + "input": 0.3, + "output": 1.2, + "cache_read": 0.06, + "cache_write": 0.375 + } + }, + "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, + "limit": { "context": 163840, "output": 163840 }, + "cost": { "input": 0.25, "output": 1 } + }, + "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, + "limit": { "context": 163840, "output": 65536 }, + "cost": { "input": 0.27, "output": 0.42 } + }, + "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, + "limit": { "context": 163840, "output": 32768 }, + "cost": { "input": 0.5, "output": 2.18 } + }, + "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, + "limit": { "context": 163840, "output": 65536 }, + "cost": { "input": 0.27, "output": 1 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { "input": 1, "output": 5 } + }, + "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, + "limit": { "context": 1000000, "output": 384000 }, + "cost": { "input": 0.14, "output": 0.28, "cache_read": 0.028 } + }, + "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, + "limit": { "context": 1000000, "output": 384000 }, + "cost": { "input": 1.74, "output": 3.48, "cache_read": 0.145 } + } + } + }, + "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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0, "output": 0, "cache_read": 0 } + } + } + }, + "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, + "limit": { "context": 196608, "output": 128000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + } + } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.125, "output": 9 } + }, + "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, + "limit": { "context": 2000000, "output": 2000000 }, + "cost": { "input": 0.18, "output": 0.45 } + }, + "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, + "limit": { "context": 200000, "output": 65536 }, + "cost": { "input": 4.5, "output": 22.5 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { "input": 0.09, "output": 0.36 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 18.9, "output": 151.2 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { "input": 0.5, "output": 3 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 0.225, "output": 1.8 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 0.045, "output": 0.36 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { "input": 1.8, "output": 10.8 } + }, + "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, + "limit": { "context": 1048576, "output": 200000 }, + "cost": { "input": 0.135, "output": 3.15 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { "input": 2.7, "output": 13.5 } + }, + "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, + "limit": { "context": 1048576, "output": 65535 }, + "cost": { "input": 1.125, "output": 9 } + }, + "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, + "limit": { "context": 2000000, "output": 2000000 }, + "cost": { "input": 0.18, "output": 0.45 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.575, "output": 12.6 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 1.1, "output": 4.4 } + }, + "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, + "limit": { "context": 1048576, "output": 200000 }, + "cost": { "input": 1.125, "output": 9 } + }, + "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, + "limit": { "context": 1048576, "output": 65535 }, + "cost": { "input": 0.09, "output": 0.36 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.75, "output": 14 } + }, + "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, + "limit": { "context": 1048576, "output": 65535 }, + "cost": { "input": 0.27, "output": 2.25 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 0.225, "output": 1.8 } + }, + "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, + "limit": { "context": 256000, "output": 256000 }, + "cost": { "input": 0.18, "output": 1.35 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.125, "output": 9 } + }, + "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, + "limit": { "context": 2000000, "output": 2000000 }, + "cost": { "input": 0.18, "output": 0.45 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 1.1, "output": 4.4 } + }, + "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, + "limit": { "context": 256000, "output": 8192 }, + "cost": { "input": 2.7, "output": 13.5 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.125, "output": 9 } + }, + "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, + "limit": { "context": 200000, "output": 32000 }, + "cost": { "input": 13.5, "output": 67.5 } + }, + "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, + "limit": { "context": 20000, "output": 64000 }, + "cost": { "input": 0.9, "output": 4.5 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { "input": 2.7, "output": 13.5 } + }, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "cost": { "input": 5, "output": 25 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 10, "output": 40 } + }, + "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, + "limit": { "context": 400000, "output": 272000 }, + "cost": { "input": 13.5, "output": 108 } + }, + "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, + "limit": { "context": 1048576, "output": 65535 }, + "cost": { "input": 0.09, "output": 0.36 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.125, "output": 9 } + }, + "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, + "limit": { "context": 200000, "output": 32000 }, + "cost": { "input": 13.5, "output": 67.5 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.125, "output": 9 } + }, + "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, + "limit": { "context": 2000000, "output": 2000000 }, + "cost": { "input": 0.18, "output": 0.45 } + }, + "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, + "limit": { "context": 163840, "output": 163840 }, + "cost": { "input": 0.28, "output": 1.14 } + }, + "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, + "limit": { "context": 163840, "output": 32768 }, + "cost": { "input": 0.27, "output": 1 } + }, + "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, + "limit": { "context": 163840, "output": 32768 }, + "cost": { "input": 0.7, "output": 2.5 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0.6, "output": 2.2 } + }, + "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, + "limit": { "context": 131072, "output": 98304 }, + "cost": { "input": 0.6, "output": 2.2 } + }, + "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, + "limit": { "context": 65536, "output": 16384 }, + "cost": { "input": 0.6, "output": 1.8 } + }, + "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, + "limit": { "context": 200000, "output": 128000 }, + "cost": { "input": 0.07, "output": 0.4 } + }, + "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, + "limit": { "context": 1000000, "output": 40000 }, + "cost": { "input": 0.55, "output": 2.2 } + }, + "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, + "limit": { "context": 262144, "output": 131072 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 123000, "output": 16000 }, + "cost": { "input": 0.42, "output": 1.25 } + }, + "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, + "limit": { "context": 123000, "output": 12000 }, + "cost": { "input": 0.28, "output": 1.1 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0.3, "output": 1.2 } + }, + "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, + "limit": { "context": 131072, "output": 16384 }, + "cost": { "input": 0.15, "output": 0.8 } + }, + "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, + "limit": { "context": 40960, "output": 20000 }, + "cost": { "input": 0.1, "output": 0.45 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.3, "output": 3 } + }, + "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, + "limit": { "context": 65536, "output": 65536 }, + "cost": { "input": 0.15, "output": 1.5 } + }, + "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, + "limit": { "context": 65536, "output": 65536 }, + "cost": { "input": 0.15, "output": 1.5 } + }, + "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, + "limit": { "context": 40960, "output": 20000 }, + "cost": { "input": 0.09, "output": 0.45 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.2, "output": 1.5 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.29, "output": 1.2 } + }, + "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, + "limit": { "context": 40960, "output": 20000 }, + "cost": { "input": 0.2, "output": 0.8 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.6, "output": 3 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.57, "output": 2.3 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.6, "output": 2.5 } + } + } + }, + "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, + "limit": { "context": 128000, "output": 32000 }, + "cost": { "input": 0.57, "output": 2.29 } + }, + "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, + "limit": { "context": 128000, "output": 32000 }, + "cost": { "input": 0.57, "output": 2.29 } + } + } + }, + "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, + "limit": { "context": 256000, "output": 64000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 32000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 32000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 256000, "output": 32000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 256000, "output": 64000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 256000, "output": 64000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 256000, "output": 64000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 200000, "output": 128000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 256000, "output": 32000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 64000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 32000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 64000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 256000, "output": 32000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 32000 }, + "cost": { "input": 0, "output": 0 } + } + } + }, + "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, + "limit": { "context": 512000, "output": 32000 }, + "cost": { "input": 15, "output": 75 } + }, + "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, + "limit": { "context": 128000, "output": 32000 }, + "cost": { "input": 3, "output": 15 } + }, + "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, + "limit": { "context": 128000, "output": 32000 }, + "cost": { "input": 3, "output": 15 } + } + } + }, + "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, + "limit": { "context": 262144, "output": 32768 }, + "cost": { "input": 0.6, "output": 3.6 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.2, "output": 1.5 } + }, + "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, + "limit": { "context": 262144, "output": 66536 }, + "cost": { "input": 0.25, "output": 1 } + }, + "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, + "limit": { "context": 32000, "output": 4096 }, + "cost": { "input": 0.01, "output": 0 } + }, + "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, + "limit": { "context": 262144, "output": 131072 }, + "cost": { "input": 0.3, "output": 3 } + }, + "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, + "limit": { "context": 262144, "output": 131072 }, + "cost": { "input": 0.3, "output": 2 } + }, + "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, + "limit": { "context": 32000, "output": 2048 }, + "cost": { "input": 0.01, "output": 0 } + }, + "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, + "limit": { "context": 262144, "output": 66536 }, + "cost": { "input": 2, "output": 2 } + }, + "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, + "limit": { "context": 200000, "output": 128000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0.6, "output": 2.2, "cache_read": 0.11 } + }, + "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, + "limit": { "context": 202752, "output": 131072 }, + "cost": { "input": 1, "output": 3.2, "cache_read": 0.2 } + }, + "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, + "limit": { "context": 202752, "output": 131072 }, + "cost": { "input": 1, "output": 3.2, "cache_read": 0.2 } + }, + "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, + "limit": { "context": 262144, "output": 4096 }, + "cost": { "input": 0.1, "output": 0.3 } + }, + "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, + "limit": { "context": 163840, "output": 163840 }, + "cost": { "input": 3, "output": 5 } + }, + "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, + "limit": { "context": 163840, "output": 65536 }, + "cost": { "input": 0.28, "output": 0.4 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.6, "output": 2.5, "cache_read": 0.15 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.95, "output": 4, "cache_read": 0.16 } + }, + "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, + "limit": { "context": 131072, "output": 16384 }, + "cost": { "input": 1, "output": 3 } + }, + "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, + "limit": { "context": 262144, "output": 16384 }, + "cost": { "input": 1, "output": 3 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.6, "output": 3, "cache_read": 0.1 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0.3, "output": 1.2, "cache_read": 0.03 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0.3, "output": 1.2, "cache_read": 0.06 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0.3, "output": 1.2 } + }, + "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, + "limit": { "context": 1048576, "output": 393216 }, + "cost": { "input": 1.74, "output": 3.48, "cache_read": 0.145 } + } + } + }, + "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, + "limit": { "context": 128000, "output": 64000 }, + "cost": { "input": 0.28, "output": 0.42, "cache_read": 0.03 } + }, + "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, + "limit": { "context": 163000, "output": 64000 }, + "cost": { "input": 0.22, "output": 0.33 } + }, + "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, + "limit": { "context": 128000, "output": 64000 }, + "cost": { "input": 0.28, "output": 0.43 } + }, + "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, + "limit": { "context": 128000, "output": 64000 }, + "cost": { "input": 0.56, "output": 2.24, "cache_read": 0.11 } + }, + "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, + "limit": { "context": 128000, "output": 64000 }, + "cost": { "input": 0.56, "output": 2.24, "cache_read": 0.11 } + }, + "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, + "limit": { "context": 256000, "output": 64000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 256000, "output": 64000 }, + "cost": { "input": 0.1, "output": 0.3 } + }, + "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, + "limit": { "context": 65536, "output": 64000 }, + "cost": { "input": 0.21, "output": 0.57 } + }, + "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, + "limit": { "context": 256000, "output": 80000 }, + "cost": { "input": 0.3, "output": 1.2, "cache_read": 0.06 } + }, + "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, + "limit": { "context": 2000000, "output": 64000 }, + "cost": { "input": 0.2, "output": 0.5, "cache_read": 0.05 } + }, + "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, + "limit": { "context": 256000, "output": 64000 }, + "cost": { "input": 0.2, "output": 1.5, "cache_read": 0.02 } + }, + "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, + "limit": { "context": 2000000, "output": 64000 }, + "cost": { "input": 0.2, "output": 0.5, "cache_read": 0.05 } + }, + "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, + "limit": { "context": 256000, "output": 64000 }, + "cost": { "input": 3, "output": 15, "cache_read": 0.75 } + }, + "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, + "limit": { "context": 2000000, "output": 64000 }, + "cost": { "input": 0.2, "output": 0.5, "cache_read": 0.05 } + }, + "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, + "limit": { "context": 2000000, "output": 30000 }, + "cost": { "input": 3, "output": 9 } + }, + "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, + "limit": { "context": 2000000, "output": 30000 }, + "cost": { "input": 3, "output": 9 } + }, + "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, + "limit": { "context": 128000, "output": 16380 }, + "provider": { + "npm": "@ai-sdk/openai", + "api": "https://zenmux.ai/api/v1" + }, + "cost": { "input": 1.75, "output": 14 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "provider": { + "npm": "@ai-sdk/openai", + "api": "https://zenmux.ai/api/v1" + }, + "cost": { "input": 21, "output": 168 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "provider": { + "npm": "@ai-sdk/openai", + "api": "https://zenmux.ai/api/v1" + }, + "cost": { "input": 1.75, "output": 14 } + }, + "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, + "limit": { "context": 400000, "output": 64000 }, + "provider": { + "npm": "@ai-sdk/openai", + "api": "https://zenmux.ai/api/v1" + }, + "cost": { "input": 1.75, "output": 14, "cache_read": 0.17 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "provider": { + "npm": "@ai-sdk/openai", + "api": "https://zenmux.ai/api/v1" + }, + "cost": { "input": 0.75, "output": 4.5 } + }, + "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, + "limit": { "context": 128000, "output": 64000 }, + "provider": { + "npm": "@ai-sdk/openai", + "api": "https://zenmux.ai/api/v1" + }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.12 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "provider": { + "npm": "@ai-sdk/openai", + "api": "https://zenmux.ai/api/v1" + }, + "cost": { "input": 0.2, "output": 1.25 } + }, + "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, + "limit": { "context": 400000, "output": 64000 }, + "provider": { + "npm": "@ai-sdk/openai", + "api": "https://zenmux.ai/api/v1" + }, + "cost": { "input": 1.75, "output": 14, "cache_read": 0.17 } + }, + "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, + "limit": { "context": 400000, "output": 64000 }, + "provider": { + "npm": "@ai-sdk/openai", + "api": "https://zenmux.ai/api/v1" + }, + "cost": { "input": 0.25, "output": 2, "cache_read": 0.03 } + }, + "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, + "limit": { "context": 400000, "output": 64000 }, + "provider": { + "npm": "@ai-sdk/openai", + "api": "https://zenmux.ai/api/v1" + }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.12 } + }, + "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, + "limit": { "context": 1050000, "output": 128000 }, + "provider": { + "npm": "@ai-sdk/openai", + "api": "https://zenmux.ai/api/v1" + }, + "cost": { "input": 45, "output": 225 } + }, + "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, + "limit": { "context": 400000, "output": 64000 }, + "provider": { + "npm": "@ai-sdk/openai", + "api": "https://zenmux.ai/api/v1" + }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.12 } + }, + "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, + "limit": { "context": 1050000, "output": 128000 }, + "provider": { + "npm": "@ai-sdk/openai", + "api": "https://zenmux.ai/api/v1" + }, + "cost": { "input": 3.75, "output": 18.75 } + }, + "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, + "limit": { "context": 400000, "output": 64000 }, + "provider": { + "npm": "@ai-sdk/openai", + "api": "https://zenmux.ai/api/v1" + }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.12 } + }, + "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, + "limit": { "context": 400000, "output": 64000 }, + "provider": { + "npm": "@ai-sdk/openai", + "api": "https://zenmux.ai/api/v1" + }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.12 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 200000, "output": 128000 }, + "cost": { "input": 0.726, "output": 3.1946, "cache_read": 0.1743 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { "input": 0.28, "output": 1.14, "cache_read": 0.06 } + }, + "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, + "limit": { "context": 200000, "output": 128000 }, + "cost": { "input": 0.58, "output": 2.6, "cache_read": 0.14 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { "input": 0.07, "output": 0.42, "cache_read": 0.01 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 200000, "output": 131072 }, + "cost": { "input": 0.8781, "output": 3.5126, "cache_read": 0.1903 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { "input": 0.02, "output": 0.21, "cache_read": 0.0043 } + }, + "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, + "limit": { "context": 128000, "output": 64000 }, + "cost": { "input": 0.35, "output": 1.54, "cache_read": 0.07 } + }, + "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, + "limit": { "context": 128000, "output": 64000 }, + "cost": { "input": 0.11, "output": 0.56, "cache_read": 0.02 } + }, + "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, + "limit": { "context": 200000, "output": 128000 }, + "cost": { "input": 0.88, "output": 3.48 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { "input": 0.35, "output": 1.54, "cache_read": 0.07 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { "input": 0.14, "output": 0.42, "cache_read": 0.03 } + }, + "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, + "limit": { "context": 256000, "output": 32000 }, + "cost": { "input": 0.9, "output": 4.48 } + }, + "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, + "limit": { "context": 256000, "output": 64000 }, + "cost": { "input": 0.17, "output": 1.12, "cache_read": 0.03 } + }, + "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, + "limit": { "context": 256000, "output": 64000 }, + "cost": { + "input": 0.03, + "output": 0.28, + "cache_read": 0.01, + "cache_write": 0.0024 + } + }, + "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, + "limit": { "context": 256000, "output": 64000 }, + "cost": { + "input": 0.09, + "output": 0.51, + "cache_read": 0.02, + "cache_write": 0.0024 + } + }, + "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, + "limit": { "context": 256000, "output": 64000 }, + "cost": { + "input": 0.11, + "output": 0.28, + "cache_read": 0.02, + "cache_write": 0.0024 + } + }, + "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, + "limit": { "context": 256000, "output": 64000 }, + "cost": { + "input": 0.45, + "output": 2.24, + "cache_read": 0.09, + "cache_write": 0.0024 + } + }, + "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, + "limit": { "context": 128000, "output": 64000 }, + "cost": { "input": 0.84, "output": 3.37 } + }, + "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, + "limit": { "context": 204800, "output": 131070 }, + "provider": { + "npm": "@ai-sdk/anthropic", + "api": "https://zenmux.ai/api/anthropic/v1" + }, + "cost": { "input": 0.3055, "output": 1.2219 } + }, + "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, + "limit": { "context": 204800, "output": 131070 }, + "provider": { + "npm": "@ai-sdk/anthropic", + "api": "https://zenmux.ai/api/anthropic/v1" + }, + "cost": { "input": 0.611, "output": 2.4439 } + }, + "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, + "limit": { "context": 204000, "output": 64000 }, + "provider": { + "npm": "@ai-sdk/anthropic", + "api": "https://zenmux.ai/api/anthropic/v1" + }, + "cost": { + "input": 0.3, + "output": 1.2, + "cache_read": 0.03, + "cache_write": 0.38 + } + }, + "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, + "limit": { "context": 204000, "output": 64000 }, + "provider": { + "npm": "@ai-sdk/anthropic", + "api": "https://zenmux.ai/api/anthropic/v1" + }, + "cost": { + "input": 0.3, + "output": 1.2, + "cache_read": 0.03, + "cache_write": 0.38 + } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "provider": { + "npm": "@ai-sdk/anthropic", + "api": "https://zenmux.ai/api/anthropic/v1" + }, + "cost": { + "input": 0.6, + "output": 4.8, + "cache_read": 0.06, + "cache_write": 0.75 + } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "provider": { + "npm": "@ai-sdk/anthropic", + "api": "https://zenmux.ai/api/anthropic/v1" + }, + "cost": { + "input": 0.3, + "output": 1.2, + "cache_read": 0.03, + "cache_write": 0.375 + } + }, + "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, + "limit": { "context": 1000000, "output": 64000 }, + "cost": { + "input": 1, + "output": 5, + "cache_read": 0.1, + "cache_write": 1.25 + } + }, + "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, + "limit": { "context": 1020000, "output": 1020000 }, + "cost": { "input": 0.1, "output": 0.4 } + }, + "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, + "limit": { "context": 1000000, "output": 64000 }, + "cost": { + "input": 0.5, + "output": 3, + "cache_read": 0.05, + "cache_write": 0.625, + "tiers": [ + { + "input": 2, + "output": 6, + "cache_read": 0.2, + "cache_write": 2.5, + "tier": { "type": "context", "size": 256000 } + } + ], + "context_over_200k": { + "input": 2, + "output": 6, + "cache_read": 0.2, + "cache_write": 2.5 + } + } + }, + "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, + "limit": { "context": 256000, "output": 64000 }, + "cost": { "input": 1.2, "output": 6 } + }, + "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, + "limit": { "context": 1000000, "output": 64000 }, + "cost": { "input": 0.8, "output": 4.8 } + }, + "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, + "limit": { "context": 1050000, "output": 65530 }, + "cost": { "input": 0.25, "output": 1.5 } + }, + "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, + "limit": { "context": 1048000, "output": 64000 }, + "cost": { + "input": 2, + "output": 12, + "cache_read": 0.2, + "cache_write": 4.5 + } + }, + "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, + "limit": { "context": 1048000, "output": 64000 }, + "cost": { + "input": 0.5, + "output": 3, + "cache_read": 0.05, + "cache_write": 1 + } + }, + "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, + "limit": { "context": 1048000, "output": 64000 }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.31, + "cache_write": 4.5 + } + }, + "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, + "limit": { "context": 1048000, "output": 64000 }, + "cost": { + "input": 0.3, + "output": 2.5, + "cache_read": 0.07, + "cache_write": 1 + } + }, + "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, + "limit": { "context": 1048000, "output": 64000 }, + "cost": { + "input": 0.1, + "output": 0.4, + "cache_read": 0.03, + "cache_write": 1 + } + }, + "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, + "limit": { "context": 256000, "output": 256000 }, + "cost": { "input": 0.12, "output": 0.6 } + }, + "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, + "limit": { "context": 256000, "output": 256000 }, + "cost": { "input": 0.16, "output": 0.8 } + }, + "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, + "limit": { "context": 262000, "output": 64000 }, + "cost": { "input": 0.58, "output": 3.02, "cache_read": 0.1 } + }, + "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, + "limit": { "context": 262000, "output": 64000 }, + "cost": { "input": 1.15, "output": 8, "cache_read": 0.15 } + }, + "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, + "limit": { "context": 262000, "output": 64000 }, + "cost": { "input": 0.6, "output": 2.5, "cache_read": 0.15 } + }, + "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, + "limit": { "context": 262140, "output": 262140 }, + "cost": { "input": 0.95, "output": 4, "cache_read": 0.16 } + }, + "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, + "limit": { "context": 262000, "output": 64000 }, + "cost": { "input": 0.6, "output": 2.5, "cache_read": 0.15 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "provider": { + "npm": "@ai-sdk/anthropic", + "api": "https://zenmux.ai/api/anthropic/v1" + }, + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "provider": { + "npm": "@ai-sdk/anthropic", + "api": "https://zenmux.ai/api/anthropic/v1" + }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "provider": { + "npm": "@ai-sdk/anthropic", + "api": "https://zenmux.ai/api/anthropic/v1" + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } + }, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "provider": { + "npm": "@ai-sdk/anthropic", + "api": "https://zenmux.ai/api/anthropic/v1" + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } + }, + "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, + "limit": { "context": 1000000, "output": 64000 }, + "provider": { + "npm": "@ai-sdk/anthropic", + "api": "https://zenmux.ai/api/anthropic/v1" + }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 1000000, "output": 64000 }, + "provider": { + "npm": "@ai-sdk/anthropic", + "api": "https://zenmux.ai/api/anthropic/v1" + }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "provider": { + "npm": "@ai-sdk/anthropic", + "api": "https://zenmux.ai/api/anthropic/v1" + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } + }, + "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, + "limit": { "context": 200000, "output": 32000 }, + "provider": { + "npm": "@ai-sdk/anthropic", + "api": "https://zenmux.ai/api/anthropic/v1" + }, + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "provider": { + "npm": "@ai-sdk/anthropic", + "api": "https://zenmux.ai/api/anthropic/v1" + }, + "cost": { + "input": 0.8, + "output": 4, + "cache_read": 0.08, + "cache_write": 1 + } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "provider": { + "npm": "@ai-sdk/anthropic", + "api": "https://zenmux.ai/api/anthropic/v1" + }, + "cost": { + "input": 1, + "output": 5, + "cache_read": 0.1, + "cache_write": 1.25 + } + }, + "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, + "limit": { "context": 1000000, "output": 64000 }, + "provider": { + "npm": "@ai-sdk/anthropic", + "api": "https://zenmux.ai/api/anthropic/v1" + }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 1000000, "output": 384000 }, + "cost": { "input": 0.14, "output": 0.28, "cache_read": 0.028 } + }, + "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, + "limit": { "context": 1000000, "output": 384000 }, + "cost": { "input": 1.74, "output": 3.48, "cache_read": 0.145 } + }, + "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, + "limit": { "context": 256000, "output": 64000 }, + "cost": { + "input": 0.172, + "output": 0.572, + "cache_read": 0.058, + "cache_write": 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-23", + "modalities": { "input": ["text", "image", "pdf"], "output": ["text"] }, + "open_weights": false, + "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" } } + } + } + }, + "cost": { + "input": 5, + "output": 30, + "cache_read": 0.5, + "context_over_200k": { "input": 10, "output": 45, "cache_read": 1 }, + "tiers": [ + { + "input": 10, + "output": 45, + "cache_read": 1, + "tier": { "type": "context", "size": 272000 } + } + ] + } + }, + "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, + "limit": { "context": 1050000, "input": 922000, "output": 128000 }, + "cost": { + "input": 30, + "output": 180, + "context_over_200k": { "input": 60, "output": 270 }, + "tiers": [ + { + "input": 60, + "output": 270, + "tier": { "type": "context", "size": 272000 } + } + ] + } + }, + "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, + "limit": { "context": 1048576, "output": 131072 }, + "cost": { + "input": 1, + "output": 3, + "cache_read": 0.2, + "context_over_200k": { "input": 2, "output": 6, "cache_read": 0.4 }, + "tiers": [ + { + "input": 2, + "output": 6, + "cache_read": 0.4, + "tier": { "type": "context", "size": 256000 } + } + ] + } + }, + "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, + "limit": { "context": 265000, "output": 265000 }, + "cost": { "input": 0.4, "output": 2, "cache_read": 0.08 } + }, + "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, + "limit": { "context": 1048576, "output": 131072 }, + "cost": { + "input": 0.4, + "output": 2, + "cache_read": 0.08, + "context_over_200k": { + "input": 0.8, + "output": 4, + "cache_read": 0.16 + }, + "tiers": [ + { + "input": 0.8, + "output": 4, + "cache_read": 0.16, + "tier": { "type": "context", "size": 256000 } + } + ] + } + }, + "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, + "limit": { "context": 1000000, "output": 256000 }, + "cost": { + "input": 1, + "output": 3, + "cache_read": 0.2, + "context_over_200k": { "input": 2, "output": 6, "cache_read": 0.4 }, + "tiers": [ + { + "input": 2, + "output": 6, + "cache_read": 0.4, + "tier": { "type": "context", "size": 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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.1, "output": 0.3, "cache_read": 0.01 } + } + } + }, + "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, + "limit": { "context": 65536, "output": 8192 }, + "cost": { "input": 0.25, "output": 0.25 } + }, + "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, + "limit": { "context": 32768, "output": 4096 }, + "cost": { "input": 0.15, "output": 0.15 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.25, "output": 0.25 } + } + } + }, + "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, + "limit": { "context": 64000, "output": 16000 }, + "cost": { "input": 0.7, "output": 2.5 } + }, + "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, + "limit": { "context": 163840, "output": 163840 }, + "cost": { "input": 0.27, "output": 1.12, "cache_read": 0.135 } + }, + "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, + "limit": { "context": 8192, "output": 8192 }, + "cost": { "input": 0.03, "output": 0.03 } + }, + "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, + "limit": { "context": 8192, "output": 8192 }, + "cost": { "input": 0.03, "output": 0.03 } + }, + "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, + "limit": { "context": 8192, "output": 8192 }, + "cost": { "input": 0.8, "output": 0.8 } + }, + "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, + "limit": { "context": 160000, "output": 160000 }, + "cost": { "input": 0.7, "output": 2.5 } + }, + "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, + "limit": { "context": 128000, "output": 32000 }, + "cost": { "input": 0.06, "output": 0.09 } + }, + "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": false, + "tool_call": false, + "temperature": true, + "release_date": "2025-01-20", + "last_updated": "2025-01-20", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 64000, "output": 32000 }, + "cost": { "input": 0.3, "output": 0.3 } + }, + "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, + "limit": { "context": 163840, "output": 65536 }, + "cost": { "input": 0.27, "output": 0.41 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.27, "output": 1, "cache_read": 0.135 } + }, + "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, + "limit": { "context": 163840, "output": 65536 }, + "cost": { "input": 0.269, "output": 0.4, "cache_read": 0.1345 } + }, + "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, + "limit": { "context": 64000, "output": 16000 }, + "cost": { "input": 0.4, "output": 1.3 } + }, + "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": false, + "tool_call": false, + "temperature": true, + "release_date": "2025-01-20", + "last_updated": "2025-01-20", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 32768, "output": 16384 }, + "cost": { "input": 0.15, "output": 0.15 } + }, + "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, + "limit": { "context": 163840, "output": 32768 }, + "cost": { "input": 0.7, "output": 2.5, "cache_read": 0.35 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.27, "output": 1, "cache_read": 0.135 } + }, + "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, + "limit": { "context": 262144, "output": 32768 }, + "cost": { "input": 0, "output": 0 } + }, + "inclusionai/ling-2.6-flash": { + "id": "inclusionai/ling-2.6-flash", + "name": "Ling-2.6-flash", + "family": "ling", + "attachment": false, + "reasoning": false, + "tool_call": true, + "structured_output": true, + "temperature": true, + "release_date": "2026-04-24", + "last_updated": "2026-04-24", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 262144, "output": 32768 }, + "cost": { "input": 0.1, "output": 0.3, "cache_read": 0.02 } + }, + "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, + "limit": { "context": 16384, "output": 16384 }, + "cost": { "input": 0.02, "output": 0.02 } + }, + "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, + "limit": { "context": 8192, "output": 8192 }, + "cost": { "input": 0.14, "output": 0.14 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0.6, "output": 2.2, "cache_read": 0.11 } + }, + "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, + "limit": { "context": 202800, "output": 131072 }, + "cost": { "input": 1, "output": 3.2, "cache_read": 0.2 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 1.4, "output": 4.4, "cache_read": 0.26 } + }, + "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, + "limit": { "context": 131072, "output": 98304 }, + "cost": { "input": 0.6, "output": 2.2, "cache_read": 0.11 } + }, + "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, + "limit": { "context": 131072, "output": 98304 }, + "cost": { "input": 0.13, "output": 0.85 } + }, + "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, + "limit": { "context": 65536, "output": 16384 }, + "cost": { "input": 0.6, "output": 1.8, "cache_read": 0.11 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0.55, "output": 2.2, "cache_read": 0.11 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.3, "output": 0.9, "cache_read": 0.055 } + }, + "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, + "limit": { "context": 200000, "output": 128000 }, + "cost": { "input": 0.07, "output": 0.4, "cache_read": 0.01 } + }, + "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, + "limit": { "context": 65536, "output": 65536 }, + "cost": { "input": 0.035, "output": 0.138 } + }, + "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, + "limit": { "context": 60288, "output": 16000 }, + "cost": { "input": 0.04, "output": 0.17 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.07, "output": 0.07 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.18, "output": 0.59 } + }, + "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, + "limit": { "context": 131072, "output": 120000 }, + "cost": { "input": 0.135, "output": 0.4 } + }, + "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, + "temperature": true, + "release_date": "2024-09-18", + "last_updated": "2024-09-18", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 32768, "output": 32000 }, + "cost": { "input": 0.03, "output": 0.05 } + }, + "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, + "limit": { "context": 8192, "output": 8192 }, + "cost": { "input": 0.04, "output": 0.04 } + }, + "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, + "limit": { "context": 16384, "output": 16384 }, + "cost": { "input": 0.02, "output": 0.05 } + }, + "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, + "limit": { "context": 8192, "output": 8000 }, + "cost": { "input": 0.51, "output": 0.74 } + }, + "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, + "limit": { "context": 1048576, "output": 8192 }, + "cost": { "input": 0.27, "output": 0.85 } + }, + "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, + "limit": { "context": 4096, "output": 3200 }, + "cost": { "input": 0.09, "output": 0.09 } + }, + "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, + "limit": { "context": 8192, "output": 8192 }, + "cost": { "input": 1.48, "output": 1.48 } + }, + "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, + "limit": { "context": 8192, "output": 8192 }, + "cost": { "input": 1.48, "output": 1.48 } + }, + "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, + "limit": { "context": 8192, "output": 8192 }, + "cost": { "input": 0.05, "output": 0.05 } + }, + "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, + "limit": { "context": 65535, "output": 8000 }, + "cost": { "input": 0.62, "output": 0.62 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.04, "output": 0.15 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.05, "output": 0.25 } + }, + "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, + "limit": { "context": 1000000, "output": 40000 }, + "cost": { "input": 0.55, "output": 2.2 } + }, + "Sao10K/L3-8B-Stheno-v3.2": { + "id": "Sao10K/L3-8B-Stheno-v3.2", + "name": "L3 8B Stheno V3.2", + "family": "llama", + "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, + "limit": { "context": 8192, "output": 32000 }, + "cost": { "input": 0.05, "output": 0.05 } + }, + "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, + "limit": { "context": 262144, "output": 32000 }, + "cost": { "input": 0.1, "output": 0.3, "cache_read": 0.3 } + }, + "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, + "limit": { "context": 131072, "output": 65536 }, + "cost": { "input": 0.39, "output": 0.39 } + }, + "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, + "limit": { "context": 123000, "output": 16000 }, + "cost": { "input": 0.42, "output": 1.25 } + }, + "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, + "limit": { "context": 120000, "output": 8000 }, + "cost": { "input": 0.07, "output": 0.28 } + }, + "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, + "limit": { "context": 123000, "output": 12000 }, + "cost": { "input": 0.28, "output": 1.1 } + }, + "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, + "limit": { "context": 131072, "output": 65536 }, + "cost": { "input": 0.07, "output": 0.28 } + }, + "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, + "limit": { "context": 30000, "output": 8000 }, + "cost": { "input": 1.4, "output": 5.6 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0.3, "output": 1.2, "cache_read": 0.06 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0.3, "output": 1.2, "cache_read": 0.03 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0.3, "output": 1.2, "cache_read": 0.03 } + }, + "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, + "limit": { "context": 204800, "output": 131100 }, + "cost": { "input": 0.3, "output": 1.2, "cache_read": 0.03 } + }, + "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, + "limit": { "context": 204800, "output": 131100 }, + "cost": { "input": 0.6, "output": 2.4, "cache_read": 0.03 } + }, + "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, + "limit": { "context": 32000, "output": 32000 }, + "cost": { "input": 0.07, "output": 0.07 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.4, "output": 3.2 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.3, "output": 2.4 } + }, + "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, + "limit": { "context": 131072, "output": 16384 }, + "cost": { "input": 0.09, "output": 0.58 } + }, + "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, + "limit": { "context": 65536, "output": 16384 }, + "cost": { + "input": 0.25, + "output": 0.97, + "input_audio": 2.2, + "output_audio": 1.788 + } + }, + "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, + "limit": { "context": 262144, "output": 64000 }, + "cost": { "input": 0.6, "output": 3.6 } + }, + "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, + "limit": { "context": 32768, "output": 32768 }, + "cost": { "input": 0.8, "output": 0.8 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.98, "output": 3.95 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.2, "output": 1 } + }, + "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, + "limit": { "context": 65536, "output": 16384 }, + "cost": { + "input": 0.25, + "output": 0.97, + "input_audio": 2.2, + "output_audio": 1.788 + } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.08, "output": 0.5 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 2.11, "output": 8.45 } + }, + "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, + "limit": { "context": 40960, "output": 20000 }, + "cost": { "input": 0.1, "output": 0.45 } + }, + "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, + "limit": { "context": 128000, "output": 20000 }, + "cost": { "input": 0.03, "output": 0.03 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.3, "output": 3 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.15, "output": 1.5 } + }, + "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, + "limit": { "context": 16384, "output": 8192 }, + "cost": { "input": 0.25, "output": 0.75 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.15, "output": 1.5 } + }, + "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, + "limit": { "context": 40960, "output": 20000 }, + "cost": { "input": 0.09, "output": 0.45 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.2, "output": 1.5 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.3, "output": 1.3 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.2, "output": 0.7 } + }, + "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, + "limit": { "context": 160000, "output": 32768 }, + "cost": { "input": 0.07, "output": 0.27 } + }, + "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, + "limit": { "context": 40960, "output": 20000 }, + "cost": { "input": 0.2, "output": 0.8 } + }, + "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, + "limit": { "context": 128000, "output": 20000 }, + "cost": { "input": 0.035, "output": 0.138 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.3, "output": 1.5 } + }, + "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, + "limit": { "context": 32000, "output": 8192 }, + "cost": { "input": 0.38, "output": 0.4 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.25, "output": 2 } + }, + "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, + "limit": { "context": 256000, "output": 128000 }, + "cost": { "input": 0.3, "output": 1.2, "cache_read": 0.06 } + }, + "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, + "release_date": "2026-04-02", + "last_updated": "2026-04-02", + "modalities": { "input": ["text", "image"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 262144, "output": 131072 }, + "cost": { "input": 0.14, "output": 0.4 } + }, + "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, + "release_date": "2025-03-13", + "last_updated": "2025-03-13", + "modalities": { "input": ["text", "image"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.05, "output": 0.1 } + }, + "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, + "limit": { "context": 98304, "output": 16384 }, + "cost": { "input": 0.119, "output": 0.2 } + }, + "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, + "release_date": "2026-04-02", + "last_updated": "2026-04-02", + "modalities": { "input": ["text", "image"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 262144, "output": 131072 }, + "cost": { "input": 0.13, "output": 0.4 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.6, "output": 3, "cache_read": 0.1 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.57, "output": 2.3 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.6, "output": 2.5 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.6, "output": 2.5 } + }, + "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, + "limit": { "context": 1048576, "output": 393216 }, + "cost": { "input": 0.14, "output": 0.28, "cache_read": 0.028 } + }, + "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, + "limit": { "context": 1048576, "output": 393216 }, + "cost": { "input": 1.69, "output": 3.38, "cache_read": 0.13 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.95, "output": 4, "cache_read": 0.16 } + } + } + }, + "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, + "limit": { "context": 8192, "output": 16384 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 1048576, "output": 131072 }, + "cost": { "input": 0, "output": 0, "cache_read": 0 } + }, + "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, + "limit": { "context": 262144, "output": 131072 }, + "cost": { "input": 0, "output": 0, "cache_read": 0 } + }, + "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, + "limit": { "context": 1048576, "output": 131072 }, + "cost": { "input": 0, "output": 0, "cache_read": 0 } + }, + "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, + "limit": { "context": 1048576, "output": 131072 }, + "cost": { "input": 0, "output": 0, "cache_read": 0 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0, "output": 0, "cache_read": 0 } + } + } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.1, "output": 0.3 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.1, "output": 0.1 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.1, "output": 0.1 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 1, "output": 1.5 } + }, + "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, + "limit": { "context": 200000, "output": 200000 }, + "cost": { "input": 1, "output": 3.2 } + }, + "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, + "limit": { "context": 64000, "output": 64000 }, + "cost": { "input": 0.17, "output": 0.66 } + }, + "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, + "limit": { "context": 128000, "output": 128000 }, + "cost": { "input": 0.71, "output": 0.71 } + }, + "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, + "limit": { "context": 128000, "output": 128000 }, + "cost": { "input": 0.22, "output": 0.22 } + }, + "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, + "limit": { "context": 128000, "output": 128000 }, + "cost": { "input": 0.8, "output": 0.8 } + }, + "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, + "limit": { "context": 32768, "output": 32768 }, + "cost": { "input": 0.05, "output": 0.22 } + }, + "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, + "limit": { "context": 128000, "output": 128000 }, + "cost": { "input": 0.08, "output": 0.35 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.2, "output": 0.8 } + }, + "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, + "limit": { "context": 161000, "output": 161000 }, + "cost": { "input": 0.55, "output": 1.65 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.05, "output": 0.2 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.15, "output": 0.6 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.5, "output": 2.85 } + }, + "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, + "limit": { "context": 196608, "output": 196608 }, + "cost": { "input": 0.3, "output": 1.2 } + }, + "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, + "limit": { "context": 200000, "output": 131072 }, + "cost": { + "input": 1.4, + "output": 4.4, + "cache_read": 0.26, + "cache_write": 0 + } + } + } + }, + "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": { + "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-04-25", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 32768, "output": 32768 }, + "cost": { "input": 0.0245, "output": 0.0978, "cache_read": 0.01225 } + }, + "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-04-25", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 40960, "output": 40960 }, + "cost": { "input": 0.0136, "output": 0.0543, "cache_read": 0.0068 } + }, + "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-04-25", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 40960, "output": 40960 }, + "cost": { "input": 0.06, "output": 0.22, "cache_read": 0.03 } + }, + "Qwen/Qwen3-32B-TEE": { + "id": "Qwen/Qwen3-32B-TEE", + "name": "Qwen3 32B TEE", + "family": "qwen", + "attachment": false, + "reasoning": true, + "tool_call": true, + "structured_output": true, + "temperature": true, + "release_date": "2026-04-25", + "last_updated": "2026-04-25", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 40960, "output": 40960 }, + "cost": { "input": 0.08, "output": 0.24, "cache_read": 0.04 } + }, + "Qwen/Qwen3.6-27B-TEE": { + "id": "Qwen/Qwen3.6-27B-TEE", + "name": "Qwen3.6 27B TEE", + "family": "qwen", + "attachment": true, + "reasoning": true, + "tool_call": true, + "structured_output": true, + "temperature": true, + "release_date": "2026-04-25", + "last_updated": "2026-04-25", + "modalities": { "input": ["text", "image"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.195, "output": 1.56, "cache_read": 0.0975 } + }, + "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-04-25", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 32768, "output": 32768 }, + "cost": { "input": 0.0272, "output": 0.1087, "cache_read": 0.0136 } + }, + "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, + "temperature": true, + "release_date": "2025-12-29", + "last_updated": "2026-04-25", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 32768, "output": 8192 }, + "cost": { "input": 0.01, "output": 0.0109, "cache_read": 0.005 } + }, + "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-04-25", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.1, "output": 0.8, "cache_read": 0.05 } + }, + "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-04-25", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.1, "output": 0.6, "cache_read": 0.05 } + }, + "Qwen/Qwen3-Coder-Next-TEE": { + "id": "Qwen/Qwen3-Coder-Next-TEE", + "name": "Qwen3 Coder Next TEE", + "family": "qwen", + "attachment": false, + "reasoning": false, + "tool_call": true, + "structured_output": true, + "temperature": true, + "release_date": "2026-04-25", + "last_updated": "2026-04-25", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.12, "output": 0.75, "cache_read": 0.06 } + }, + "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-04-25", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.11, "output": 0.6, "cache_read": 0.055 } + }, + "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": false, + "structured_output": true, + "temperature": true, + "release_date": "2025-12-29", + "last_updated": "2026-04-25", + "modalities": { "input": ["text", "image"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 16384, "output": 16384 }, + "cost": { "input": 0.0543, "output": 0.2174, "cache_read": 0.02715 } + }, + "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-04-25", + "modalities": { "input": ["text", "image"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.39, "output": 2.34, "cache_read": 0.195 } + }, + "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-04-25", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 32768, "output": 32768 }, + "cost": { "input": 0.2989, "output": 1.1957, "cache_read": 0.14945 } + }, + "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-25", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 202752, "output": 65535 }, + "cost": { "input": 1.05, "output": 3.5, "cache_read": 0.525 } + }, + "zai-org/GLM-4.7-FP8": { + "id": "zai-org/GLM-4.7-FP8", + "name": "GLM 4.7 FP8", + "family": "glm", + "attachment": false, + "reasoning": true, + "tool_call": true, + "structured_output": true, + "temperature": true, + "release_date": "2026-01-27", + "last_updated": "2026-04-25", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 202752, "output": 65535 }, + "cost": { "input": 0.2989, "output": 1.1957, "cache_read": 0.14945 } + }, + "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-04-25", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 202752, "output": 65535 }, + "cost": { "input": 0.95, "output": 2.55, "cache_read": 0.475 } + }, + "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-04-25", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 202752, "output": 65535 }, + "cost": { "input": 0.39, "output": 1.75, "cache_read": 0.195 } + }, + "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" }, + "structured_output": true, + "temperature": true, + "release_date": "2025-12-29", + "last_updated": "2026-04-25", + "modalities": { "input": ["text", "image"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 131072, "output": 65536 }, + "cost": { "input": 0.3, "output": 0.9, "cache_read": 0.15 } + }, + "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-04-25", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 202752, "output": 65535 }, + "cost": { "input": 0.4891, "output": 1.9565, "cache_read": 0.24455 } + }, + "XiaomiMiMo/MiMo-V2-Flash-TEE": { + "id": "XiaomiMiMo/MiMo-V2-Flash-TEE", + "name": "MiMo V2 Flash TEE", + "family": "mimo", + "attachment": false, + "reasoning": false, + "tool_call": true, + "structured_output": true, + "temperature": true, + "release_date": "2026-04-25", + "last_updated": "2026-04-25", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.09, "output": 0.29, "cache_read": 0.045 } + }, + "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-04-25", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.0272, "output": 0.1087, "cache_read": 0.0136 } + }, + "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-04-25", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 163840, "output": 65536 }, + "cost": { "input": 0.27, "output": 1, "cache_read": 0.135 } + }, + "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-04-25", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 163840, "output": 65536 }, + "cost": { "input": 0.25, "output": 1, "cache_read": 0.125 } + }, + "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-04-25", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 163840, "output": 65536 }, + "cost": { "input": 0.45, "output": 2.15, "cache_read": 0.225 } + }, + "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-04-25", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 131072, "output": 65536 }, + "cost": { "input": 0.28, "output": 0.42, "cache_read": 0.14 } + }, + "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-04-25", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 131072, "output": 65536 }, + "cost": { "input": 0.09, "output": 0.36, "cache_read": 0.045 } + }, + "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, + "temperature": true, + "release_date": "2025-12-29", + "last_updated": "2026-04-25", + "modalities": { "input": ["text", "image"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.03, "output": 0.1, "cache_read": 0.015 } + }, + "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, + "temperature": true, + "release_date": "2025-02-12", + "last_updated": "2026-04-25", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 16384, "output": 16384 }, + "cost": { "input": 0.01, "output": 0.0136, "cache_read": 0.005 } + }, + "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": true, + "temperature": true, + "release_date": "2025-12-29", + "last_updated": "2026-04-25", + "modalities": { "input": ["text", "image"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 96000, "output": 96000 }, + "cost": { "input": 0.01, "output": 0.0272, "cache_read": 0.005 } + }, + "unsloth/Llama-3.2-1B-Instruct": { + "id": "unsloth/Llama-3.2-1B-Instruct", + "name": "Llama 3.2 1B Instruct", + "family": "unsloth", + "attachment": false, + "reasoning": false, + "tool_call": false, + "temperature": true, + "release_date": "2026-01-27", + "last_updated": "2026-04-25", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 16384, "output": 8192 }, + "cost": { "input": 0.01, "output": 0.0109, "cache_read": 0.005 } + }, + "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-04-25", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.02, "output": 0.04, "cache_read": 0.01 } + }, + "unsloth/gemma-3-27b-it": { + "id": "unsloth/gemma-3-27b-it", + "name": "gemma 3 27b it", + "family": "unsloth", + "attachment": true, + "reasoning": false, + "tool_call": true, + "structured_output": true, + "temperature": true, + "release_date": "2025-12-29", + "last_updated": "2026-04-25", + "modalities": { "input": ["text", "image"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 128000, "output": 65536 }, + "cost": { "input": 0.0272, "output": 0.1087, "cache_read": 0.0136 } + }, + "google/gemma-4-31B-turbo-TEE": { + "id": "google/gemma-4-31B-turbo-TEE", + "name": "gemma 4 31B turbo TEE", + "family": "gemma", + "attachment": true, + "reasoning": true, + "tool_call": true, + "structured_output": true, + "temperature": true, + "release_date": "2026-04-25", + "last_updated": "2026-04-25", + "modalities": { "input": ["text", "image"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 131072, "output": 65536 }, + "cost": { "input": 0.13, "output": 0.38, "cache_read": 0.065 } + }, + "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-25", + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "open_weights": true, + "limit": { "context": 262144, "output": 65535 }, + "cost": { "input": 0.95, "output": 4, "cache_read": 0.475 } + }, + "moonshotai/Kimi-K2.5-TEE": { + "id": "moonshotai/Kimi-K2.5-TEE", + "name": "Kimi K2.5 TEE", + "family": "kimi", + "attachment": true, + "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-04-25", + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "open_weights": true, + "limit": { "context": 262144, "output": 65535 }, + "cost": { "input": 0.44, "output": 2, "cache_read": 0.22 } + }, + "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-04-25", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 196608, "output": 65536 }, + "cost": { "input": 0.15, "output": 1.2, "cache_read": 0.075 } + }, + "rednote-hilab/dots.ocr": { + "id": "rednote-hilab/dots.ocr", + "name": "dots.ocr", + "family": "rednote", + "attachment": true, + "reasoning": false, + "tool_call": false, + "structured_output": true, + "temperature": true, + "release_date": "2025-12-29", + "last_updated": "2026-04-25", + "modalities": { "input": ["text", "image"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.01, "output": 0.0109, "cache_read": 0.005 } + }, + "tngtech/DeepSeek-TNG-R1T2-Chimera-TEE": { + "id": "tngtech/DeepSeek-TNG-R1T2-Chimera-TEE", + "name": "DeepSeek TNG R1T2 Chimera TEE", + "family": "deepseek", + "attachment": false, + "reasoning": true, + "tool_call": true, + "structured_output": true, + "temperature": true, + "release_date": "2026-04-25", + "last_updated": "2026-04-25", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 163840, "output": 163840 }, + "cost": { "input": 0.3, "output": 1.1, "cache_read": 0.15 } + } + } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.0675, "output": 0.27 } + }, + "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, + "limit": { "context": 200000, "output": 128000 }, + "cost": { "input": 0.45, "output": 1.65 } + }, + "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, + "limit": { "context": 200000, "output": 128000 }, + "cost": { "input": 0.75, "output": 2.4 } + }, + "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, + "limit": { "context": 200000, "output": 128000 }, + "cost": { "input": 1.25, "output": 3.89 } + }, + "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, + "limit": { "context": 200000, "output": 32000 }, + "cost": { "input": 0.22, "output": 0.88 } + } + } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.125 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "provider": { "npm": "@ai-sdk/openai-compatible" }, + "cost": { + "input": 0.25, + "output": 1.5, + "cache_read": 0.025, + "cache_write": 1 + } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "provider": { "npm": "@ai-sdk/openai-compatible" }, + "cost": { + "input": 2, + "output": 12, + "cache_read": 0.2, + "tiers": [ + { + "input": 4, + "output": 18, + "cache_read": 0.4, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { "input": 4, "output": 18, "cache_read": 0.4 } + } + }, + "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, + "limit": { "context": 272000, "output": 128000 }, + "provider": { "npm": "@ai-sdk/openai-compatible" }, + "cost": { "input": 0.25, "output": 2, "cache_read": 0.03 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.75, "output": 14, "cache_read": 0.175 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "provider": { "npm": "@ai-sdk/openai-compatible" }, + "cost": { "input": 0.75, "output": 4.5, "cache_read": 0.075 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "provider": { "npm": "@ai-sdk/openai-compatible" }, + "cost": { "input": 0.2, "output": 1.25, "cache_read": 0.02 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.75, "output": 14, "cache_read": 0.175 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "provider": { "npm": "@ai-sdk/openai-compatible" }, + "cost": { "input": 2.5, "output": 15, "cache_read": 0.25 } + }, + "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, + "limit": { "context": 128000, "output": 128000 }, + "provider": { "npm": "@ai-sdk/openai-compatible" }, + "cost": { "input": 0.28, "output": 0.42 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.125 } + }, + "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, + "limit": { "context": 1050000, "input": 922000, "output": 128000 }, + "provider": { "npm": "@ai-sdk/openai-compatible" }, + "cost": { + "input": 5, + "output": 30, + "cache_read": 0.5, + "context_over_200k": { "input": 10, "output": 45, "cache_read": 1 }, + "tiers": [ + { + "input": 10, + "output": 45, + "cache_read": 1, + "tier": { "type": "context", "size": 272000 } + } + ] + } + }, + "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, + "limit": { "context": 1000000, "output": 384000 }, + "provider": { "npm": "@ai-sdk/openai-compatible" }, + "cost": { "input": 1.74, "output": 3.48, "cache_read": 0.145 } + } + } + }, + "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, + "limit": { "context": 262144, "output": 81920 }, + "cost": { "input": 0.54, "output": 3.4 } + }, + "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, + "limit": { "context": 262144, "output": 81920 }, + "cost": { "input": 0.2, "output": 0.95 } + }, + "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, + "limit": { "context": 262144, "output": 66536 }, + "cost": { "input": 0.3, "output": 1.2 } + }, + "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, + "limit": { "context": 262144, "output": 66536 }, + "cost": { "input": 0.4, "output": 1.6 } + }, + "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, + "limit": { "context": 262144, "output": 81920 }, + "cost": { "input": 0.2, "output": 1 } + }, + "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, + "limit": { "context": 202752, "output": 16384 }, + "cost": { "input": 0.06, "output": 0.4 } + }, + "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, + "limit": { "context": 131072, "output": 98304 }, + "status": "deprecated", + "cost": { "input": 0.6, "output": 2.2 } + }, + "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, + "limit": { "context": 202752, "output": 16384 }, + "cost": { "input": 0.43, "output": 1.75, "cache_read": 0.08 } + }, + "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, + "limit": { "context": 202752, "output": 16384 }, + "cost": { "input": 1.4, "output": 4.4, "cache_read": 0.26 } + }, + "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, + "limit": { "context": 202752, "output": 16384 }, + "cost": { "input": 0.8, "output": 2.56, "cache_read": 0.16 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0.3, "output": 0.9 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0.43, "output": 1.74, "cache_read": 0.08 } + }, + "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, + "limit": { "context": 10000000, "output": 16384 }, + "cost": { "input": 0.08, "output": 0.3 } + }, + "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, + "limit": { "context": 131072, "output": 16384 }, + "cost": { "input": 0.02, "output": 0.05 } + }, + "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, + "limit": { "context": 131072, "output": 16384 }, + "cost": { "input": 0.4, "output": 0.4 } + }, + "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, + "limit": { "context": 131072, "output": 16384 }, + "cost": { "input": 0.02, "output": 0.03 } + }, + "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, + "limit": { "context": 131072, "output": 16384 }, + "cost": { "input": 0.1, "output": 0.32 } + }, + "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, + "limit": { "context": 1000000, "output": 16384 }, + "cost": { "input": 0.15, "output": 0.6 } + }, + "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, + "limit": { "context": 131072, "output": 16384 }, + "cost": { "input": 0.4, "output": 0.4 } + }, + "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, + "limit": { "context": 163840, "output": 64000 }, + "cost": { "input": 0.5, "output": 2.15, "cache_read": 0.35 } + }, + "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, + "limit": { "context": 163840, "output": 64000 }, + "cost": { "input": 0.26, "output": 0.38, "cache_read": 0.13 } + }, + "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, + "limit": { "context": 131072, "output": 16384 }, + "cost": { "input": 0.03, "output": 0.14 } + }, + "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, + "limit": { "context": 131072, "output": 16384 }, + "cost": { "input": 0.05, "output": 0.24 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.47, "output": 2 } + }, + "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, + "limit": { "context": 262144, "output": 16384 }, + "cost": { "input": 0.75, "output": 3.5, "cache_read": 0.15 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.5, "output": 2 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.4, "output": 2, "cache_read": 0.15 } + }, + "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, + "limit": { "context": 262144, "output": 32768 }, + "cost": { "input": 0.5, "output": 2.8 } + }, + "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, + "limit": { "context": 262144, "output": 32768 }, + "cost": { "input": 0.254, "output": 1.02 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { + "input": 0.27, + "output": 0.95, + "cache_read": 0.03, + "cache_write": 0.375 + } + }, + "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, + "limit": { "context": 196608, "output": 196608 }, + "cost": { "input": 0.28, "output": 1.2 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { "input": 3.3, "output": 16.5, "cache_read": 0.33 } + }, + "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, + "limit": { "context": 200000, "output": 32000 }, + "cost": { "input": 16.5, "output": 82.5 } + }, + "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, + "limit": { "context": 1000000, "output": 384000 }, + "cost": { "input": 0.14, "output": 0.28, "cache_read": 0.028 } + }, + "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, + "limit": { "context": 65536, "output": 65536 }, + "cost": { "input": 1.74, "output": 3.48, "cache_read": 0.145 } + }, + "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, + "limit": { "context": 256000, "output": 8192 }, + "cost": { "input": 0.07, "output": 0.34 } + }, + "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, + "limit": { "context": 256000, "output": 8192 }, + "cost": { "input": 0.13, "output": 0.38 } + }, + "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, + "limit": { "context": 1048576, "output": 16384 }, + "cost": { + "input": 1, + "output": 3, + "cache_read": 0.2, + "context_over_200k": { "input": 2, "output": 6, "cache_read": 0.4 }, + "tiers": [ + { + "input": 2, + "output": 6, + "cache_read": 0.4, + "tier": { "type": "context", "size": 256000 } + } + ] + } + }, + "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, + "limit": { "context": 262144, "output": 16384 }, + "cost": { + "input": 0.4, + "output": 2, + "cache_read": 0.08, + "context_over_200k": { + "input": 0.8, + "output": 4, + "cache_read": 0.16 + }, + "tiers": [ + { + "input": 0.8, + "output": 4, + "cache_read": 0.16, + "tier": { "type": "context", "size": 256000 } + } + ] + } + } + } + }, + "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, + "limit": { "context": 256000, "output": 256000 }, + "cost": { "input": 0.1, "output": 0.3, "cache_read": 0.01 } + }, + "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, + "limit": { "context": 256000, "output": 256000 }, + "cost": { "input": 0.1, "output": 0.3, "cache_read": 0.01 } + } + } + }, + "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, + "limit": { "context": 16384, "output": 16384 }, + "cost": { "input": 0.1, "output": 0.1 } + }, + "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, + "limit": { "context": 65536, "output": 65536 }, + "cost": { "input": 0.1, "output": 0.2 } + }, + "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, + "limit": { "context": 256000, "output": 4096 }, + "cost": { "input": 2, "output": 8 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.09, "output": 0.45 } + }, + "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, + "limit": { "context": 8000, "output": 1024 }, + "cost": { "input": 2.5, "output": 10 } + }, + "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, + "limit": { "context": 8000, "output": 1024 }, + "cost": { "input": 2.5, "output": 10 } + }, + "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, + "limit": { "context": 32768, "output": 32768 }, + "cost": { "input": 0.03, "output": 0.12 } + }, + "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, + "limit": { "context": 1040000, "output": 8192 }, + "cost": { "input": 0.6, "output": 6 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.05, "output": 0.1, "cache_read": 0.05 } + }, + "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, + "limit": { "context": 131000, "output": 32768 }, + "cost": { "input": 0.017, "output": 0.11 } + }, + "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, + "limit": { "context": 32768, "output": 6554 }, + "cost": { "input": 0.15, "output": 0.15 } + }, + "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, + "limit": { "context": 200000, "output": 8000 }, + "cost": { "input": 3, "output": 15 } + }, + "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, + "limit": { "context": 128000, "output": 25600 }, + "cost": { "input": 2, "output": 8 } + }, + "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, + "limit": { "context": 127072, "output": 25415 }, + "cost": { "input": 1, "output": 1 } + }, + "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, + "limit": { "context": 200000, "output": 8000 }, + "cost": { "input": 3, "output": 15 } + }, + "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, + "limit": { "context": 128000, "output": 25600 }, + "cost": { "input": 2, "output": 8 } + }, + "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, + "limit": { "context": 32768, "output": 7168 }, + "cost": { "input": 0.15, "output": 0.75 } + }, + "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, + "limit": { "context": 163840, "output": 163840 }, + "cost": { "input": 0.32, "output": 0.89, "cache_read": 0.15 } + }, + "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, + "limit": { "context": 131072, "output": 16384 }, + "cost": { "input": 0.7, "output": 0.8, "cache_read": 0.015 } + }, + "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, + "limit": { "context": 64000, "output": 16000 }, + "cost": { "input": 0.7, "output": 2.5 } + }, + "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, + "limit": { "context": 163840, "output": 163840 }, + "cost": { "input": 0.4, "output": 1.2, "cache_read": 0.135 } + }, + "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, + "limit": { "context": 32768, "output": 32768 }, + "cost": { "input": 0.29, "output": 0.29 } + }, + "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, + "limit": { "context": 163840, "output": 65536 }, + "cost": { "input": 0.27, "output": 0.41 } + }, + "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, + "limit": { "context": 1048576, "output": 384000 }, + "cost": { "input": 0.14, "output": 0.28, "cache_read": 0.0028 } + }, + "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, + "limit": { "context": 1048576, "output": 384000 }, + "cost": { "input": 0.435, "output": 0.87, "cache_read": 0.003625 } + }, + "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, + "limit": { "context": 163840, "output": 65536 }, + "cost": { "input": 0.26, "output": 0.38, "cache_read": 0.125 } + }, + "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, + "limit": { "context": 163840, "output": 65536 }, + "cost": { "input": 0.2, "output": 0.77, "cache_read": 0.095 } + }, + "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, + "limit": { "context": 163840, "output": 65536 }, + "cost": { "input": 0.45, "output": 2.15, "cache_read": 0.2 } + }, + "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, + "limit": { "context": 163840, "output": 32768 }, + "cost": { "input": 0.21, "output": 0.79, "cache_read": 0.13 } + }, + "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, + "limit": { "context": 2000000, "output": 32768 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 32768 }, + "status": "beta", + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 1048756, "output": 262144 }, + "status": "alpha", + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 200000, "output": 65536 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 200000, "output": 32768 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 262144, "output": 32768 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 262144, "output": 32768 }, + "cost": { "input": 0.08, "output": 0.24, "cache_read": 0.016 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.045, "output": 0.15 } + }, + "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, + "limit": { "context": 131072, "output": 64000 }, + "cost": { "input": 0.75, "output": 1.2 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.22, "output": 0.85 } + }, + "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, + "limit": { "context": 131072, "output": 65537 }, + "cost": { "input": 0.18, "output": 0.18 } + }, + "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, + "limit": { "context": 131072, "output": 32000 }, + "cost": { "input": 0.9, "output": 3.3 } + }, + "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, + "limit": { "context": 32768, "output": 32768 }, + "cost": { "input": 0.5, "output": 0.8 } + }, + "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, + "limit": { "context": 131000, "output": 32768 }, + "cost": { "input": 0.15, "output": 0.45 } + }, + "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, + "limit": { "context": 128000, "output": 32768 }, + "cost": { "input": 1.25, "output": 1.25 } + }, + "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, + "limit": { "context": 128000, "output": 32768 }, + "cost": { "input": 0.15, "output": 0.6 } + }, + "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, + "limit": { "context": 131072, "output": 163840 }, + "cost": { "input": 0.27, "output": 1 } + }, + "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, + "limit": { "context": 262144, "output": 32768 }, + "cost": { "input": 0.25, "output": 2 } + }, + "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, + "limit": { "context": 262144, "output": 131072 }, + "cost": { "input": 0.25, "output": 2 } + }, + "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, + "limit": { "context": 262144, "output": 32768 }, + "cost": { "input": 0.075, "output": 0.3 } + }, + "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, + "limit": { "context": 262144, "output": 131072 }, + "cost": { "input": 0.1, "output": 0.4 } + }, + "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, + "limit": { "context": 8000, "output": 2000 }, + "cost": { "input": 0.75, "output": 1 } + }, + "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, + "limit": { "context": 16384, "output": 2048 }, + "cost": { "input": 3, "output": 5 } + }, + "~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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 2, + "output": 12, + "cache_read": 0.2, + "cache_write": 0.375 + } + }, + "~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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 0.5, + "output": 3, + "cache_read": 0.05, + "cache_write": 0.08333333333333334 + } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0.6, "output": 3 } + }, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "cost": { "input": 5, "output": 25 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 0.05, "output": 0.4 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 6144, "output": 4096 }, + "cost": { "input": 0.45, "output": 0.65 } + }, + "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, + "limit": { "context": 65536, "output": 65536 }, + "cost": { "input": 0.15, "output": 0.5 } + }, + "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, + "limit": { "context": 8192, "output": 8192 }, + "cost": { "input": 0.14, "output": 0.14 } + }, + "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, + "limit": { "context": 131072, "output": 26215 }, + "cost": { "input": 1, "output": 3 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.3, "output": 0.3 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.13, "output": 0.4, "cache_read": 0.055 } + }, + "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, + "limit": { "context": 131072, "output": 16384 }, + "cost": { "input": 1, "output": 1 } + }, + "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, + "limit": { "context": 81920, "output": 38000 }, + "cost": { "input": 0.8, "output": 1.2 } + }, + "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, + "limit": { "context": 262144, "output": 131072 }, + "cost": { "input": 0.9, "output": 1.9 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 256000, "output": 256000 }, + "cost": { "input": 0.1, "output": 0.3, "cache_read": 0.02 } + }, + "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, + "limit": { "context": 6144, "output": 1024 }, + "cost": { "input": 3.75, "output": 7.5 } + }, + "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, + "limit": { "context": 131072, "output": 16384 }, + "cost": { "input": 0.02, "output": 0.04 } + }, + "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, + "limit": { "context": 32768, "output": 32768 }, + "cost": { "input": 0.2, "output": 0.6 } + }, + "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, + "limit": { "context": 262144, "output": 52429 }, + "cost": { "input": 0.5, "output": 1.5 } + }, + "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, + "limit": { "context": 131072, "output": 26215 }, + "cost": { "input": 0.4, "output": 2 } + }, + "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, + "limit": { "context": 128000, "output": 131072 }, + "cost": { "input": 0.35, "output": 0.56, "cache_read": 0.015 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 1.5, "output": 7.5 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 2, "output": 6 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.4, "output": 2, "cache_read": 0.025 } + }, + "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, + "limit": { "context": 256000, "output": 51200 }, + "cost": { "input": 0.3, "output": 0.9 } + }, + "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, + "limit": { "context": 32768, "output": 16384 }, + "cost": { "input": 0.05, "output": 0.08 } + }, + "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, + "limit": { "context": 131072, "output": 26215 }, + "cost": { "input": 2, "output": 6 } + }, + "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, + "limit": { "context": 65536, "output": 13108 }, + "cost": { "input": 2, "output": 6 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 2, "output": 6 } + }, + "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, + "limit": { "context": 262144, "output": 32768 }, + "cost": { "input": 0.15, "output": 0.15 } + }, + "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, + "limit": { "context": 131072, "output": 26215 }, + "cost": { "input": 0.4, "output": 2 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.15, "output": 0.6, "cache_read": 0.015 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.1, "output": 0.1 } + }, + "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, + "limit": { "context": 32000, "output": 6400 }, + "cost": { "input": 0.1, "output": 0.3 } + }, + "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, + "limit": { "context": 32768, "output": 16384 }, + "cost": { "input": 0.54, "output": 0.54 } + }, + "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, + "limit": { "context": 131072, "output": 26215 }, + "cost": { "input": 0.4, "output": 2 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.06, "output": 0.18, "cache_read": 0.03 } + }, + "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, + "limit": { "context": 131072, "output": 26215 }, + "cost": { "input": 0.1, "output": 0.3 } + }, + "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, + "limit": { "context": 128000, "output": 25600 }, + "cost": { "input": 2, "output": 6 } + }, + "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, + "limit": { "context": 2824, "output": 565 }, + "cost": { "input": 0.11, "output": 0.19 } + }, + "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, + "limit": { "context": 262144, "output": 52429 }, + "cost": { "input": 0.2, "output": 0.2 } + }, + "~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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 1, + "output": 5, + "cache_read": 0.1, + "cache_write": 1.25 + } + }, + "~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, + "limit": { "context": 1000000, "output": 128000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "~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, + "limit": { "context": 1000000, "output": 128000 }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } + }, + "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, + "limit": { "context": 131072, "output": 16384 }, + "cost": { "input": 0.1, "output": 0.32 } + }, + "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, + "limit": { "context": 327680, "output": 16384 }, + "cost": { "input": 0.08, "output": 0.3 } + }, + "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, + "limit": { "context": 131072, "output": 26215 }, + "cost": { "input": 0.02, "output": 0.06 } + }, + "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, + "limit": { "context": 1048576, "output": 16384 }, + "cost": { "input": 0.15, "output": 0.6 } + }, + "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, + "limit": { "context": 131072, "output": 16384 }, + "cost": { "input": 0.049, "output": 0.049 } + }, + "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, + "limit": { "context": 163840, "output": 32768 }, + "cost": { "input": 0.18, "output": 0.18 } + }, + "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, + "limit": { "context": 131072, "output": 26215 }, + "cost": { "input": 0.4, "output": 0.4 } + }, + "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, + "limit": { "context": 60000, "output": 12000 }, + "cost": { "input": 0.027, "output": 0.2 } + }, + "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, + "limit": { "context": 80000, "output": 16384 }, + "cost": { "input": 0.051, "output": 0.34 } + }, + "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, + "limit": { "context": 8192, "output": 16384 }, + "cost": { "input": 0.03, "output": 0.04 } + }, + "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, + "limit": { "context": 16384, "output": 16384 }, + "cost": { "input": 0.02, "output": 0.05 } + }, + "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, + "limit": { "context": 8192, "output": 8000 }, + "cost": { "input": 0.51, "output": 0.74 } + }, + "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, + "limit": { "context": 2000000, "output": 2000000 }, + "cost": { "input": 2, "output": 6, "cache_read": 0.2 } + }, + "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, + "limit": { "context": 256000, "output": 10000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 1000000, "output": 4096 }, + "cost": { "input": 1.25, "output": 2.5, "cache_read": 0.2 } + }, + "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, + "limit": { "context": 2000000, "output": 30000 }, + "cost": { "input": 0.2, "output": 0.5, "cache_read": 0.05 } + }, + "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, + "limit": { "context": 256000, "output": 10000 }, + "cost": { "input": 0.2, "output": 1.5, "cache_read": 0.02 } + }, + "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, + "limit": { "context": 131072, "output": 26215 }, + "cost": { "input": 3, "output": 15, "cache_read": 0.75 } + }, + "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, + "limit": { "context": 256000, "output": 51200 }, + "cost": { "input": 3, "output": 15, "cache_read": 0.75 } + }, + "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, + "limit": { "context": 131072, "output": 26215 }, + "cost": { "input": 0.3, "output": 0.5, "cache_read": 0.075 } + }, + "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, + "limit": { "context": 2000000, "output": 30000 }, + "cost": { "input": 0.2, "output": 0.5, "cache_read": 0.05 } + }, + "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, + "limit": { "context": 131072, "output": 26215 }, + "cost": { "input": 0.3, "output": 0.5, "cache_read": 0.075 } + }, + "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, + "limit": { "context": 2000000, "output": 2000000 }, + "cost": { "input": 2, "output": 6, "cache_read": 0.2 } + }, + "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, + "limit": { "context": 131072, "output": 26215 }, + "cost": { "input": 3, "output": 15, "cache_read": 0.75 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.14, "output": 0.57 } + }, + "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, + "limit": { "context": 4096, "output": 4096 }, + "cost": { "input": 0.06, "output": 0.06 } + }, + "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, + "limit": { "context": 8192, "output": 8192 }, + "cost": { "input": 1.48, "output": 1.48 } + }, + "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, + "limit": { "context": 8192, "output": 8192 }, + "cost": { "input": 0.04, "output": 0.05 } + }, + "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, + "limit": { "context": 131072, "output": 16384 }, + "cost": { "input": 0.65, "output": 0.75 } + }, + "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, + "limit": { "context": 16000, "output": 16000 }, + "cost": { "input": 3, "output": 3 } + }, + "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, + "limit": { "context": 131072, "output": 16384 }, + "cost": { "input": 0.85, "output": 0.85 } + }, + "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, + "limit": { "context": 65535, "output": 8000 }, + "cost": { "input": 0.62, "output": 0.62 } + }, + "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, + "limit": { "context": 128000, "output": 128000 }, + "cost": { "input": 0.08, "output": 0.35, "cache_read": 0.08 } + }, + "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, + "limit": { "context": 16384, "output": 16384 }, + "cost": { "input": 0.06, "output": 0.14 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 4000 }, + "cost": { "input": 0.0375, "output": 0.15 } + }, + "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, + "limit": { "context": 256000, "output": 8192 }, + "cost": { "input": 2.5, "output": 10 } + }, + "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, + "limit": { "context": 128000, "output": 4000 }, + "cost": { "input": 2.5, "output": 10 } + }, + "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, + "limit": { "context": 128000, "output": 4000 }, + "cost": { "input": 0.15, "output": 0.6 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.2, "output": 1.1 } + }, + "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, + "limit": { "context": 131072, "output": 26215 }, + "cost": { "input": 0.1, "output": 0.4 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.1, "output": 0.5, "cache_read": 0.1 } + }, + "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, + "limit": { "context": 256000, "output": 65536 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 262144, "output": 52429 }, + "cost": { "input": 0.05, "output": 0.2 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 131072, "output": 26215 }, + "cost": { "input": 0.04, "output": 0.16 } + }, + "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, + "limit": { "context": 131072, "output": 16384 }, + "cost": { "input": 1.2, "output": 1.2 } + }, + "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, + "limit": { "context": 128000, "output": 50000 }, + "cost": { "input": 0.25, "output": 0.75, "cache_read": 0.025 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.125 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 1.75, "output": 14, "cache_read": 0.175 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.15, "output": 0.6 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.125 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 5, "output": 15 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 1.75, "output": 14 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 21, "output": 168 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 10, "output": 30 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 5, "output": 30, "cache_read": 0.5 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 2.5, "output": 10 } + }, + "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, + "limit": { "context": 1050000, "output": 128000 }, + "cost": { "input": 5, "output": 30, "cache_read": 0.5 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 0.25, "output": 2, "cache_read": 0.025 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 0.05, "output": 0.4, "cache_read": 0.005 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.75, "output": 14 } + }, + "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, + "limit": { "context": 16385, "output": 4096 }, + "cost": { "input": 3, "output": 4 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 10, "output": 30 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.75, "output": 14, "cache_read": 0.175 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 20, "output": 80 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 1.1, "output": 4.4, "cache_read": 0.55 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.15, "output": 0.6, "cache_read": 0.075 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 2, "output": 8, "cache_read": 0.5 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 0.75, "output": 4.5, "cache_read": 0.075 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.125 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 1.1, "output": 4.4, "cache_read": 0.275 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 0.2, "output": 1.25, "cache_read": 0.02 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.75, "output": 14, "cache_read": 0.175 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.15, "output": 0.6 } + }, + "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, + "limit": { "context": 400000, "output": 100000 }, + "cost": { "input": 0.25, "output": 2, "cache_read": 0.025 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 2.5, "output": 10, "cache_read": 1.25 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 10, "output": 10 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.125 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 15, "output": 60, "cache_read": 7.5 } + }, + "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, + "limit": { "context": 1050000, "output": 128000 }, + "cost": { "input": 30, "output": 180 } + }, + "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, + "limit": { "context": 16385, "output": 4096 }, + "cost": { "input": 0.5, "output": 1.5 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 10, "output": 40, "cache_read": 2.5 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 1.1, "output": 4.4, "cache_read": 0.55 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 10, "output": 30 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 150, "output": 600 } + }, + "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, + "limit": { "context": 272000, "output": 128000 }, + "cost": { "input": 8, "output": 15, "cache_read": 2 } + }, + "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, + "limit": { "context": 8191, "output": 4096 }, + "cost": { "input": 30, "output": 60 } + }, + "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, + "limit": { "context": 8191, "output": 4096 }, + "cost": { "input": 30, "output": 60 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.125 } + }, + "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, + "limit": { "context": 1050000, "output": 128000 }, + "cost": { "input": 2.5, "output": 15 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 2.5, "output": 10 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 2.5, "output": 10 } + }, + "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, + "limit": { "context": 1047576, "output": 32768 }, + "cost": { "input": 0.1, "output": 0.4, "cache_read": 0.025 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 1.1, "output": 4.4 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 2, "output": 8, "cache_read": 0.5 } + }, + "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, + "limit": { "context": 131072, "output": 26215 }, + "cost": { "input": 0.03, "output": 0.14 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 15, "output": 120 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.6, "output": 2.4 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 2.5, "output": 10, "cache_read": 1.25 } + }, + "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, + "limit": { "context": 4095, "output": 4096 }, + "cost": { "input": 1, "output": 2 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 2.5, "output": 2 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.125 } + }, + "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, + "limit": { "context": 131072, "output": 65536 }, + "cost": { "input": 0.075, "output": 0.3, "cache_read": 0.037 } + }, + "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, + "limit": { "context": 131072, "output": 26215 }, + "cost": { "input": 0.039, "output": 0.19 } + }, + "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, + "limit": { "context": 1050000, "output": 128000 }, + "cost": { "input": 30, "output": 180 } + }, + "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, + "limit": { "context": 4095, "output": 4096 }, + "cost": { "input": 1.5, "output": 2 } + }, + "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, + "limit": { "context": 1047576, "output": 32768 }, + "cost": { "input": 2, "output": 8, "cache_read": 0.5 } + }, + "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, + "limit": { "context": 1047576, "output": 32768 }, + "cost": { "input": 0.4, "output": 1.6, "cache_read": 0.1 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.125 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 2.5, "output": 10, "cache_read": 1.25 } + }, + "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, + "limit": { "context": 300000, "output": 5120 }, + "cost": { "input": 0.06, "output": 0.24 } + }, + "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, + "limit": { "context": 300000, "output": 5120 }, + "cost": { "input": 0.8, "output": 3.2 } + }, + "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, + "limit": { "context": 1000000, "output": 32000 }, + "cost": { "input": 2.5, "output": 12.5 } + }, + "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, + "limit": { "context": 1000000, "output": 65535 }, + "cost": { "input": 0.3, "output": 2.5 } + }, + "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, + "limit": { "context": 128000, "output": 5120 }, + "cost": { "input": 0.035, "output": 0.14 } + }, + "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, + "limit": { "context": 202752, "output": 131072 }, + "cost": { "input": 1.2, "output": 4, "cache_read": 0.24 } + }, + "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, + "limit": { "context": 202752, "output": 65535 }, + "cost": { "input": 0.38, "output": 1.98, "cache_read": 0.2 } + }, + "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, + "limit": { "context": 202752, "output": 131072 }, + "cost": { "input": 0.72, "output": 2.3 } + }, + "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, + "limit": { "context": 128000, "output": 32768 }, + "cost": { "input": 0.1, "output": 0.1 } + }, + "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, + "limit": { "context": 202752, "output": 131072 }, + "cost": { "input": 1.26, "output": 3.96 } + }, + "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, + "limit": { "context": 131072, "output": 98304 }, + "cost": { "input": 0.6, "output": 2.2, "cache_read": 0.175 } + }, + "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, + "limit": { "context": 131072, "output": 98304 }, + "cost": { "input": 0.13, "output": 0.85, "cache_read": 0.025 } + }, + "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, + "limit": { "context": 202752, "output": 131072 }, + "cost": { "input": 1.2, "output": 4, "cache_read": 0.24 } + }, + "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, + "limit": { "context": 65536, "output": 16384 }, + "cost": { "input": 0.6, "output": 1.8, "cache_read": 0.11 } + }, + "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, + "limit": { "context": 204800, "output": 204800 }, + "cost": { "input": 0.39, "output": 1.9, "cache_read": 0.175 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.3, "output": 0.9 } + }, + "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, + "limit": { "context": 202752, "output": 40551 }, + "cost": { "input": 0.06, "output": 0.4, "cache_read": 0.01 } + }, + "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, + "limit": { "context": 123000, "output": 16000 }, + "cost": { "input": 0.42, "output": 1.25 } + }, + "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, + "limit": { "context": 65536, "output": 28672 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 131072, "output": 65536 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 30000, "output": 8000 }, + "cost": { "input": 0.14, "output": 0.56 } + }, + "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, + "limit": { "context": 120000, "output": 8000 }, + "cost": { "input": 0.07, "output": 0.28 } + }, + "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, + "limit": { "context": 123000, "output": 12000 }, + "cost": { "input": 0.28, "output": 1.1 } + }, + "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, + "limit": { "context": 131072, "output": 65536 }, + "cost": { "input": 0.07, "output": 0.28 } + }, + "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, + "limit": { "context": 256000, "output": 128000 }, + "cost": { "input": 0.85, "output": 1.25 } + }, + "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, + "limit": { "context": 256000, "output": 128000 }, + "cost": { "input": 1, "output": 3 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0.3, "output": 1.2, "cache_read": 0.06 } + }, + "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, + "limit": { "context": 196608, "output": 196608 }, + "cost": { "input": 0.255, "output": 1, "cache_read": 0.03 } + }, + "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, + "limit": { "context": 1000192, "output": 1000192 }, + "cost": { "input": 0.2, "output": 1.1 } + }, + "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, + "limit": { "context": 196608, "output": 39322 }, + "cost": { "input": 0.27, "output": 0.95, "cache_read": 0.03 } + }, + "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, + "limit": { "context": 1000000, "output": 40000 }, + "cost": { "input": 0.4, "output": 2.2 } + }, + "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, + "limit": { "context": 65536, "output": 2048 }, + "cost": { "input": 0.3, "output": 1.2 } + }, + "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, + "limit": { "context": 196608, "output": 196608 }, + "cost": { "input": 0.25, "output": 1.2, "cache_read": 0.029 } + }, + "~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, + "limit": { "context": 1050000, "output": 128000 }, + "cost": { "input": 5, "output": 30, "cache_read": 0.5 } + }, + "~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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 0.75, "output": 4.5, "cache_read": 0.075 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.455, "output": 1.82, "cache_read": 0.15 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.26, "output": 2.08 } + }, + "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, + "limit": { "context": 1000000, "output": 65536 }, + "cost": { "input": 0.65, "output": 3.25, "cache_read": 0.2 } + }, + "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, + "limit": { "context": 256000, "output": 65536 }, + "cost": { "input": 0.325, "output": 3.25 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.195, "output": 1.56 } + }, + "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, + "limit": { "context": 262144, "output": 52429 }, + "cost": { "input": 0.071, "output": 0.1 } + }, + "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, + "limit": { "context": 40960, "output": 8192 }, + "cost": { "input": 0.05, "output": 0.4, "cache_read": 0.05 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.39, "output": 2.34 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.1365, "output": 0.4095, "cache_read": 0.042 } + }, + "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, + "limit": { "context": 40960, "output": 40960 }, + "cost": { "input": 0.08, "output": 0.24, "cache_read": 0.04 } + }, + "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, + "limit": { "context": 32768, "output": 32768 }, + "cost": { "input": 0.8, "output": 0.8, "cache_read": 0.075 } + }, + "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, + "limit": { "context": 32768, "output": 8192 }, + "cost": { "input": 1.04, "output": 4.16, "cache_read": 0.32 } + }, + "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, + "limit": { "context": 1000000, "output": 32768 }, + "cost": { "input": 0.4, "output": 1.2, "cache_read": 0.08 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.1612, "output": 0.96525, "cache_read": 0.1612 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.26, "output": 2.6 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.13, "output": 1.56 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.08, "output": 0.5 } + }, + "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, + "limit": { "context": 1000000, "output": 65536 }, + "cost": { "input": 0.1, "output": 0.4 } + }, + "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, + "limit": { "context": 1000000, "output": 65536 }, + "cost": { + "input": 0.325, + "output": 1.95, + "cache_read": 0.0325, + "cache_write": 0.40625 + } + }, + "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, + "limit": { "context": 262144, "output": 32768 }, + "cost": { "input": 1.2, "output": 6, "cache_read": 0.24 } + }, + "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, + "limit": { "context": 1000000, "output": 32768 }, + "cost": { "input": 0.26, "output": 0.78 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.09, "output": 0.3, "cache_read": 0.04 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.104, "output": 0.416 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.11, "output": 0.6 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.0975, "output": 0.78 } + }, + "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, + "limit": { "context": 32768, "output": 6554 }, + "cost": { "input": 0.051, "output": 0.34 } + }, + "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, + "limit": { "context": 32768, "output": 6554 }, + "cost": { "input": 0.04, "output": 0.1 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.8, "output": 3.2 } + }, + "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, + "limit": { "context": 1000000, "output": 65536 }, + "cost": { "input": 0.195, "output": 0.975, "cache_read": 0.06 } + }, + "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, + "limit": { "context": 40960, "output": 40960 }, + "cost": { "input": 0.08, "output": 0.28, "cache_read": 0.03 } + }, + "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, + "limit": { "context": 131072, "output": 52429 }, + "cost": { "input": 0.09, "output": 1.1 } + }, + "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, + "limit": { "context": 1000000, "output": 65536 }, + "cost": { "input": 0.4, "output": 2.4 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.12, "output": 0.75, "cache_read": 0.035 } + }, + "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, + "limit": { "context": 32768, "output": 8192 }, + "cost": { "input": 0.2, "output": 0.2, "cache_read": 0.015 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.13, "output": 0.52 } + }, + "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, + "limit": { "context": 160000, "output": 32768 }, + "cost": { "input": 0.07, "output": 0.27 } + }, + "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, + "limit": { "context": 262144, "output": 32768 }, + "cost": { "input": 0.78, "output": 3.9 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.0325, "output": 0.13, "cache_read": 0.01 } + }, + "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, + "limit": { "context": 262144, "output": 52429 }, + "cost": { "input": 0.2, "output": 0.88, "cache_read": 0.11 } + }, + "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, + "limit": { "context": 262144, "output": 52429 }, + "cost": { "input": 0.22, "output": 1, "cache_read": 0.022 } + }, + "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, + "limit": { "context": 256000, "output": 32768 }, + "cost": { "input": 0.05, "output": 0.15 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.117, "output": 1.365 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 1.04, "output": 6.24, "cache_write": 1.3 } + }, + "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, + "limit": { "context": 1000000, "output": 32768 }, + "cost": { "input": 0.26, "output": 0.78 } + }, + "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, + "limit": { "context": 32768, "output": 16384 }, + "cost": { "input": 0.12, "output": 0.39 } + }, + "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, + "limit": { "context": 40960, "output": 40960 }, + "cost": { "input": 0.06, "output": 0.24, "cache_read": 0.025 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.1625, "output": 1.3 } + }, + "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, + "limit": { "context": 1000000, "output": 65536 }, + "cost": { "input": 0.26, "output": 1.56 } + }, + "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, + "limit": { "context": 1000000, "output": 65536 }, + "cost": { "input": 0.25, "output": 1.5, "cache_write": 0.3125 } + }, + "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, + "limit": { "context": 4096, "output": 4096 }, + "cost": { "input": 0.8, "output": 1.2 } + }, + "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, + "limit": { "context": 256000, "output": 80000 }, + "cost": { "input": 0.3, "output": 1.2, "cache_read": 0.06 } + }, + "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, + "limit": { "context": 1048576, "output": 65535 }, + "cost": { + "input": 1.25, + "output": 10, + "reasoning": 10, + "cache_read": 0.125, + "cache_write": 0.375 + } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { "input": 2, "output": 12, "reasoning": 12 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 0.1, + "output": 0.4, + "reasoning": 0.4, + "cache_read": 0.01, + "cache_write": 0.083333 + } + }, + "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, + "limit": { "context": 1048576, "output": 8192 }, + "cost": { + "input": 0.1, + "output": 0.4, + "cache_read": 0.025, + "cache_write": 0.083333 + } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 32768, "output": 6554 }, + "cost": { "input": 0.02, "output": 0.04 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { "input": 0.25, "output": 1.5, "reasoning": 1.5 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { "input": 2, "output": 12, "reasoning": 12 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 0.5, + "output": 3, + "reasoning": 3, + "cache_read": 0.05, + "cache_write": 0.083333 + } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 1.25, + "output": 10, + "reasoning": 10, + "cache_read": 0.125, + "cache_write": 0.375 + } + }, + "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, + "limit": { "context": 65536, "output": 32768 }, + "cost": { "input": 2, "output": 12, "reasoning": 12 } + }, + "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, + "limit": { "context": 262144, "output": 131072 }, + "cost": { "input": 0.14, "output": 0.4 } + }, + "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, + "limit": { "context": 32768, "output": 32768 }, + "cost": { "input": 0.3, "output": 2.5 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.04, "output": 0.13, "cache_read": 0.015 } + }, + "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, + "limit": { "context": 1048576, "output": 65535 }, + "cost": { + "input": 0.3, + "output": 2.5, + "reasoning": 2.5, + "cache_read": 0.03, + "cache_write": 0.083333 + } + }, + "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, + "limit": { "context": 65536, "output": 65536 }, + "cost": { "input": 0.5, "output": 3 } + }, + "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, + "limit": { "context": 131072, "output": 19200 }, + "cost": { "input": 0.04, "output": 0.08 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 1.25, + "output": 10, + "reasoning": 10, + "cache_read": 0.125, + "cache_write": 0.375 + } + }, + "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, + "limit": { "context": 8192, "output": 2048 }, + "cost": { "input": 0.65, "output": 0.65 } + }, + "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, + "limit": { "context": 128000, "output": 65536 }, + "cost": { "input": 0.03, "output": 0.11, "cache_read": 0.02 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.12, "output": 0.4 } + }, + "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, + "limit": { "context": 1048576, "output": 65535 }, + "cost": { + "input": 0.1, + "output": 0.4, + "reasoning": 0.4, + "cache_read": 0.01, + "cache_write": 0.083333 + } + }, + "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, + "limit": { "context": 1048576, "output": 8192 }, + "cost": { "input": 0.075, "output": 0.3 } + }, + "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, + "limit": { "context": 262144, "output": 65535 }, + "cost": { "input": 0.45, "output": 2.2 } + }, + "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, + "limit": { "context": 131072, "output": 26215 }, + "cost": { "input": 0.4, "output": 2, "cache_read": 0.15 } + }, + "moonshotai/kimi-k2.6": { + "id": "moonshotai/kimi-k2.6", + "name": "MoonshotAI: Kimi K2.6", + "attachment": true, + "reasoning": true, + "tool_call": true, + "structured_output": true, + "temperature": true, + "release_date": "2026-04-20", + "last_updated": "2026-05-12", + "modalities": { "input": ["text", "image"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 262144, "output": 65535 }, + "cost": { "input": 0.75, "output": 3.5, "cache_read": 0.375 } + }, + "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, + "limit": { "context": 131000, "output": 26215 }, + "cost": { "input": 0.55, "output": 2.2 } + }, + "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, + "limit": { "context": 131072, "output": 65535 }, + "cost": { "input": 0.47, "output": 2, "cache_read": 0.2 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 4, "output": 8 } + }, + "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, + "limit": { "context": 32768, "output": 32768 }, + "cost": { "input": 0.8, "output": 1.6 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.8, "output": 1.6 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.7, "output": 1.4 } + }, + "~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, + "limit": { "context": 262142, "output": 262142 }, + "cost": { "input": 0.74, "output": 3.49, "cache_read": 0.14 } + }, + "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, + "limit": { "context": 32768, "output": 32768 }, + "cost": { "input": 0.4, "output": 0.4 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.3, "output": 0.5 } + }, + "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, + "limit": { "context": 32768, "output": 32768 }, + "cost": { "input": 0.55, "output": 0.8 } + }, + "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, + "limit": { "context": 32768, "output": 32768 }, + "cost": { "input": 0.17, "output": 0.43 } + }, + "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, + "limit": { "context": 200000, "output": 32000 }, + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "cost": { + "input": 30, + "output": 150, + "cache_read": 3, + "cache_write": 37.5 + } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } + }, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 1000000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } + }, + "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, + "limit": { "context": 200000, "output": 4096 }, + "cost": { + "input": 0.25, + "output": 1.25, + "cache_read": 0.03, + "cache_write": 0.3 + } + }, + "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, + "limit": { "context": 200000, "output": 32000 }, + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + "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, + "limit": { "context": 200000, "output": 8192 }, + "cost": { + "input": 0.8, + "output": 4, + "cache_read": 0.08, + "cache_write": 1 + } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 1, + "output": 5, + "cache_read": 0.1, + "cache_write": 1.25 + } + }, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "cost": { "input": 3, "output": 15 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.85, "output": 3.4 } + }, + "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, + "limit": { "context": 128000, "output": 2048 }, + "cost": { "input": 0.1, "output": 0.2 } + }, + "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, + "limit": { "context": 163840, "output": 163840 }, + "cost": { "input": 0.25, "output": 0.85, "cache_read": 0.125 } + }, + "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, + "limit": { "context": 1048576, "output": 131072 }, + "cost": { + "input": 1, + "output": 3, + "cache_read": 0.2, + "context_over_200k": { "input": 2, "output": 6, "cache_read": 0.4 }, + "tiers": [ + { + "input": 2, + "output": 6, + "cache_read": 0.4, + "tier": { "type": "context", "size": 256000 } + } + ] + } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.4, "output": 2, "cache_read": 0.08 } + }, + "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, + "limit": { "context": 1048576, "output": 131072 }, + "cost": { + "input": 0.4, + "output": 2, + "cache_read": 0.08, + "context_over_200k": { + "input": 0.8, + "output": 4, + "cache_read": 0.16 + }, + "tiers": [ + { + "input": 0.8, + "output": 4, + "cache_read": 0.16, + "tier": { "type": "context", "size": 256000 } + } + ] + } + }, + "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, + "limit": { "context": 1048576, "output": 131072 }, + "cost": { + "input": 1, + "output": 3, + "cache_read": 0.2, + "context_over_200k": { "input": 2, "output": 6, "cache_read": 0.4 }, + "tiers": [ + { + "input": 2, + "output": 6, + "cache_read": 0.4, + "tier": { "type": "context", "size": 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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.09, "output": 0.29, "cache_read": 0.045 } + } + } + }, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } + }, + "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, + "limit": { "context": 200000, "output": 4096 }, + "cost": { + "input": 0.25, + "output": 1.25, + "cache_read": 0.03, + "cache_write": 0.3 + } + }, + "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, + "limit": { "context": 200000, "output": 4096 }, + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 0.25, "output": 2, "cache_read": 0.025 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 0.05, "output": 0.4, "cache_read": 0.005 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.125 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 200000, "output": 8192 }, + "cost": { "input": 3, "output": 15 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 1000000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 128000, "output": 32768 }, + "cost": { "input": 2, "output": 8, "reasoning": 3 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 0.3, + "output": 2.5, + "cache_read": 0.03, + "input_audio": 1 + } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 1, "output": 1 } + }, + "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, + "limit": { "context": 200000, "output": 32000 }, + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + "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, + "limit": { "context": 200000, "output": 4096 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { "input": 0.1, "output": 0.4, "cache_read": 0.025 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 1, + "output": 5, + "cache_read": 0.1, + "cache_write": 1.25 + } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.125 } + }, + "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, + "limit": { "context": 1047576, "output": 32768 }, + "cost": { "input": 2, "output": 8, "cache_read": 0.5 } + }, + "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, + "limit": { "context": 1047576, "output": 32768 }, + "cost": { "input": 0.4, "output": 1.6, "cache_read": 0.1 } + }, + "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, + "limit": { "context": 200000, "output": 8192 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + } + } + }, + "auriko": { + "id": "auriko", + "env": ["AURIKO_API_KEY"], + "npm": "@ai-sdk/openai-compatible", + "api": "https://api.auriko.ai/v1", + "name": "Auriko", + "doc": "https://docs.auriko.ai", + "models": { + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.5, "output": 2.8 } + }, + "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, + "limit": { "context": 1000000, "output": 30000 }, + "cost": { + "input": 1.25, + "output": 2.5, + "cache_read": 0.2, + "context_over_200k": { "input": 2.5, "output": 5, "cache_read": 0.4 }, + "tiers": [ + { + "input": 2.5, + "output": 5, + "cache_read": 0.4, + "tier": { "type": "context", "size": 200000 } + } + ] + } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0.6, "output": 2.4, "cache_write": 0.375 } + }, + "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, + "limit": { "context": 1000000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 2, + "output": 12, + "cache_read": 0.2, + "context_over_200k": { "input": 4, "output": 18, "cache_read": 0.4 }, + "tiers": [ + { + "input": 4, + "output": 18, + "cache_read": 0.4, + "tier": { "type": "context", "size": 200000 } + } + ] + } + }, + "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, + "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" } + } + } + } + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125, + "context_over_200k": { + "input": 2.5, + "output": 15, + "cache_read": 0.25 + }, + "tiers": [ + { + "input": 2.5, + "output": 15, + "cache_read": 0.25, + "tier": { "type": "context", "size": 200000 } + } + ] + } + }, + "qwen-3.6-plus": { + "id": "qwen-3.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, + "limit": { "context": 1000000, "output": 65536 }, + "cost": { + "input": 0.5, + "output": 3, + "cache_read": 0.1, + "context_over_200k": { + "input": 2, + "output": 6, + "cache_read": 0.2, + "cache_write": 2.5 + }, + "tiers": [ + { + "input": 2, + "output": 6, + "cache_read": 0.2, + "cache_write": 2.5, + "tier": { "type": "context", "size": 256000 } + } + ] + } + }, + "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, + "limit": { "context": 200000, "output": 131072 }, + "cost": { "input": 1.4, "output": 4.4, "cache_read": 0.26 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { "input": 0.3, "output": 2.5, "cache_read": 0.03 } + }, + "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, + "limit": { "context": 1000000, "output": 384000 }, + "cost": { "input": 0.14, "output": 0.28, "cache_read": 0.0028 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.95, "output": 4, "cache_read": 0.16 } + }, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } + }, + "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, + "limit": { "context": 1000000, "output": 384000 }, + "cost": { "input": 0.435, "output": 0.87, "cache_read": 0.003625 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0.3, "output": 1.2, "cache_write": 0.375 } + } + } + }, + "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, + "limit": { "context": 32000, "output": 32000 }, + "cost": { "input": 0.85, "output": 1.55 } + }, + "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, + "limit": { "context": 16000, "output": 16000 }, + "cost": { "input": 0.8, "output": 1.2 } + }, + "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, + "limit": { "context": 32000, "output": 32000 }, + "cost": { "input": 0.9, "output": 1.9 } + } + } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.017, "output": 0.11 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.026, "output": 0 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.06, "output": 0.4 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.35, "output": 0.56 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.35, "output": 0.56 } + }, + "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, + "limit": { "context": 256000, "output": 256000 }, + "cost": { "input": 0.5, "output": 1.5 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.5, "output": 4.88 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.2, "output": 0.3 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.35, "output": 0.75 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.11, "output": 0.19 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.27, "output": 0.85 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.12, "output": 0.27 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.48, "output": 0.03 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.34, "output": 0.34 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.56, "output": 6.67 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.049, "output": 0.68 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.29, "output": 2.25 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.027, "output": 0.2 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.15, "output": 0.29 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.051, "output": 0.34 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.12, "output": 0.27 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.28, "output": 0.83 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.28, "output": 0.8299999999999998 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.66, "output": 1 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.012, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.66, "output": 1 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.051, "output": 0.34 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.35, "output": 0.56 } + }, + "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, + "limit": { "context": 256000, "output": 256000 }, + "cost": { "input": 0.6, "output": 3, "cache_read": 0.1 } + }, + "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, + "limit": { "context": 256000, "output": 256000 }, + "cost": { "input": 0.95, "output": 4, "cache_read": 0.16 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.34, "output": 0.34 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.019, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.02, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.2, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.0031, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.067, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.012, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "provider": { "npm": "ai-gateway-provider" }, + "cost": { "input": 1.75, "output": 14, "cache_read": 0.175 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 10, "output": 30 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.75, "output": 14, "cache_read": 0.175 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 20, "output": 80 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.15, "output": 0.6, "cache_read": 0.08 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 1.1, "output": 4.4, "cache_read": 0.28 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "provider": { "npm": "ai-gateway-provider" }, + "cost": { "input": 1.75, "output": 14, "cache_read": 0.175 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.13 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 15, "output": 60, "cache_read": 7.5 } + }, + "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, + "limit": { "context": 16385, "output": 4096 }, + "cost": { "input": 0.5, "output": 1.5, "cache_read": 1.25 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 1.1, "output": 4.4, "cache_read": 0.55 } + }, + "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, + "limit": { "context": 8192, "output": 8192 }, + "cost": { "input": 30, "output": 60 } + }, + "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, + "limit": { "context": 1050000, "input": 922000, "output": 128000 }, + "provider": { "npm": "ai-gateway-provider" }, + "cost": { "input": 2.5, "output": 15, "cache_read": 0.25 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 2, "output": 8, "cache_read": 0.5 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 2.5, "output": 10, "cache_read": 1.25 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.125 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 1, + "output": 5, + "cache_read": 0.1, + "cache_write": 1.25 + } + }, + "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, + "limit": { "context": 1000000, "output": 64000 }, + "provider": { "npm": "ai-gateway-provider" }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75, + "tiers": [ + { + "input": 6, + "output": 22.5, + "cache_read": 0.6, + "cache_write": 7.5, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { + "input": 6, + "output": 22.5, + "cache_read": 0.6, + "cache_write": 7.5 + } + } + }, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "provider": { "npm": "@ai-sdk/anthropic" }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } + }, + "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, + "limit": { "context": 200000, "output": 32000 }, + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + "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, + "limit": { "context": 200000, "output": 8192 }, + "cost": { + "input": 0.8, + "output": 4, + "cache_read": 0.08, + "cache_write": 1 + } + }, + "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, + "limit": { "context": 200000, "output": 8192 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } + }, + "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, + "limit": { "context": 200000, "output": 4096 }, + "cost": { + "input": 0.25, + "output": 1.25, + "cache_read": 0.03, + "cache_write": 0.3 + } + }, + "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, + "limit": { "context": 200000, "output": 32000 }, + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25, + "tiers": [ + { + "input": 10, + "output": 37.5, + "cache_read": 1, + "cache_write": 12.5, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { + "input": 10, + "output": 37.5, + "cache_read": 1, + "cache_write": 12.5 + } + } + }, + "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, + "limit": { "context": 200000, "output": 8192 }, + "cost": { + "input": 0.8, + "output": 4, + "cache_read": 0.08, + "cache_write": 1 + } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 200000, "output": 4096 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 0.3 + } + }, + "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, + "limit": { "context": 200000, "output": 4096 }, + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + "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, + "limit": { "context": 1050000, "input": 922000, "output": 128000 }, + "cost": { + "input": 5, + "output": 30, + "cache_read": 0.5, + "context_over_200k": { "input": 10, "output": 45, "cache_read": 1 }, + "tiers": [ + { + "input": 10, + "output": 45, + "cache_read": 1, + "tier": { "type": "context", "size": 272000 } + } + ] + } + } + } + }, + "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, + "limit": { "context": 400000, "input": 128000, "output": 128000 }, + "status": "deprecated", + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 144000, "input": 128000, "output": 64000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 64000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 64000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 264000, "input": 128000, "output": 64000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 64000 }, + "status": "deprecated", + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 64000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 264000, "input": 128000, "output": 64000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 144000, "input": 128000, "output": 64000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 400000, "input": 128000, "output": 128000 }, + "status": "deprecated", + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 216000, "input": 128000, "output": 16000 }, + "status": "deprecated", + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 64000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 264000, "input": 128000, "output": 64000 }, + "status": "deprecated", + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 144000, "input": 128000, "output": 32000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 80000, "output": 16000 }, + "status": "deprecated", + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 160000, "input": 128000, "output": 32000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "input": 64000, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 128000 }, + "status": "deprecated", + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 144000, "input": 128000, "output": 32000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "input": 64000, "output": 16384 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 200000, "input": 128000, "output": 32000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 400000, "input": 128000, "output": 128000 }, + "status": "deprecated", + "cost": { "input": 0, "output": 0 } + } + } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.4, "output": 3.2 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.3, "output": 2.4 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.6, "output": 3.6 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.1, "output": 0.4 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.25, "output": 1.3 } + } + } + }, + "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, + "limit": { "context": 8192, "output": 16384 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0, "output": 0, "cache_read": 0 } + }, + "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, + "limit": { "context": 1048576, "output": 131072 }, + "cost": { "input": 0, "output": 0, "cache_read": 0 } + }, + "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, + "limit": { "context": 1048576, "output": 131072 }, + "cost": { "input": 0, "output": 0, "cache_read": 0 } + }, + "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, + "limit": { "context": 262144, "output": 131072 }, + "cost": { "input": 0, "output": 0, "cache_read": 0 } + }, + "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, + "limit": { "context": 1048576, "output": 131072 }, + "cost": { "input": 0, "output": 0, "cache_read": 0 } + } + } + }, + "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, + "limit": { "context": 200000, "output": 131072 }, + "cost": { + "input": 1.2, + "output": 4, + "cache_read": 0.24, + "cache_write": 0 + } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { + "input": 0.6, + "output": 2.2, + "cache_read": 0.11, + "cache_write": 0 + } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { + "input": 1, + "output": 3.2, + "cache_read": 0.2, + "cache_write": 0 + } + }, + "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, + "limit": { "context": 200000, "output": 131072 }, + "cost": { + "input": 0.07, + "output": 0.4, + "cache_read": 0.01, + "cache_write": 0 + } + }, + "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, + "limit": { "context": 200000, "output": 131072 }, + "cost": { + "input": 1.4, + "output": 4.4, + "cache_read": 0.26, + "cache_write": 0 + } + }, + "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, + "limit": { "context": 131072, "output": 98304 }, + "cost": { + "input": 0.6, + "output": 2.2, + "cache_read": 0.11, + "cache_write": 0 + } + }, + "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, + "limit": { "context": 131072, "output": 98304 }, + "cost": { + "input": 0.2, + "output": 1.1, + "cache_read": 0.03, + "cache_write": 0 + } + }, + "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, + "limit": { "context": 200000, "output": 131072 }, + "cost": { + "input": 1.2, + "output": 4, + "cache_read": 0.24, + "cache_write": 0 + } + }, + "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, + "limit": { "context": 64000, "output": 16384 }, + "cost": { "input": 0.6, "output": 1.8 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { + "input": 0.6, + "output": 2.2, + "cache_read": 0.11, + "cache_write": 0 + } + }, + "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, + "limit": { "context": 128000, "output": 32768 }, + "cost": { "input": 0.3, "output": 0.9 } + }, + "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, + "limit": { "context": 131072, "output": 98304 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + }, + "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, + "limit": { "context": 200000, "output": 131072 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + } + } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0.3, "output": 1.2, "cache_read": 0.06 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "provider": { "npm": "@ai-sdk/openai" }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.125 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "provider": { "npm": "@ai-sdk/anthropic" }, + "cost": { + "input": 1, + "output": 5, + "cache_read": 0.1, + "cache_write": 1.25 + } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.6, "output": 3, "cache_read": 0.08 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "status": "deprecated", + "cost": { "input": 0.6, "output": 2.2, "cache_read": 0.1 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 1, "output": 3.2, "cache_read": 0.2 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "status": "deprecated", + "cost": { "input": 0, "output": 0, "cache_read": 0 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "provider": { "npm": "@ai-sdk/google" }, + "cost": { + "input": 2, + "output": 12, + "cache_read": 0.2, + "tiers": [ + { + "input": 4, + "output": 18, + "cache_read": 0.4, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { "input": 4, "output": 18, "cache_read": 0.4 } + } + }, + "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, + "limit": { "context": 1000000, "output": 64000 }, + "provider": { "npm": "@ai-sdk/anthropic" }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "status": "deprecated", + "cost": { "input": 0, "output": 0, "cache_read": 0 } + }, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "provider": { "npm": "@ai-sdk/anthropic" }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "provider": { "npm": "@ai-sdk/openai" }, + "cost": { "input": 0.05, "output": 0.4, "cache_read": 0.005 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "provider": { "npm": "@ai-sdk/openai" }, + "cost": { "input": 1.75, "output": 14, "cache_read": 0.175 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "provider": { "npm": "@ai-sdk/anthropic" }, + "cost": { "input": 0, "output": 0, "cache_read": 0 } + }, + "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, + "limit": { "context": 262000, "output": 66000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "provider": { "npm": "@ai-sdk/openai" }, + "cost": { "input": 1.75, "output": 14, "cache_read": 0.175 } + }, + "deepseek-v4-flash-free": { + "id": "deepseek-v4-flash-free", + "name": "DeepSeek V4 Flash Free", + "family": "deepseek-flash-free", + "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, + "limit": { "context": 1000000, "output": 384000 }, + "cost": { "input": 0, "output": 0, "cache_read": 0 } + }, + "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, + "limit": { "context": 200000, "output": 128000 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + }, + "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, + "limit": { "context": 200000, "output": 32000 }, + "provider": { "npm": "@ai-sdk/anthropic" }, + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "provider": { "npm": "@ai-sdk/anthropic" }, + "cost": { + "input": 0.5, + "output": 3, + "cache_read": 0.05, + "cache_write": 0.625 + } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "provider": { "npm": "@ai-sdk/openai" }, + "cost": { "input": 0.75, "output": 4.5, "cache_read": 0.075 } + }, + "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, + "limit": { "context": 200000, "output": 8192 }, + "status": "deprecated", + "provider": { "npm": "@ai-sdk/anthropic" }, + "cost": { + "input": 0.8, + "output": 4, + "cache_read": 0.08, + "cache_write": 1 + } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "status": "deprecated", + "cost": { "input": 0.3, "output": 1.2, "cache_read": 0.1 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 1.4, "output": 4.4, "cache_read": 0.26 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "provider": { "npm": "@ai-sdk/openai" }, + "cost": { "input": 0.2, "output": 1.25, "cache_read": 0.02 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "provider": { "npm": "@ai-sdk/openai" }, + "cost": { "input": 1.75, "output": 14, "cache_read": 0.175 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "provider": { "npm": "@ai-sdk/openai" }, + "cost": { "input": 0.25, "output": 2, "cache_read": 0.025 } + }, + "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, + "limit": { "context": 1000000, "output": 64000 }, + "provider": { "npm": "@ai-sdk/anthropic" }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75, + "tiers": [ + { + "input": 6, + "output": 22.5, + "cache_read": 0.6, + "cache_write": 7.5, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { + "input": 6, + "output": 22.5, + "cache_read": 0.6, + "cache_write": 7.5 + } + } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "provider": { "npm": "@ai-sdk/google" }, + "cost": { "input": 0.5, "output": 3, "cache_read": 0.05 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "status": "deprecated", + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "provider": { "npm": "@ai-sdk/openai" }, + "cost": { "input": 1.07, "output": 8.5, "cache_read": 0.107 } + }, + "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, + "limit": { "context": 1050000, "input": 922000, "output": 128000 }, + "provider": { "npm": "@ai-sdk/openai" }, + "cost": { "input": 30, "output": 180, "cache_read": 30 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "status": "deprecated", + "cost": { "input": 0, "output": 0, "cache_read": 0 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "provider": { "npm": "@ai-sdk/anthropic" }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "status": "deprecated", + "provider": { "npm": "@ai-sdk/anthropic" }, + "cost": { "input": 0, "output": 0, "cache_read": 0 } + }, + "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, + "limit": { "context": 1048576, "output": 64000 }, + "status": "deprecated", + "cost": { "input": 0, "output": 0, "cache_read": 0 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "status": "deprecated", + "cost": { "input": 0.6, "output": 2.2, "cache_read": 0.1 } + }, + "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, + "limit": { "context": 262100, "output": 32800 }, + "status": "deprecated", + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "status": "deprecated", + "provider": { "npm": "@ai-sdk/google" }, + "cost": { + "input": 2, + "output": 12, + "cache_read": 0.2, + "tiers": [ + { + "input": 4, + "output": 18, + "cache_read": 0.4, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { "input": 4, "output": 18, "cache_read": 0.4 } + } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.95, "output": 4, "cache_read": 0.16 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "provider": { "npm": "@ai-sdk/openai" }, + "cost": { "input": 1.07, "output": 8.5, "cache_read": 0.107 } + }, + "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, + "limit": { "context": 256000, "output": 256000 }, + "status": "deprecated", + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "status": "deprecated", + "cost": { "input": 0, "output": 0, "cache_read": 0 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 128000 }, + "provider": { "npm": "@ai-sdk/openai" }, + "cost": { "input": 1.75, "output": 14, "cache_read": 0.175 } + }, + "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, + "limit": { "context": 256000, "output": 64000 }, + "status": "deprecated", + "cost": { "input": 0, "output": 0, "cache_read": 0 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0.3, "output": 1.2, "cache_read": 0.06 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "status": "deprecated", + "cost": { "input": 0.4, "output": 2.5, "cache_read": 0.4 } + }, + "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, + "limit": { "context": 1000000, "output": 64000 }, + "provider": { "npm": "@ai-sdk/anthropic" }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75, + "tiers": [ + { + "input": 6, + "output": 22.5, + "cache_read": 0.6, + "cache_write": 7.5, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { + "input": 6, + "output": 22.5, + "cache_read": 0.6, + "cache_write": 7.5 + } + } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "status": "deprecated", + "cost": { "input": 0.45, "output": 1.8 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "provider": { "npm": "@ai-sdk/openai" }, + "cost": { "input": 1.07, "output": 8.5, "cache_read": 0.107 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "provider": { "npm": "@ai-sdk/anthropic" }, + "cost": { + "input": 0.2, + "output": 1.2, + "cache_read": 0.02, + "cache_write": 0.25 + } + }, + "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, + "limit": { "context": 1048576, "output": 64000 }, + "status": "deprecated", + "cost": { "input": 0, "output": 0, "cache_read": 0 } + }, + "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, + "limit": { "context": 204800, "output": 128000 }, + "cost": { "input": 0, "output": 0, "cache_read": 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": 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, + "limit": { "context": 1050000, "input": 922000, "output": 128000 }, + "provider": { "npm": "@ai-sdk/openai" }, + "cost": { "input": 30, "output": 180, "cache_read": 30 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "status": "deprecated", + "cost": { "input": 0.4, "output": 2.5, "cache_read": 0.4 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "provider": { "npm": "@ai-sdk/openai" }, + "cost": { "input": 1.07, "output": 8.5, "cache_read": 0.107 } + }, + "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, + "limit": { "context": 262144, "output": 64000 }, + "status": "deprecated", + "cost": { "input": 0, "output": 0, "cache_read": 0 } + }, + "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, + "limit": { "context": 1050000, "input": 922000, "output": 128000 }, + "provider": { "npm": "@ai-sdk/openai" }, + "cost": { + "input": 5, + "output": 30, + "cache_read": 0.5, + "context_over_200k": { "input": 10, "output": 45, "cache_read": 1 }, + "tiers": [ + { + "input": 10, + "output": 45, + "cache_read": 1, + "tier": { "type": "context", "size": 272000 } + } + ] + } + }, + "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, + "limit": { "context": 1050000, "input": 922000, "output": 128000 }, + "provider": { "npm": "@ai-sdk/openai" }, + "cost": { + "input": 2.5, + "output": 15, + "cache_read": 0.25, + "context_over_200k": { + "input": 5, + "output": 22.5, + "cache_read": 0.5 + }, + "tiers": [ + { + "input": 5, + "output": 22.5, + "cache_read": 0.5, + "tier": { "type": "context", "size": 272000 } + } + ] + } + }, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "provider": { "npm": "@ai-sdk/anthropic" }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } + } + } + }, + "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, + "limit": { "context": 256000, "input": 256000, "output": 256000 }, + "cost": { "input": 0.1, "output": 0.3, "cache_read": 0.02 } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 32768 }, + "cost": { "input": 2.05, "output": 9.59, "cache_read": 0.41 } + }, + "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, + "limit": { "context": 256000, "input": 256000, "output": 256000 }, + "cost": { "input": 0.096, "output": 0.288, "cache_read": 0.019 } + }, + "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, + "limit": { "context": 16384, "input": 16384, "output": 8192 }, + "cost": { "input": 5.21, "output": 16.44, "cache_read": 1.04 } + } + } + }, + "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, + "limit": { "context": 128000, "input": 120000, "output": 8192 }, + "cost": { + "input": 0.13, + "output": 0.4, + "reasoning": 0.4, + "cache_read": 0.013, + "cache_write": 0.16 + } + }, + "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, + "limit": { "context": 128000, "input": 120000, "output": 8192 }, + "cost": { + "input": 1, + "output": 3, + "reasoning": 3, + "cache_read": 0.1, + "cache_write": 1.25 + } + }, + "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, + "limit": { "context": 128000, "input": 120000, "output": 8192 }, + "cost": { + "input": 0.25, + "output": 0.75, + "cache_read": 0.025, + "cache_write": 0.31 + } + }, + "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, + "limit": { "context": 262144, "input": 250000, "output": 8192 }, + "cost": { + "input": 0.6, + "output": 3.6, + "cache_read": 0.06, + "cache_write": 0.75 + } + }, + "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, + "limit": { "context": 32768, "input": 32768, "output": 0 }, + "cost": { "input": 0.01, "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, + "limit": { "context": 128000, "input": 120000, "output": 8192 }, + "cost": { + "input": 0.1, + "output": 0.3, + "cache_read": 0.01, + "cache_write": 0.125 + } + }, + "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, + "limit": { "context": 262144, "output": 8192 }, + "cost": { "input": 0.2, "output": 0.6 } + }, + "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, + "limit": { "context": 128000, "input": 120000, "output": 8192 }, + "cost": { + "input": 0.1, + "output": 0.3, + "cache_read": 0.01, + "cache_write": 0.125 + } + }, + "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, + "limit": { "context": 8000, "input": 7000, "output": 8192 }, + "cost": { + "input": 0.5, + "output": 2, + "cache_read": 0.05, + "cache_write": 0.625 + } + }, + "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, + "limit": { "context": 8000, "input": 7000, "output": 8192 }, + "cost": { + "input": 0.6, + "output": 3.6, + "cache_read": 0.06, + "cache_write": 0.75 + } + }, + "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, + "limit": { "context": 8000, "input": 7000, "output": 8192 }, + "cost": { + "input": 0.15, + "output": 1.2, + "cache_read": 0.015, + "cache_write": 0.1875 + } + }, + "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, + "limit": { "context": 128000, "input": 120000, "output": 16384 }, + "cost": { + "input": 0.15, + "output": 1.2, + "reasoning": 1.2, + "cache_read": 0.015, + "cache_write": 0.18 + } + }, + "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, + "limit": { "context": 128000, "input": 120000, "output": 8192 }, + "cost": { + "input": 0.2, + "output": 1.1, + "cache_read": 0.02, + "cache_write": 0.25 + } + }, + "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, + "limit": { "context": 200000, "input": 200000, "output": 16384 }, + "cost": { + "input": 1, + "output": 3.2, + "cache_read": 0.1, + "cache_write": 1 + } + }, + "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, + "limit": { "context": 128000, "input": 120000, "output": 8192 }, + "cost": { + "input": 0.13, + "output": 0.4, + "cache_read": 0.013, + "cache_write": 0.16 + } + }, + "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, + "limit": { "context": 128000, "input": 120000, "output": 4096 }, + "cost": { + "input": 0.02, + "output": 0.06, + "cache_read": 0.002, + "cache_write": 0.025 + } + }, + "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, + "limit": { "context": 256000, "input": 256000, "output": 32768 }, + "cost": { "input": 0.3, "output": 0.9 } + }, + "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, + "limit": { "context": 128000, "input": 120000, "output": 4096 }, + "cost": { + "input": 0.6, + "output": 1.8, + "cache_read": 0.06, + "cache_write": 0.75 + } + }, + "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, + "limit": { "context": 32000, "input": 30000, "output": 4096 }, + "cost": { + "input": 0.06, + "output": 0.24, + "cache_read": 0.006, + "cache_write": 0.075 + } + }, + "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, + "limit": { "context": 65536, "input": 60000, "output": 8192 }, + "cost": { + "input": 0.06, + "output": 0.24, + "cache_read": 0.006, + "cache_write": 0.075 + } + }, + "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, + "limit": { "context": 8000, "input": 7000, "output": 8192 }, + "cost": { + "input": 0.4, + "output": 2, + "cache_read": 0.04, + "cache_write": 0.5 + } + }, + "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, + "limit": { "context": 163000, "input": 160000, "output": 16384 }, + "cost": { + "input": 0.3, + "output": 0.45, + "reasoning": 0.45, + "cache_read": 0.03, + "cache_write": 0.375 + } + }, + "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, + "limit": { "context": 8000, "input": 7000, "output": 8192 }, + "cost": { + "input": 0.1, + "output": 0.5, + "cache_read": 0.01, + "cache_write": 0.125 + } + }, + "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, + "limit": { "context": 128000, "input": 124000, "output": 8192 }, + "cost": { + "input": 0.15, + "output": 0.6, + "reasoning": 0.6, + "cache_read": 0.015, + "cache_write": 0.18 + } + }, + "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, + "limit": { "context": 8192, "input": 8000, "output": 4096 }, + "cost": { + "input": 0.02, + "output": 0.06, + "cache_read": 0.002, + "cache_write": 0.025 + } + }, + "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, + "limit": { "context": 110000, "input": 100000, "output": 8192 }, + "cost": { + "input": 0.1, + "output": 0.3, + "cache_read": 0.01, + "cache_write": 0.125 + } + }, + "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, + "limit": { "context": 256000, "input": 256000, "output": 8192 }, + "cost": { + "input": 0.5, + "output": 2.5, + "cache_read": 0.05, + "cache_write": 0.625 + } + }, + "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, + "limit": { "context": 256000, "input": 256000, "output": 8192 }, + "cost": { + "input": 0.5, + "output": 2.5, + "reasoning": 2.5, + "cache_read": 0.05, + "cache_write": 0.625 + } + }, + "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, + "limit": { "context": 196608, "input": 190000, "output": 8192 }, + "cost": { + "input": 0.3, + "output": 1.2, + "cache_read": 0.03, + "cache_write": 0.375 + } + }, + "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, + "limit": { "context": 8000, "input": 7000, "output": 8192 }, + "cost": { + "input": 0.3, + "output": 1.2, + "cache_read": 0.03, + "cache_write": 0.375 + } + }, + "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, + "limit": { "context": 1000000, "output": 384000 }, + "cost": { "input": 1.75, "output": 3.5, "cache_read": 0.15 } + } + } + }, + "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, + "limit": { "context": 128000, "output": 262144 }, + "cost": { "input": 0.6, "output": 3, "cache_read": 0.1 } + }, + "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, + "limit": { "context": 205000, "output": 131072 }, + "cost": { "input": 1, "output": 3.2, "cache_read": 0.2 } + }, + "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, + "limit": { "context": 262144, "input": 262144, "output": 262144 }, + "cost": { "input": 0.96, "output": 4.04, "cache_read": 0.16 } + }, + "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, + "limit": { "context": 128000, "output": 0 }, + "cost": { "input": 0.27, "output": 0.4, "cache_read": 0.13 } + }, + "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, + "limit": { "context": 262144, "input": 245760, "output": 16384 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 1000000, "input": 1000000, "output": 384000 }, + "cost": { "input": 1.67, "output": 3.33 } + }, + "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, + "limit": { "context": 1000000, "input": 1000000, "output": 384000 }, + "cost": { "input": 0.14, "output": 0.28 } + }, + "elevenlabs/elevenlabs-v2.5-turbo": { + "id": "elevenlabs/elevenlabs-v2.5-turbo", + "name": "ElevenLabs-v2.5-Turbo", + "family": "elevenlabs", + "attachment": true, + "reasoning": false, + "tool_call": true, + "temperature": false, + "release_date": "2024-10-28", + "last_updated": "2024-10-28", + "modalities": { "input": ["text"], "output": ["audio"] }, + "open_weights": false, + "limit": { "context": 128000, "output": 0 } + }, + "elevenlabs/elevenlabs-v3": { + "id": "elevenlabs/elevenlabs-v3", + "name": "ElevenLabs-v3", + "family": "elevenlabs", + "attachment": true, + "reasoning": false, + "tool_call": true, + "temperature": false, + "release_date": "2025-06-05", + "last_updated": "2025-06-05", + "modalities": { "input": ["text"], "output": ["audio"] }, + "open_weights": false, + "limit": { "context": 128000, "output": 0 } + }, + "elevenlabs/elevenlabs-music": { + "id": "elevenlabs/elevenlabs-music", + "name": "ElevenLabs-Music", + "family": "elevenlabs", + "attachment": true, + "reasoning": false, + "tool_call": true, + "temperature": false, + "release_date": "2025-08-29", + "last_updated": "2025-08-29", + "modalities": { "input": ["text"], "output": ["audio"] }, + "open_weights": false, + "limit": { "context": 2000, "output": 0 } + }, + "cerebras/gpt-oss-120b-cs": { + "id": "cerebras/gpt-oss-120b-cs", + "name": "GPT-OSS-120B-CS", + "attachment": true, + "reasoning": true, + "tool_call": true, + "temperature": false, + "release_date": "2025-08-06", + "last_updated": "2025-08-06", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": false, + "limit": { "context": 128000, "output": 0 }, + "cost": { "input": 0.35, "output": 0.75 } + }, + "cerebras/llama-3.1-8b-cs": { + "id": "cerebras/llama-3.1-8b-cs", + "name": "Llama-3.1-8B-CS", + "attachment": true, + "reasoning": false, + "tool_call": true, + "temperature": false, + "release_date": "2025-05-13", + "last_updated": "2025-05-13", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": false, + "limit": { "context": 128000, "output": 0 }, + "cost": { "input": 0.1, "output": 0.1 } + }, + "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, + "limit": { "context": 256000, "output": 128000 }, + "cost": { "input": 0.2, "output": 1.5, "cache_read": 0.02 } + }, + "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, + "limit": { "context": 2000000, "output": 128000 }, + "cost": { "input": 0.2, "output": 0.5, "cache_read": 0.05 } + }, + "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, + "limit": { "context": 256000, "output": 128000 }, + "cost": { "input": 3, "output": 15, "cache_read": 0.75 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.3, "output": 0.5, "cache_read": 0.075 } + }, + "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, + "limit": { "context": 128000, "output": 0 }, + "cost": { "input": 2, "output": 6, "cache_read": 0.2 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 3, "output": 15, "cache_read": 0.75 } + }, + "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, + "limit": { "context": 2000000, "output": 128000 }, + "cost": { "input": 0.2, "output": 0.5, "cache_read": 0.05 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.1, "output": 9, "cache_read": 0.11 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "status": "deprecated", + "cost": { "input": 4.5, "output": 14 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 1.1, "output": 9, "cache_read": 0.11 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 19, "output": 150 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 2.2, "output": 9, "cache_read": 1.1 } + }, + "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, + "limit": { "context": 0, "output": 0 }, + "cost": { "input": 5.0505, "output": 32.3232, "cache_read": 1.2626 } + }, + "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, + "limit": { "context": 8192, "output": 4096 }, + "status": "deprecated", + "cost": { "input": 27, "output": 54 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 0.22, "output": 1.8, "cache_read": 0.022 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 0.045, "output": 0.36, "cache_read": 0.0045 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.6, "output": 13, "cache_read": 0.16 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 9, "output": 27 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.6, "output": 13, "cache_read": 0.16 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 18, "output": 72 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 0.99, "output": 4 } + }, + "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, + "limit": { "context": 124096, "output": 4096 }, + "cost": { "input": 0.14, "output": 0.54, "cache_read": 0.068 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 1.8, "output": 7.2, "cache_read": 0.45 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 0.68, "output": 4, "cache_read": 0.068 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 0.99, "output": 4, "cache_read": 0.25 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 0.18, "output": 1.1, "cache_read": 0.018 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.6, "output": 13, "cache_read": 0.16 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 0.22, "output": 1.8, "cache_read": 0.022 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.1, "output": 9, "cache_read": 0.11 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 14, "output": 54 } + }, + "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, + "limit": { "context": 1050000, "input": 922000, "output": 128000 }, + "cost": { "input": 27, "output": 160 } + }, + "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, + "limit": { "context": 16384, "output": 2048 }, + "cost": { "input": 0.45, "output": 1.4 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 9, "output": 36, "cache_read": 2.2 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 0.99, "output": 4 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 140, "output": 540 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 2.2, "output": 9 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.1, "output": 9 } + }, + "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, + "limit": { "context": 1050000, "input": 922000, "output": 128000 }, + "cost": { "input": 2.2, "output": 14, "cache_read": 0.22 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0, "output": 0 } + }, + "openai/gpt-3.5-turbo-raw": { + "id": "openai/gpt-3.5-turbo-raw", + "name": "GPT-3.5-Turbo-Raw", + "family": "gpt", + "attachment": true, + "reasoning": false, + "tool_call": true, + "temperature": false, + "release_date": "2023-09-27", + "last_updated": "2023-09-27", + "modalities": { "input": ["text", "image"], "output": ["text"] }, + "open_weights": false, + "limit": { "context": 4524, "output": 2048 }, + "cost": { "input": 0.45, "output": 1.4 } + }, + "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, + "limit": { "context": 1047576, "output": 32768 }, + "cost": { "input": 0.09, "output": 0.36, "cache_read": 0.022 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 1.8, "output": 7.2, "cache_read": 0.45 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 14, "output": 110 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.1, "output": 9, "cache_read": 0.11 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 1.6, "output": 13, "cache_read": 0.16 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0.14, "output": 0.54 } + }, + "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, + "limit": { "context": 3500, "output": 1024 }, + "cost": { "input": 1.4, "output": 1.8 } + }, + "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, + "limit": { "context": 1047576, "output": 32768 }, + "cost": { "input": 1.8, "output": 7.2, "cache_read": 0.45 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 1.1, "output": 9, "cache_read": 0.11 } + }, + "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, + "limit": { "context": 1047576, "output": 32768 }, + "cost": { "input": 0.36, "output": 1.4, "cache_read": 0.09 } + }, + "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, + "limit": { "context": 8192, "output": 4096 }, + "status": "deprecated", + "cost": { "input": 27, "output": 54 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.1, "output": 9, "cache_read": 0.11 } + }, + "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, + "limit": { "context": 128000, "input": 111616, "output": 16384 }, + "cost": { "input": 1.6, "output": 13, "cache_read": 0.16 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { "input": 2, "output": 12, "cache_read": 0.2 } + }, + "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, + "limit": { "context": 990000, "output": 8192 }, + "cost": { "input": 0.1, "output": 0.42 } + }, + "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, + "limit": { "context": 1048576, "output": 0 }, + "status": "deprecated", + "cost": { "input": 1.6, "output": 9.6 } + }, + "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, + "limit": { "context": 1065535, "output": 65535 }, + "cost": { "input": 0.87, "output": 7, "cache_read": 0.087 } + }, + "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, + "limit": { "context": 65536, "output": 0 }, + "cost": { "input": 0.21, "output": 1.8, "cache_read": 0.021 } + }, + "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, + "limit": { "context": 1065535, "output": 65535 }, + "cost": { "input": 0.21, "output": 1.8, "cache_read": 0.021 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { "input": 0.25, "output": 1.5 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { "input": 0.4, "output": 2.4, "cache_read": 0.04 } + }, + "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, + "limit": { "context": 65536, "output": 0 }, + "cost": { "input": 2, "output": 12, "cache_read": 0.2 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "status": "deprecated", + "cost": { "input": 1.6, "output": 9.6, "cache_read": 0.16 } + }, + "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, + "limit": { "context": 1024000, "output": 64000 }, + "cost": { "input": 0.07, "output": 0.28 } + }, + "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, + "limit": { "context": 262144, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + }, + "google/gemini-2.0-flash-lite": { + "id": "google/gemini-2.0-flash-lite", + "name": "Gemini-2.0-Flash-Lite", + "family": "gemini-flash-lite", + "attachment": true, + "reasoning": false, + "tool_call": true, + "temperature": false, + "release_date": "2025-02-05", + "last_updated": "2025-02-05", + "modalities": { + "input": ["text", "image", "video", "audio"], + "output": ["text"] + }, + "open_weights": false, + "limit": { "context": 990000, "output": 8192 }, + "cost": { "input": 0.052, "output": 0.21 } + }, + "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, + "limit": { "context": 196608, "output": 32000 }, + "cost": { + "input": 13, + "output": 64, + "cache_read": 1.3, + "cache_write": 16 + } + }, + "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, + "limit": { "context": 189096, "output": 8192 }, + "status": "deprecated", + "cost": { + "input": 2.6, + "output": 13, + "cache_read": 0.26, + "cache_write": 3.2 + } + }, + "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, + "limit": { "context": 189096, "output": 8192 }, + "cost": { + "input": 0.21, + "output": 1.1, + "cache_read": 0.021, + "cache_write": 0.26 + } + }, + "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, + "limit": { "context": 983040, "output": 128000 }, + "cost": { + "input": 4.3, + "output": 21, + "cache_read": 0.43, + "cache_write": 5.3 + } + }, + "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, + "limit": { "context": 1048576, "output": 128000 }, + "cost": { + "input": 4.3, + "output": 21, + "cache_read": 0.43, + "cache_write": 5.4 + } + }, + "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, + "limit": { "context": 983040, "output": 64000 }, + "cost": { + "input": 2.6, + "output": 13, + "cache_read": 0.26, + "cache_write": 3.2 + } + }, + "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, + "limit": { "context": 983040, "output": 32768 }, + "cost": { + "input": 2.6, + "output": 13, + "cache_read": 0.26, + "cache_write": 3.2 + } + }, + "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, + "limit": { "context": 196608, "output": 64000 }, + "cost": { + "input": 4.3, + "output": 21, + "cache_read": 0.43, + "cache_write": 5.3 + } + }, + "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, + "limit": { "context": 196608, "output": 128000 }, + "cost": { + "input": 2.6, + "output": 13, + "cache_read": 0.26, + "cache_write": 3.2 + } + }, + "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, + "limit": { "context": 192512, "output": 28672 }, + "cost": { + "input": 13, + "output": 64, + "cache_read": 1.3, + "cache_write": 16 + } + }, + "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, + "limit": { "context": 189096, "output": 8192 }, + "cost": { + "input": 0.68, + "output": 3.4, + "cache_read": 0.068, + "cache_write": 0.85 + } + }, + "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, + "limit": { "context": 192000, "output": 64000 }, + "cost": { + "input": 0.85, + "output": 4.3, + "cache_read": 0.085, + "cache_write": 1.1 + } + }, + "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, + "limit": { "context": 189096, "output": 8192 }, + "status": "deprecated", + "cost": { + "input": 2.6, + "output": 13, + "cache_read": 0.26, + "cache_write": 3.2 + } + }, + "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, + "limit": { "context": 983040, "output": 128000 }, + "cost": { + "input": 2.6, + "output": 13, + "cache_read": 0.26, + "cache_write": 3.2 + } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 4.5455, "output": 27.2727, "cache_read": 0.4545 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 27.2727, "output": 163.6364 } + } + } + }, + "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, + "limit": { "context": 128000, "output": 16400 }, + "cost": { "input": 20, "output": 40 } + }, + "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, + "limit": { "context": 2000000, "output": 2000000 }, + "cost": { + "input": 0.19999999999999998, + "output": 0.5, + "cache_read": 0.049999999999999996 + } + }, + "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, + "limit": { "context": 8192, "output": 8192 }, + "cost": { "input": 0.01, "output": 0.03 } + }, + "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, + "limit": { "context": 128000, "output": 16400 }, + "cost": { "input": 0.13, "output": 0.39 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.08, "output": 0.3 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 5, "output": 20, "cache_read": 2.5 } + }, + "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, + "limit": { "context": 200000, "output": 8192 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.30000000000000004, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.14, "output": 0.14 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.30000000000000004, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 512, "output": 2 }, + "cost": { "input": 0.01, "output": 0.01 } + }, + "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, + "limit": { "context": 128000, "output": 65536 }, + "cost": { "input": 1.1, "output": 4.4, "cache_read": 0.55 } + }, + "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, + "limit": { "context": 1047576, "output": 32768 }, + "cost": { + "input": 0.39999999999999997, + "output": 1.5999999999999999, + "cache_read": 0.09999999999999999 + } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0.03, "output": 0.13 } + }, + "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, + "limit": { "context": 131072, "output": 40960 }, + "cost": { "input": 0.29, "output": 0.59 } + }, + "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, + "limit": { "context": 131072, "output": 32678 }, + "cost": { "input": 0.59, "output": 0.7899999999999999 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { + "input": 0.25, + "output": 2, + "cache_read": 0.024999999999999998 + } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { + "input": 0.049999999999999996, + "output": 0.39999999999999997, + "cache_read": 0.005 + } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { "input": 2, "output": 12, "cache_read": 0.19999999999999998 } + }, + "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, + "limit": { "context": 200000, "output": 4096 }, + "cost": { + "input": 0.25, + "output": 1.25, + "cache_read": 0.03, + "cache_write": 0.3 + } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.15, "output": 0.6 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.30000000000000004, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.3125, + "cache_write": 1.25 + } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } + }, + "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, + "limit": { "context": 2000000, "output": 30000 }, + "cost": { + "input": 0.19999999999999998, + "output": 0.5, + "cache_read": 0.049999999999999996 + } + }, + "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, + "limit": { "context": 200000, "output": 4096 }, + "cost": { "input": 3, "output": 15 } + }, + "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, + "limit": { "context": 128000, "output": 32768 }, + "cost": { "input": 2, "output": 6 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 20, "output": 80 } + }, + "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, + "limit": { "context": 200000, "output": 32000 }, + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.15, "output": 0.6, "cache_read": 0.075 } + }, + "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, + "limit": { "context": 200000, "output": 8192 }, + "cost": { + "input": 1, + "output": 5, + "cache_read": 0.09999999999999999, + "cache_write": 1.25 + } + }, + "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, + "limit": { "context": 131072, "output": 16384 }, + "cost": { "input": 0.5700000000000001, "output": 2.3 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 1.1, "output": 4.4, "cache_read": 0.275 } + }, + "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, + "limit": { "context": 127000, "output": 4096 }, + "cost": { "input": 2, "output": 8 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.049999999999999996, "output": 0.09999999999999999 } + }, + "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, + "limit": { "context": 1048576, "output": 65535 }, + "cost": { + "input": 0.3, + "output": 2.5, + "cache_read": 0.075, + "cache_write": 0.3 + } + }, + "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, + "limit": { "context": 130000, "output": 163840 }, + "cost": { "input": 0.3, "output": 1.2 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { + "input": 0.25, + "output": 2, + "cache_read": 0.024999999999999998 + } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.30000000000000004, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 256000, "output": 10000 }, + "cost": { + "input": 0.19999999999999998, + "output": 1.5, + "cache_read": 0.02 + } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.12500000000000003 + } + }, + "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, + "limit": { "context": 128000, "output": 64000 }, + "cost": { "input": 0.56, "output": 1.68, "cache_read": 0.07 } + }, + "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, + "limit": { "context": 2000000, "output": 2000000 }, + "cost": { + "input": 0.19999999999999998, + "output": 0.5, + "cache_read": 0.049999999999999996 + } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 15, "output": 60, "cache_read": 7.5 } + }, + "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, + "limit": { "context": 131072, "output": 32678 }, + "cost": { "input": 0.049999999999999996, "output": 0.08 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 1.1, "output": 4.4, "cache_read": 0.55 } + }, + "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, + "limit": { "context": 127000, "output": 4096 }, + "cost": { "input": 1, "output": 1 } + }, + "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, + "limit": { "context": 262144, "output": 16384 }, + "cost": { "input": 0.5, "output": 2, "cache_read": 0.39999999999999997 } + }, + "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, + "limit": { "context": 128000, "output": 128000 }, + "cost": { "input": 75, "output": 200 } + }, + "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, + "limit": { "context": 41000, "output": 41000 }, + "cost": { "input": 0.08, "output": 0.29 } + }, + "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, + "limit": { "context": 256000, "output": 256000 }, + "cost": { "input": 3, "output": 15, "cache_read": 0.75 } + }, + "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, + "limit": { "context": 262144, "output": 81920 }, + "cost": { "input": 0.3, "output": 2.9000000000000004 } + }, + "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, + "limit": { "context": 32000, "output": 8192 }, + "cost": { "input": 0.03, "output": 0.09 } + }, + "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, + "limit": { "context": 128000, "output": 128000 }, + "cost": { "input": 0.02, "output": 0.03 } + }, + "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, + "limit": { "context": 262000, "output": 16384 }, + "cost": { "input": 0.14, "output": 1.4 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0.44999999999999996, "output": 1.5 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.12500000000000003 + } + }, + "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, + "limit": { "context": 200000, "output": 32000 }, + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.12500000000000003 + } + }, + "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, + "limit": { "context": 200000, "output": 8192 }, + "cost": { + "input": 1, + "output": 5, + "cache_read": 0.09999999999999999, + "cache_write": 1.25 + } + }, + "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, + "limit": { "context": 127000, "output": 4096 }, + "cost": { "input": 1, "output": 5 } + }, + "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, + "limit": { "context": 200000, "output": 32000 }, + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + "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, + "limit": { "context": 512, "output": 2 }, + "cost": { "input": 0.01, "output": 0.01 } + }, + "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, + "limit": { "context": 1047576, "output": 32768 }, + "cost": { + "input": 0.09999999999999999, + "output": 0.39999999999999997, + "cache_read": 0.024999999999999998 + } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.09999999999999999, "output": 0.3 } + }, + "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, + "limit": { "context": 200000, "output": 8192 }, + "cost": { + "input": 0.7999999999999999, + "output": 4, + "cache_read": 0.08, + "cache_write": 1 + } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.3, "output": 0.5, "cache_read": 0.075 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 2, "output": 8, "cache_read": 0.5 } + }, + "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, + "limit": { "context": 163840, "output": 65536 }, + "cost": { "input": 0.27, "output": 0.41 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.049999999999999996, "output": 0.19999999999999998 } + }, + "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, + "limit": { "context": 128000, "output": 32768 }, + "cost": { "input": 15, "output": 120 } + }, + "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, + "limit": { "context": 131072, "output": 1024 }, + "cost": { "input": 0.21, "output": 0.21 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 2.5, "output": 10, "cache_read": 1.25 } + }, + "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, + "limit": { "context": 256000, "output": 16384 }, + "cost": { "input": 0.3, "output": 1.5 } + }, + "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, + "limit": { "context": 1048576, "output": 65535 }, + "cost": { + "input": 0.09999999999999999, + "output": 0.39999999999999997, + "cache_read": 0.024999999999999998, + "cache_write": 0.09999999999999999 + } + }, + "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, + "limit": { "context": 262144, "output": 16384 }, + "cost": { "input": 0.22, "output": 0.95 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.12500000000000003 + } + }, + "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, + "limit": { "context": 128000, "output": 8000 }, + "cost": { "input": 0.07, "output": 0.28 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.04, "output": 0.16 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.12500000000000003 + } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.30000000000000004, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0.56, "output": 1.68, "cache_read": 0.07 } + }, + "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, + "limit": { "context": 16384, "output": 16384 }, + "cost": { "input": 0.02, "output": 0.049999999999999996 } + }, + "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, + "limit": { "context": 1047576, "output": 32768 }, + "cost": { "input": 2, "output": 8, "cache_read": 0.5 } + }, + "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, + "limit": { "context": 256000, "output": 262144 }, + "cost": { "input": 0.48, "output": 2 } + }, + "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, + "limit": { "context": 1047576, "output": 32768 }, + "cost": { + "input": 0.39999999999999997, + "output": 1.5999999999999999, + "cache_read": 0.09999999999999999 + } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { + "input": 0.27, + "output": 1, + "cache_read": 0.21600000000000003 + } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.12500000000000003 + } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 3, "output": 15, "cache_read": 0.75 } + }, + "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, + "limit": { "context": 2000000, "output": 2000000 }, + "cost": { + "input": 0.19999999999999998, + "output": 0.5, + "cache_read": 0.049999999999999996 + } + }, + "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, + "limit": { "context": 127000, "output": 4096 }, + "cost": { "input": 2, "output": 8 } + } + } + }, + "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 } + }, + "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 } + }, + "kimi-k2.6": { + "id": "kimi-k2.6", + "name": "kimi-k2.6", + "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 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + }, + "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, + "limit": { "context": 200000, "output": 131072 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + }, + "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, + "limit": { "context": 131072, "output": 98304 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + }, + "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, + "limit": { "context": 200000, "output": 131072 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + }, + "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, + "limit": { "context": 200000, "output": 131072 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + } + } + }, + "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": "2025-10-29", + "last_updated": "2025-10-29", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": false, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.15, "output": 0.6 } + }, + "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, + "structured_output": true, + "temperature": true, + "release_date": "2025-12-23", + "last_updated": "2025-12-23", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0.06, "output": 0.24 } + }, + "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, + "structured_output": true, + "temperature": true, + "release_date": "2026-03-11", + "last_updated": "2026-03-11", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 262144, "output": 131072 }, + "cost": { "input": 0.15, "output": 0.65 } + }, + "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, + "limit": { "context": 1040000, "output": 8192 }, + "cost": { "input": 0.6, "output": 6 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0.15, "output": 0.15 } + }, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "cost": { + "input": 16.5, + "output": 82.5, + "cache_read": 1.65, + "cache_write": 20.625 + } + }, + "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, + "limit": { "context": 256000, "output": 8192 }, + "cost": { "input": 0.1, "output": 0.1 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "mistral.devstral-2-123b": { + "id": "mistral.devstral-2-123b", + "name": "Devstral 2 123B", + "family": "devstral", + "attachment": false, + "reasoning": false, + "tool_call": true, + "structured_output": true, + "temperature": true, + "release_date": "2026-02-17", + "last_updated": "2026-02-17", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 256000, "output": 8192 }, + "cost": { "input": 0.4, "output": 2 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } + }, + "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, + "limit": { "context": 32000, "output": 8192 }, + "cost": { "input": 0.15, "output": 0.35 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.049999999999999996, "output": 0.09999999999999999 } + }, + "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, + "limit": { "context": 300000, "output": 8192 }, + "cost": { "input": 0.8, "output": 3.2, "cache_read": 0.2 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 1, + "output": 5, + "cache_read": 0.1, + "cache_write": 1.25 + } + }, + "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, + "limit": { "context": 204608, "output": 128000 }, + "cost": { "input": 0.3, "output": 1.2 } + }, + "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, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 2, "output": 6 } + }, + "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, + "limit": { "context": 1000000, "output": 16384 }, + "cost": { "input": 0.24, "output": 0.97 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 1, + "output": 5, + "cache_read": 0.1, + "cache_write": 1.25 + } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0.035, "output": 0.14, "cache_read": 0.00875 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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": "2025-08-05", + "last_updated": "2025-08-05", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": false, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.07, "output": 0.3 } + }, + "zai.glm-5": { + "id": "zai.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-03-18", + "last_updated": "2026-03-18", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 202752, "output": 101376 }, + "cost": { "input": 1, "output": 3.2 } + }, + "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, + "limit": { "context": 16384, "output": 16384 }, + "cost": { "input": 0.15, "output": 0.6 } + }, + "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": "2024-07", + "release_date": "2026-02-06", + "last_updated": "2026-02-06", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 163840, "output": 81920 }, + "cost": { "input": 0.62, "output": 1.85 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 1, + "output": 5, + "cache_read": 0.1, + "cache_write": 1.25 + } + }, + "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, + "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, + "limit": { "context": 200000, "output": 131072 }, + "cost": { "input": 0.07, "output": 0.4 } + }, + "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, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0.33, "output": 2.75 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } + }, + "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, + "limit": { "context": 131072, "output": 65536 }, + "cost": { "input": 0.22, "output": 1.8 } + }, + "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, + "limit": { "context": 300000, "output": 8192 }, + "cost": { "input": 0.06, "output": 0.24, "cache_read": 0.015 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0.22, "output": 0.22 } + }, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } + }, + "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, + "limit": { "context": 202752, "output": 8192 }, + "cost": { "input": 0.12, "output": 0.2 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 1, + "output": 5, + "cache_read": 0.1, + "cache_write": 1.25 + } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0.04, "output": 0.08 } + }, + "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, + "limit": { "context": 3500000, "output": 16384 }, + "cost": { "input": 0.17, "output": 0.66 } + }, + "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, + "limit": { "context": 163840, "output": 81920 }, + "cost": { "input": 0.58, "output": 1.68 } + }, + "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, + "limit": { "context": 128000, "output": 40000 }, + "cost": { "input": 0.5, "output": 1.5 } + }, + "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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0.14, "output": 1.4 } + }, + "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" }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0.6, "output": 2.2 } + }, + "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, + "limit": { "context": 256000, "output": 256000 }, + "cost": { "input": 0.6, "output": 2.5 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0.2, "output": 0.2 } + }, + "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, + "limit": { "context": 128000, "output": 32768 }, + "cost": { "input": 1.35, "output": 5.4 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0.04, "output": 0.04 } + }, + "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": "2025-08-05", + "last_updated": "2025-08-05", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": false, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.15, "output": 0.6 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0.2, "output": 0.6 } + }, + "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, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } + }, + "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, + "limit": { "context": 196608, "output": 98304 }, + "cost": { "input": 0.3, "output": 1.2 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0.72, "output": 0.72 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0.72, "output": 0.72 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } + }, + "moonshotai.kimi-k2.5": { + "id": "moonshotai.kimi-k2.5", + "name": "Kimi K2.5", + "family": "kimi", + "attachment": false, + "reasoning": true, + "tool_call": true, + "interleaved": true, + "structured_output": true, + "temperature": true, + "release_date": "2026-02-06", + "last_updated": "2026-02-06", + "modalities": { "input": ["text", "image"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 256000, "output": 256000 }, + "cost": { "input": 0.6, "output": 3 } + }, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "cost": { + "input": 3.3, + "output": 16.5, + "cache_read": 0.33, + "cache_write": 4.125 + } + }, + "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": "2025-10-29", + "last_updated": "2025-10-29", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": false, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.07, "output": 0.2 } + }, + "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, + "limit": { "context": 262144, "output": 131072 }, + "cost": { "input": 0.15, "output": 0.6 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0.3, "output": 1.2 } + }, + "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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0.3, "output": 1.5 } + }, + "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, + "limit": { "context": 131072, "output": 65536 }, + "cost": { "input": 0.22, "output": 1.8 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0.06, "output": 0.23 } + }, + "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, + "limit": { "context": 256000, "output": 8192 }, + "cost": { "input": 0.5, "output": 1.5 } + }, + "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, + "limit": { "context": 262144, "output": 131072 }, + "cost": { "input": 0.22, "output": 0.88 } + }, + "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, + "limit": { "context": 122880, "output": 8192 }, + "cost": { "input": 2.5, "output": 10 } + }, + "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, + "limit": { "context": 200000, "output": 32000 }, + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + "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, + "limit": { "context": 128000, "output": 32768 }, + "cost": { "input": 1.35, "output": 5.4 } + }, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } + }, + "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, + "limit": { "context": 1000000, "output": 16384 }, + "cost": { "input": 0.24, "output": 0.97 } + }, + "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, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 1, + "output": 5, + "cache_read": 0.1, + "cache_write": 1.25 + } + }, + "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, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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-03-13", + "modalities": { "input": ["text", "image", "pdf"], "output": ["text"] }, + "open_weights": false, + "limit": { "context": 1000000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "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, + "limit": { "context": 1000000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "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, + "limit": { "context": 1000000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "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, + "limit": { "context": 1000000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } + }, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } + }, + "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, + "limit": { "context": 200000, "output": 32000 }, + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + "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, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "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, + "limit": { "context": 1000000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 3500000, "output": 16384 }, + "cost": { "input": 0.17, "output": 0.66 } + }, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } + }, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } + } + } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0.6, "output": 2.2 } + }, + "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, + "limit": { "context": 202752, "output": 131072 }, + "cost": { "input": 0.95, "output": 3.15 } + }, + "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, + "limit": { "context": 200000, "output": 200000 }, + "cost": { "input": 0.6, "output": 2.2 } + }, + "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, + "limit": { "context": 262144, "output": 32678 }, + "cost": { "input": 0.3, "output": 0.75 } + }, + "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, + "limit": { "context": 164000, "output": 131000 }, + "cost": { "input": 0.5, "output": 1.5 } + }, + "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, + "limit": { "context": 164000, "output": 131000 }, + "cost": { "input": 0.77, "output": 0.77 } + }, + "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, + "limit": { "context": 163800, "output": 131100 }, + "status": "deprecated", + "cost": { "input": 0.3, "output": 0.45 } + }, + "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, + "limit": { "context": 128000, "output": 128000 }, + "cost": { "input": 0.1, "output": 0.5 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "status": "deprecated", + "cost": { "input": 0.6, "output": 2.5 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.95, "output": 4, "cache_read": 0.16 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "status": "deprecated", + "cost": { "input": 0.6, "output": 2.5 } + }, + "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, + "limit": { "context": 262144, "output": 8192 }, + "cost": { "input": 0.6, "output": 3 } + }, + "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, + "limit": { "context": 204000, "output": 204000 }, + "cost": { "input": 0.3, "output": 1.2 } + }, + "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, + "limit": { "context": 1000000, "output": 384000 }, + "cost": { "input": 1.74, "output": 3.48, "cache_read": 0.15 } + } + } + }, + "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, + "limit": { "context": 2000000, "output": 128000 }, + "cost": { "input": 0.2, "output": 0.5, "cache_read": 0.05 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 1, + "output": 5, + "cache_read": 0.1, + "cache_write": 1.25 + } + }, + "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, + "limit": { "context": 256000, "output": 128000 }, + "cost": { "input": 0.6, "output": 3, "cache_read": 0.1 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { "input": 0.5, "output": 3, "cache_read": 0.05 } + }, + "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, + "limit": { "context": 200000, "output": 128000 }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } + }, + "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, + "limit": { "context": 198000, "output": 8192 }, + "cost": { "input": 1.4, "output": 4.4, "cache_read": 0.26 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.31 } + }, + "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, + "limit": { "context": 2000000, "output": 128000 }, + "cost": { "input": 0.2, "output": 0.5, "cache_read": 0.05 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 0.2, "output": 1.25, "cache_read": 0.02 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { "input": 0.3, "output": 2.5, "cache_read": 0.075 } + }, + "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, + "limit": { "context": 256000, "output": 128000 }, + "cost": { "input": 0.2, "output": 1.5, "cache_read": 0.02 } + }, + "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, + "limit": { "context": 272000, "output": 128000 }, + "cost": { "input": 2.5, "output": 15, "cache_read": 0.25 } + }, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "cost": { "input": 1.25, "output": 2.5, "cache_read": 0.2 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 0.75, "output": 4.5, "cache_read": 0.075 } + }, + "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, + "limit": { "context": 200000, "output": 128000 }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 1.74, "output": 3.48, "cache_read": 0.14 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.07, "output": 0.2 } + }, + "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, + "limit": { "context": 1000000, "output": 64000 }, + "cost": { "input": 0.5, "output": 3, "cache_read": 0.1 } + }, + "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, + "limit": { "context": 192000, "output": 8192 }, + "cost": { "input": 0.3, "output": 1.2, "cache_read": 0.06 } + }, + "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, + "limit": { "context": 192000, "output": 8192 }, + "cost": { "input": 0.3, "output": 1.2, "cache_read": 0.03 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 2.5, "output": 10, "cache_read": 1.25 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.15, "output": 0.6 } + }, + "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, + "limit": { "context": 1000000, "output": 64000 }, + "cost": { "input": 2, "output": 12, "cache_read": 0.2 } + }, + "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, + "limit": { "context": 256000, "output": 128000 }, + "cost": { "input": 0.95, "output": 4, "cache_read": 0.16 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.75, "output": 14, "cache_read": 0.175 } + } + } + }, + "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, + "limit": { "context": 200000, "output": 131072 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + }, + "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, + "limit": { "context": 200000, "output": 131072 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + }, + "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, + "limit": { "context": 200000, "output": 131072 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + }, + "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, + "limit": { "context": 131072, "output": 98304 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + } + } + }, + "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, + "limit": { "context": 1000000, "output": 65536 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + }, + "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, + "limit": { "context": 262144, "output": 32768 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + }, + "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, + "limit": { "context": 202752, "output": 16384 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + }, + "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, + "limit": { "context": 202752, "output": 16384 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + }, + "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, + "limit": { "context": 196608, "input": 196601, "output": 24576 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + }, + "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, + "limit": { "context": 1000000, "output": 65536 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + }, + "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, + "limit": { "context": 262144, "output": 32768 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + }, + "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, + "limit": { "context": 1000000, "output": 65536 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + } + } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.1875, "output": 0.75, "cache_read": 0.09375 } + }, + "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, + "limit": { "context": 256000, "output": 16384 }, + "cost": { "input": 0.35, "output": 1.9 } + }, + "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, + "limit": { "context": 2000000, "output": 128000 }, + "cost": { + "input": 1.42, + "output": 2.83, + "cache_read": 0.23, + "tiers": [ + { + "input": 2.83, + "output": 5.67, + "cache_read": 0.45, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { + "input": 2.83, + "output": 5.67, + "cache_read": 0.45 + } + } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.15, "output": 0.75 } + }, + "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, + "limit": { "context": 200000, "output": 32768 }, + "cost": { "input": 1.5, "output": 5, "cache_read": 0.3 } + }, + "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, + "limit": { "context": 256000, "output": 8192 }, + "cost": { "input": 0.1625, "output": 0.5 } + }, + "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, + "limit": { "context": 1000000, "output": 30000 }, + "cost": { "input": 0.23, "output": 0.57, "cache_read": 0.06 } + }, + "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, + "limit": { "context": 1000000, "output": 64000 }, + "cost": { + "input": 3.6, + "output": 18, + "cache_read": 0.36, + "cache_write": 4.5 + } + }, + "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, + "limit": { "context": 256000, "output": 32768 }, + "cost": { "input": 0.14, "output": 0.8 } + }, + "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, + "limit": { "context": 256000, "output": 65536 }, + "cost": { "input": 0.7, "output": 3.75, "cache_read": 0.07 } + }, + "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, + "limit": { "context": 2000000, "output": 128000 }, + "cost": { + "input": 1.42, + "output": 2.83, + "cache_read": 0.23, + "tiers": [ + { + "input": 2.83, + "output": 5.67, + "cache_read": 0.45, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { + "input": 2.83, + "output": 5.67, + "cache_read": 0.45 + } + } + }, + "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, + "limit": { "context": 256000, "output": 8192 }, + "cost": { "input": 0.1625, "output": 0.5 } + }, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "cost": { + "input": 6, + "output": 30, + "cache_read": 0.6, + "cache_write": 7.5 + } + }, + "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, + "limit": { "context": 256000, "output": 65536 }, + "cost": { "input": 0.35, "output": 1.5, "cache_read": 0.04 } + }, + "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, + "limit": { "context": 128000, "output": 32768 }, + "cost": { "input": 0.75, "output": 4.5 } + }, + "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, + "limit": { "context": 198000, "output": 16384 }, + "cost": { "input": 0.55, "output": 2.65, "cache_read": 0.11 } + }, + "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, + "limit": { "context": 1000000, "output": 131072 }, + "cost": { "input": 3.13, "output": 18.8, "cache_read": 0.313 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.125, "output": 0.5 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.075, "output": 0.3 } + }, + "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, + "limit": { "context": 256000, "output": 16384 }, + "cost": { "input": 0.25, "output": 1.5 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 2.19, "output": 17.5, "cache_read": 0.219 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0.2, "output": 0.9 } + }, + "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, + "limit": { "context": 256000, "output": 65536 }, + "cost": { "input": 2.19, "output": 17.5, "cache_read": 0.219 } + }, + "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, + "limit": { "context": 256000, "output": 16384 }, + "cost": { "input": 0.09375, "output": 0.25 } + }, + "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, + "limit": { "context": 198000, "output": 32768 }, + "cost": { "input": 0.375, "output": 1.5, "cache_read": 0.075 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.45, "output": 3.5 } + }, + "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, + "limit": { "context": 256000, "output": 65536 }, + "cost": { "input": 0.3125, "output": 1.25, "cache_read": 0.15625 } + }, + "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, + "limit": { "context": 128000, "output": 50000 }, + "cost": { "input": 0.3125, "output": 0.9375, "cache_read": 0.03125 } + }, + "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, + "limit": { "context": 198000, "output": 16384 }, + "cost": { "input": 0.12, "output": 0.2 } + }, + "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, + "limit": { "context": 200000, "output": 24000 }, + "cost": { "input": 0.14, "output": 0.8 } + }, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "cost": { "input": 37.5, "output": 225 } + }, + "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, + "limit": { "context": 256000, "output": 65536 }, + "cost": { "input": 2.19, "output": 17.5, "cache_read": 0.219 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0.5, "output": 2 } + }, + "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, + "limit": { "context": 198000, "output": 32000 }, + "cost": { "input": 1, "output": 3.2, "cache_read": 0.2 } + }, + "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, + "limit": { "context": 198000, "output": 16384 }, + "cost": { "input": 0.85, "output": 2.75, "cache_read": 0.3 } + }, + "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, + "limit": { "context": 1000000, "output": 32000 }, + "cost": { + "input": 1.42, + "output": 2.83, + "cache_read": 0.23, + "tiers": [ + { + "input": 2.83, + "output": 5.67, + "cache_read": 0.45, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { + "input": 2.83, + "output": 5.67, + "cache_read": 0.45 + } + } + }, + "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, + "limit": { "context": 256000, "output": 65536 }, + "cost": { "input": 0.1875, "output": 0.75 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.07, "output": 0.3 } + }, + "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, + "limit": { "context": 198000, "output": 32768 }, + "cost": { + "input": 6, + "output": 30, + "cache_read": 0.6, + "cache_write": 7.5 + } + }, + "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, + "limit": { "context": 256000, "output": 32768 }, + "cost": { "input": 0.1, "output": 0.15 } + }, + "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, + "limit": { "context": 1000000, "output": 32768 }, + "cost": { "input": 0.17, "output": 0.35, "cache_read": 0.028 } + }, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "cost": { + "input": 37.5, + "output": 225, + "tiers": [ + { + "input": 75, + "output": 337.5, + "tier": { "type": "context", "size": 272000 } + } + ], + "context_over_200k": { "input": 75, "output": 337.5 } + } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 0.9375, "output": 5.625, "cache_read": 0.09375 } + }, + "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, + "limit": { "context": 198000, "output": 32768 }, + "cost": { "input": 0.34, "output": 1.19, "cache_read": 0.04 } + }, + "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, + "limit": { "context": 200000, "output": 24000 }, + "cost": { "input": 1.75, "output": 5.5, "cache_read": 0.325 } + }, + "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, + "limit": { "context": 1000000, "output": 131072 }, + "cost": { + "input": 6.25, + "output": 37.5, + "cache_read": 0.625, + "tiers": [ + { + "input": 12.5, + "output": 56.25, + "cache_read": 1.25, + "tier": { "type": "context", "size": 272000 } + } + ], + "context_over_200k": { + "input": 12.5, + "output": 56.25, + "cache_read": 1.25 + } + } + }, + "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, + "limit": { "context": 256000, "output": 65536 }, + "cost": { "input": 0.325, "output": 3.25 } + }, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "cost": { + "input": 6, + "output": 30, + "cache_read": 0.6, + "cache_write": 7.5 + } + }, + "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, + "limit": { "context": 1000000, "output": 32768 }, + "cost": { "input": 1.73, "output": 3.796, "cache_read": 0.33 } + }, + "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, + "limit": { "context": 160000, "output": 32768 }, + "cost": { "input": 0.33, "output": 0.48, "cache_read": 0.16 } + }, + "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, + "limit": { "context": 1000000, "output": 65536 }, + "cost": { + "input": 0.625, + "output": 3.75, + "cache_read": 0.0625, + "cache_write": 0.78, + "tiers": [ + { + "input": 2.5, + "output": 7.5, + "cache_read": 0.0625, + "cache_write": 0.78, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { + "input": 2.5, + "output": 7.5, + "cache_read": 0.0625, + "cache_write": 0.78 + } + } + }, + "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, + "limit": { "context": 128000, "output": 32768 }, + "cost": { "input": 1, "output": 2, "cache_read": 0.25 } + }, + "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, + "limit": { "context": 198000, "output": 64000 }, + "cost": { + "input": 3.75, + "output": 18.75, + "cache_read": 0.375, + "cache_write": 4.69 + } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 3.125, "output": 12.5 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0.7, "output": 2.8 } + }, + "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, + "limit": { "context": 256000, "output": 65536 }, + "cost": { "input": 0.56, "output": 3.5, "cache_read": 0.22 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0.15, "output": 0.6 } + }, + "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, + "limit": { "context": 256000, "output": 65536 }, + "cost": { "input": 0.3125, "output": 1.125, "cache_read": 0.075 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 1.1, "output": 3 } + }, + "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, + "limit": { "context": 1000000, "output": 32768 }, + "cost": { + "input": 2.5, + "output": 15, + "cache_read": 0.5, + "cache_write": 0.5, + "tiers": [ + { + "input": 5, + "output": 22.5, + "cache_read": 0.5, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { "input": 5, "output": 22.5, "cache_read": 0.5 } + } + }, + "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, + "limit": { "context": 256000, "output": 65536 }, + "cost": { "input": 0.85, "output": 4.655, "cache_read": 0.22 } + }, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "cost": { + "input": 36, + "output": 180, + "cache_read": 3.6, + "cache_write": 45 + } + }, + "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, + "limit": { "context": 200000, "output": 32768 }, + "cost": { "input": 1.2, "output": 4, "cache_read": 0.24 } + }, + "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, + "limit": { "context": 256000, "output": 8192 }, + "cost": { "input": 0.175, "output": 0.5 } + } + } + }, + "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, + "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, + "limit": { "context": 204800, "output": 128000 }, + "cost": { + "input": 0.3, + "output": 1.2, + "cache_read": 0.06, + "cache_write": 0.375 + } + }, + "coding-glm-5.1-free": { + "id": "coding-glm-5.1-free", + "name": "Coding GLM 5.1 (free)", + "family": "glm-free", + "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": true, + "limit": { "context": 200000, "output": 128000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 2, + "output": 12, + "cache_read": 0.2, + "tiers": [ + { + "input": 4, + "output": 18, + "cache_read": 0.4, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { "input": 4, "output": 18, "cache_read": 0.4 } + } + }, + "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" }, + "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, + "limit": { "context": 262144, "output": 32768 }, + "cost": { "input": 0.6, "output": 3, "cache_read": 0.1 } + }, + "deep-deepseek-v4-flash": { + "id": "deep-deepseek-v4-flash", + "name": "DeepSeek V4 Flash (DeepSeek)", + "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, + "limit": { "context": 1000000, "output": 384000 }, + "cost": { "input": 0.154, "output": 0.308, "cache_read": 0.0308 } + }, + "glm-5v-turbo": { + "id": "glm-5v-turbo", + "name": "GLM 5 Vision Turbo", + "family": "glmv", + "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, + "limit": { "context": 200000, "output": 128000 }, + "cost": { "input": 0.7042, "output": 3.09848, "cache_read": 0.169008 } + }, + "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, + "limit": { "context": 1000000, "output": 1000000 }, + "cost": { + "input": 1.25, + "output": 2.5, + "cache_read": 0.2, + "tiers": [ + { + "input": 2.5, + "output": 5, + "cache_read": 0.4, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { "input": 2.5, "output": 5, "cache_read": 0.4 } + } + }, + "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, + "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, + "limit": { "context": 204800, "output": 128100 }, + "cost": { "input": 0.2, "output": 0.2 } + }, + "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, + "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, + "limit": { "context": 1000000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75, + "tiers": [ + { + "input": 6, + "output": 22.5, + "cache_read": 0.6, + "cache_write": 7.5, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { + "input": 6, + "output": 22.5, + "cache_read": 0.6, + "cache_write": 7.5 + } + } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 2, + "output": 12, + "cache_read": 0.2, + "tiers": [ + { + "input": 4, + "output": 18, + "cache_read": 0.4, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { "input": 4, "output": 18, "cache_read": 0.4 } + } + }, + "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" }, + "structured_output": true, + "temperature": true, + "release_date": "2026-04-11", + "last_updated": "2026-04-11", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 200000, "output": 128000 }, + "cost": { "input": 0.06, "output": 0.22, "cache_read": 0.013 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 0.5, + "output": 3, + "cache_read": 0.05, + "tiers": [ + { + "input": 0.5, + "output": 3, + "cache_read": 0.05, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { "input": 0.5, "output": 3, "cache_read": 0.05 } + } + }, + "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, + "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" } } + } + } + }, + "cost": { + "input": 5, + "output": 30, + "cache_read": 0.5, + "tiers": [ + { + "input": 10, + "output": 45, + "cache_read": 1, + "tier": { "type": "context", "size": 272000 } + } + ], + "context_over_200k": { "input": 10, "output": 45, "cache_read": 1 } + } + }, + "claude-opus-4-7": { + "id": "claude-opus-4-7", + "name": "Claude Opus 4.7", + "family": "claude-opus", + "attachment": true, + "reasoning": true, + "tool_call": true, + "interleaved": 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, + "limit": { "context": 1000000, "output": 128000 }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25, + "tiers": [ + { + "input": 10, + "output": 37.5, + "cache_read": 1, + "cache_write": 12.5, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { + "input": 10, + "output": 37.5, + "cache_read": 1, + "cache_write": 12.5 + } + } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 1.75, "output": 14, "cache_read": 0.175 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125, + "tiers": [ + { + "input": 2.5, + "output": 15, + "cache_read": 0.25, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { + "input": 2.5, + "output": 15, + "cache_read": 0.25 + } + } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 1.75, "output": 14, "cache_read": 0.175 } + }, + "qwen3.6-plus": { + "id": "qwen3.6-plus", + "name": "Qwen3.6 Plus", + "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-05-09", + "last_updated": "2026-05-09", + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "open_weights": false, + "limit": { "context": 991000, "output": 64000 }, + "cost": { + "input": 0.28, + "output": 1.69, + "cache_read": 0.0282, + "cache_write": 0.3525, + "tiers": [ + { + "input": 1.13, + "output": 6.77, + "cache_read": 0.1128, + "cache_write": 1.41, + "tier": { "type": "context", "size": 256000 } + } + ], + "context_over_200k": { + "input": 1.13, + "output": 6.77, + "cache_read": 0.1128, + "cache_write": 1.41 + } + } + }, + "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, + "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" } } + } + } + }, + "cost": { "input": 0.75, "output": 4.5, "cache_read": 0.075 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 1.75, "output": 14, "cache_read": 0.175 } + }, + "doubao-seed-2-0-lite-260428": { + "id": "doubao-seed-2-0-lite-260428", + "name": "Doubao Seed 2.0 Lite 260428", + "family": "seed", + "attachment": true, + "reasoning": true, + "tool_call": true, + "interleaved": { "field": "reasoning_content" }, + "structured_output": true, + "temperature": true, + "release_date": "2026-04-28", + "last_updated": "2026-04-28", + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "open_weights": false, + "limit": { "context": 256000, "output": 128000 }, + "cost": { + "input": 0.08, + "output": 0.51, + "cache_read": 0.01692, + "input_audio": 1.269, + "tiers": [ + { + "input": 0.13, + "output": 0.76, + "cache_read": 0.02536, + "input_audio": 1.902, + "tier": { "type": "context", "size": 32000 } + }, + { + "input": 0.25, + "output": 1.52, + "cache_read": 0.05072, + "input_audio": 3.804, + "tier": { "type": "context", "size": 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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 0.3, + "output": 2.5, + "cache_read": 0.03, + "input_audio": 1 + } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 0.25, "output": 2, "cache_read": 0.025 } + }, + "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", "audio", "video", "pdf"], + "output": ["text"] + }, + "open_weights": false, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 0.25, + "output": 1.5, + "cache_read": 0.025, + "cache_write": 1 + } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.13 } + }, + "deep-deepseek-v4-pro": { + "id": "deep-deepseek-v4-pro", + "name": "DeepSeek V4 Pro (DeepSeek)", + "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, + "limit": { "context": 1000000, "output": 384000 }, + "cost": { "input": 0.478, "output": 0.956, "cache_read": 0.004302 } + }, + "claude-opus-4-6-think": { + "id": "claude-opus-4-6-think", + "name": "Claude Opus 4.6 Thinking", + "family": "claude-opus", + "attachment": true, + "reasoning": true, + "tool_call": true, + "interleaved": { "field": "reasoning_content" }, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25, + "tiers": [ + { + "input": 10, + "output": 37.5, + "cache_read": 1, + "cache_write": 12.5, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { + "input": 10, + "output": 37.5, + "cache_read": 1, + "cache_write": 12.5 + } + } + }, + "coding-minimax-m2.7-free": { + "id": "coding-minimax-m2.7-free", + "name": "Coding MiniMax M2.7 (Free)", + "family": "minimax-free", + "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, + "limit": { "context": 204800, "output": 128100 }, + "cost": { "input": 0, "output": 0 } + }, + "alicloud-deepseek-v4-flash": { + "id": "alicloud-deepseek-v4-flash", + "name": "DeepSeek V4 Flash (Alibaba Cloud)", + "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, + "limit": { "context": 1000000, "output": 384000 }, + "cost": { "input": 0.14, "output": 0.28, "cache_read": 0.028 } + }, + "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": false, + "knowledge": "2025-01", + "release_date": "2026-04-21", + "last_updated": "2026-04-21", + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "open_weights": true, + "limit": { "context": 262144, "output": 32768 }, + "cost": { "input": 0.95, "output": 4, "cache_read": 0.16 } + }, + "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, + "limit": { "context": 1050000, "input": 922000, "output": 128000 }, + "experimental": { + "modes": { + "fast": { + "cost": { "input": 5, "output": 30, "cache_read": 0.5 }, + "provider": { "body": { "service_tier": "priority" } } + } + } + }, + "cost": { + "input": 2.5, + "output": 15, + "cache_read": 0.25, + "tiers": [ + { + "input": 5, + "output": 22.5, + "cache_read": 0.5, + "tier": { "type": "context", "size": 272000 } + } + ], + "context_over_200k": { "input": 5, "output": 22.5, "cache_read": 0.5 } + } + }, + "claude-opus-4-6": { + "id": "claude-opus-4-6", + "name": "Claude Opus 4.6", + "family": "claude-opus", + "attachment": true, + "reasoning": true, + "tool_call": true, + "interleaved": 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, + "limit": { "context": 1000000, "output": 128000 }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25, + "tiers": [ + { + "input": 10, + "output": 37.5, + "cache_read": 1, + "cache_write": 12.5, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { + "input": 10, + "output": 37.5, + "cache_read": 1, + "cache_write": 12.5 + } + } + }, + "doubao-seed-2-0-code-preview": { + "id": "doubao-seed-2-0-code-preview", + "name": "Doubao Seed 2.0 Code Preview", + "family": "seed", + "attachment": true, + "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", "image", "video"], + "output": ["text"] + }, + "open_weights": false, + "limit": { "context": 256000, "output": 128000 }, + "cost": { + "input": 0.48, + "output": 2.41, + "cache_read": 0.09644, + "tiers": [ + { + "input": 0.72, + "output": 3.62, + "cache_read": 0.144656, + "tier": { "type": "context", "size": 32000 } + }, + { + "input": 1.45, + "output": 7.23, + "cache_read": 0.28932, + "tier": { "type": "context", "size": 128000 } + } + ] + } + }, + "alicloud-deepseek-v4-pro": { + "id": "alicloud-deepseek-v4-pro", + "name": "DeepSeek V4 Pro (Alibaba Cloud)", + "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, + "limit": { "context": 1000000, "output": 384000 }, + "cost": { "input": 1.69, "output": 3.38, "cache_read": 0.13 } + }, + "zai-glm-5.1": { + "id": "zai-glm-5.1", + "name": "GLM-5.1 (Z.ai)", + "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, + "limit": { "context": 200000, "output": 128000 }, + "cost": { "input": 0.845, "output": 3.38, "cache_read": 0.183112 } + }, + "alicloud-glm-5.1": { + "id": "alicloud-glm-5.1", + "name": "GLM-5.1 (Alibaba Cloud)", + "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, + "limit": { "context": 200000, "output": 128000 }, + "cost": { + "input": 0.84, + "output": 3.38, + "cache_read": 0.169, + "cache_write": 1.05625 + } + }, + "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, + "interleaved": { "field": "reasoning_content" }, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25, + "tiers": [ + { + "input": 10, + "output": 37.5, + "cache_read": 1, + "cache_write": 12.5, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { + "input": 10, + "output": 37.5, + "cache_read": 1, + "cache_write": 12.5 + } + } + }, + "doubao-seed-2-0-mini-260428": { + "id": "doubao-seed-2-0-mini-260428", + "name": "Doubao Seed 2.0 Mini 260428", + "family": "seed", + "attachment": true, + "reasoning": true, + "tool_call": true, + "interleaved": { "field": "reasoning_content" }, + "structured_output": true, + "temperature": true, + "release_date": "2026-04-28", + "last_updated": "2026-04-28", + "modalities": { + "input": ["text", "image", "video"], + "output": ["text"] + }, + "open_weights": false, + "limit": { "context": 256000, "output": 128000 }, + "cost": { + "input": 0.03, + "output": 0.28, + "cache_read": 0.00564, + "input_audio": 0.423, + "tiers": [ + { + "input": 0.06, + "output": 0.56, + "cache_read": 0.01128, + "input_audio": 0.846, + "tier": { "type": "context", "size": 32000 } + }, + { + "input": 0.11, + "output": 1.13, + "cache_read": 0.02256, + "input_audio": 1.692, + "tier": { "type": "context", "size": 128000 } + } + ] + } + }, + "coding-minimax-m2.7": { + "id": "coding-minimax-m2.7", + "name": "Coding 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, + "limit": { "context": 204800, "output": 128100 }, + "cost": { "input": 0.2, "output": 0.2 } + }, + "doubao-seed-2-0-pro": { + "id": "doubao-seed-2-0-pro", + "name": "Doubao Seed 2.0 Pro", + "family": "seed", + "attachment": true, + "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", "image", "video"], + "output": ["text"] + }, + "open_weights": false, + "limit": { "context": 256000, "output": 128000 }, + "cost": { + "input": 0.48, + "output": 2.41, + "cache_read": 0.09644, + "tiers": [ + { + "input": 0.72, + "output": 3.62, + "cache_read": 0.144656, + "tier": { "type": "context", "size": 32000 } + }, + { + "input": 1.45, + "output": 7.23, + "cache_read": 0.28932, + "tier": { "type": "context", "size": 128000 } + } + ] + } + }, + "qwen3.6-max-preview": { + "id": "qwen3.6-max-preview", + "name": "Qwen3.6 Max Preview", + "family": "qwen3.6", + "attachment": false, + "reasoning": true, + "tool_call": true, + "interleaved": { "field": "reasoning_content" }, + "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, + "limit": { "context": 240000, "output": 64000 }, + "cost": { + "input": 1.27, + "output": 7.61, + "cache_read": 0.1268, + "cache_write": 1.585, + "tiers": [ + { + "input": 2.11, + "output": 12.67, + "cache_read": 0.2112, + "cache_write": 2.64, + "tier": { "type": "context", "size": 128000 } + } + ] + } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.125 } + }, + "claude-sonnet-4-6-think": { + "id": "claude-sonnet-4-6-think", + "name": "Claude Sonnet 4.6 Thinking", + "family": "claude-sonnet", + "attachment": true, + "reasoning": true, + "tool_call": true, + "interleaved": { "field": "reasoning_content" }, + "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, + "limit": { "context": 1000000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75, + "tiers": [ + { + "input": 6, + "output": 22.5, + "cache_read": 0.6, + "cache_write": 7.5, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { + "input": 6, + "output": 22.5, + "cache_read": 0.6, + "cache_write": 7.5 + } + } + }, + "qwen3.6-flash": { + "id": "qwen3.6-flash", + "name": "Qwen3.6 Flash", + "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, + "limit": { "context": 991000, "output": 64000 }, + "cost": { + "input": 0.17, + "output": 1.01, + "cache_read": 0.0169, + "cache_write": 0.21125, + "tiers": [ + { + "input": 0.68, + "output": 4.06, + "cache_read": 0.0676, + "cache_write": 0.845, + "tier": { "type": "context", "size": 256000 } + } + ], + "context_over_200k": { + "input": 0.68, + "output": 4.06, + "cache_read": 0.0676, + "cache_write": 0.845 + } + } + }, + "coding-xiaomi-mimo-v2.5-pro": { + "id": "coding-xiaomi-mimo-v2.5-pro", + "name": "Coding Xiaomi MiMo-V2.5-Pro", + "family": "mimo-v2.5-pro", + "attachment": false, + "reasoning": true, + "tool_call": true, + "interleaved": { "field": "reasoning_content" }, + "temperature": true, + "knowledge": "2024-12", + "release_date": "2026-04-22", + "last_updated": "2026-05-13", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 1048576, "output": 131072 }, + "cost": { + "input": 0.2, + "output": 0.6, + "cache_read": 0.04, + "context_over_200k": { + "input": 0.4, + "output": 1.2, + "cache_read": 0.08 + }, + "tiers": [ + { + "input": 0.4, + "output": 1.2, + "cache_read": 0.08, + "tier": { "type": "context", "size": 256000 } + } + ] + } + }, + "coding-xiaomi-mimo-v2.5": { + "id": "coding-xiaomi-mimo-v2.5", + "name": "Coding Xiaomi 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-05-13", + "modalities": { + "input": ["text", "image", "audio", "video"], + "output": ["text"] + }, + "open_weights": true, + "limit": { "context": 1048576, "output": 131072 }, + "cost": { + "input": 0.08, + "output": 0.4, + "cache_read": 0.016, + "context_over_200k": { + "input": 0.16, + "output": 0.8, + "cache_read": 0.032 + }, + "tiers": [ + { + "input": 0.16, + "output": 0.8, + "cache_read": 0.032, + "tier": { "type": "context", "size": 256000 } + } + ] + } + }, + "xiaomi-mimo-v2.5-pro-free": { + "id": "xiaomi-mimo-v2.5-pro-free", + "name": "Xiaomi MiMo-V2.5-Pro (free)", + "family": "mimo-v2.5-pro", + "attachment": false, + "reasoning": true, + "tool_call": true, + "interleaved": { "field": "reasoning_content" }, + "temperature": true, + "knowledge": "2024-12", + "release_date": "2026-04-22", + "last_updated": "2026-05-13", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 1048576, "output": 131072 }, + "cost": { "input": 0, "output": 0, "cache_read": 0 } + }, + "xiaomi-mimo-v2.5": { + "id": "xiaomi-mimo-v2.5", + "name": "Xiaomi 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-05-13", + "modalities": { + "input": ["text", "image", "audio", "video"], + "output": ["text"] + }, + "open_weights": true, + "limit": { "context": 1048576, "output": 131072 }, + "cost": { + "input": 0.44, + "output": 2.2, + "cache_read": 0.088, + "context_over_200k": { + "input": 0.88, + "output": 4.4, + "cache_read": 0.176 + }, + "tiers": [ + { + "input": 0.88, + "output": 4.4, + "cache_read": 0.176, + "tier": { "type": "context", "size": 256000 } + } + ] + } + }, + "xiaomi-mimo-v2.5-free": { + "id": "xiaomi-mimo-v2.5-free", + "name": "Xiaomi MiMo-V2.5 (free)", + "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-05-13", + "modalities": { + "input": ["text", "image", "audio", "video"], + "output": ["text"] + }, + "open_weights": true, + "limit": { "context": 1048576, "output": 131072 }, + "cost": { "input": 0, "output": 0, "cache_read": 0 } + }, + "xiaomi-mimo-v2.5-pro": { + "id": "xiaomi-mimo-v2.5-pro", + "name": "Xiaomi MiMo-V2.5-Pro", + "family": "mimo-v2.5-pro", + "attachment": false, + "reasoning": true, + "tool_call": true, + "interleaved": { "field": "reasoning_content" }, + "temperature": true, + "knowledge": "2024-12", + "release_date": "2026-04-22", + "last_updated": "2026-05-13", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 1048576, "output": 131072 }, + "cost": { + "input": 1.1, + "output": 3.3, + "cache_read": 0.22, + "context_over_200k": { + "input": 2.2, + "output": 6.6, + "cache_read": 0.44 + }, + "tiers": [ + { + "input": 2.2, + "output": 6.6, + "cache_read": 0.44, + "tier": { "type": "context", "size": 256000 } + } + ] + } + } + } + }, + "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, + "limit": { "context": 32000, "output": 8000 }, + "cost": { "input": 0.1, "output": 0.1 } + }, + "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, + "limit": { "context": 131000, "output": 32000 }, + "cost": { "input": 0.6, "output": 1.2 } + }, + "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, + "limit": { "context": 131072, "output": 40000 }, + "cost": { + "input": 2.25, + "output": 2.75, + "cache_read": 0, + "cache_write": 0 + } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.25, "output": 0.69 } + } + } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 262144, "output": 16384 }, + "cost": { "input": 0, "output": 0 } + } + } + }, + "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, + "limit": { "context": 120000, "output": 8000 }, + "cost": { "input": 2, "output": 5 } + }, + "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, + "limit": { "context": 250000, "output": 60000 }, + "cost": { "input": 2, "output": 5 } + } + } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.6, "output": 2.5, "cache_read": 0.15 } + }, + "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, + "limit": { "context": 131072, "output": 16384 }, + "cost": { "input": 0.6, "output": 2.5, "cache_read": 0.15 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 2.4, "output": 10, "cache_read": 0.6 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.95, "output": 4, "cache_read": 0.16 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 1.15, "output": 8, "cache_read": 0.15 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.6, "output": 3, "cache_read": 0.1 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.6, "output": 2.5, "cache_read": 0.15 } + } + } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "provider": { + "npm": "@ai-sdk/anthropic", + "api": "https://${AZURE_COGNITIVE_SERVICES_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1" + }, + "cost": { + "input": 1, + "output": 5, + "cache_read": 0.1, + "cache_write": 1.25 + } + }, + "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, + "limit": { "context": 200000, "output": 32000 }, + "provider": { + "npm": "@ai-sdk/anthropic", + "api": "https://${AZURE_COGNITIVE_SERVICES_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1" + }, + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "provider": { + "npm": "@ai-sdk/anthropic", + "api": "https://${AZURE_COGNITIVE_SERVICES_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1" + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "provider": { + "npm": "@ai-sdk/openai-compatible", + "api": "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/models", + "shape": "completions" + }, + "cost": { "input": 0.95, "output": 4 } + }, + "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, + "limit": { "context": 200000, "output": 128000 }, + "provider": { + "npm": "@ai-sdk/anthropic", + "api": "https://${AZURE_COGNITIVE_SERVICES_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1" + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25, + "tiers": [ + { + "input": 10, + "output": 37.5, + "cache_read": 1, + "cache_write": 12.5, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { + "input": 10, + "output": 37.5, + "cache_read": 1, + "cache_write": 12.5 + } + } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "provider": { + "npm": "@ai-sdk/anthropic", + "api": "https://${AZURE_COGNITIVE_SERVICES_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1" + }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 1.35, "output": 5.4 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0.25, "output": 1 } + }, + "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, + "limit": { "context": 256000, "output": 256000 }, + "cost": { "input": 0.3, "output": 0.9 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.125 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.6, "output": 2.5, "cache_read": 0.15 } + }, + "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, + "limit": { "context": 163840, "output": 163840 }, + "cost": { "input": 1.35, "output": 5.4 } + }, + "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, + "limit": { "context": 4096, "output": 4096 }, + "cost": { "input": 1.5, "output": 2 } + }, + "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, + "limit": { "context": 128000, "output": 128000 }, + "cost": { "input": 0.4, "output": 2 } + }, + "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, + "limit": { "context": 32000, "output": 4096 }, + "cost": { "input": 0.125, "output": 0.5 } + }, + "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, + "limit": { "context": 512, "output": 1024 }, + "cost": { "input": 0.1, "output": 0 } + }, + "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, + "limit": { "context": 32768, "output": 32768 }, + "cost": { "input": 60, "output": 120 } + }, + "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, + "limit": { "context": 272000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.13 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0.125, "output": 0.5 } + }, + "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, + "limit": { "context": 16384, "output": 16384 }, + "cost": { "input": 3, "output": 4 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0.17, "output": 0.68 } + }, + "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, + "limit": { "context": 128000, "output": 128000 }, + "cost": { "input": 0.58, "output": 1.68 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0.15, "output": 0.6 } + }, + "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, + "limit": { "context": 4096, "output": 4096 }, + "cost": { "input": 1.5, "output": 2 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0.075, "output": 0.3 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.13 } + }, + "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, + "limit": { "context": 8192, "output": 2048 }, + "cost": { "input": 0.3, "output": 0.61 } + }, + "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, + "limit": { "context": 8192, "output": 8192 }, + "cost": { "input": 60, "output": 120 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0.075, "output": 0.3 } + }, + "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, + "limit": { "context": 128000, "output": 32768 }, + "cost": { "input": 2.68, "output": 3.54 } + }, + "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, + "limit": { "context": 4096, "output": 1024 }, + "cost": { "input": 0.13, "output": 0.52 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.56, "output": 1.68 } + }, + "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, + "limit": { "context": 8191, "output": 1536 }, + "cost": { "input": 0.02, "output": 0 } + }, + "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, + "limit": { "context": 16384, "output": 16384 }, + "cost": { "input": 1, "output": 2 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.14, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 32768 }, + "cost": { "input": 0.1, "output": 0.3 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 15, "output": 60, "cache_read": 7.5 } + }, + "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, + "limit": { "context": 2000000, "output": 30000 }, + "cost": { "input": 0.2, "output": 0.5, "cache_read": 0.05 } + }, + "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, + "limit": { "context": 272000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.125 } + }, + "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, + "limit": { "context": 512, "output": 1024 }, + "cost": { "input": 0.1, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 32768 }, + "cost": { "input": 16.5, "output": 66, "cache_read": 8.25 } + }, + "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, + "limit": { "context": 16384, "output": 16384 }, + "cost": { "input": 0.5, "output": 1.5 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 0.25, "output": 2, "cache_read": 0.025 } + }, + "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, + "limit": { "context": 128000, "output": 1536 }, + "cost": { "input": 0.12, "output": 0 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.75, "output": 14, "cache_read": 0.175 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 10, "output": 30 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.125 } + }, + "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, + "limit": { "context": 128000, "output": 32768 }, + "cost": { "input": 5.33, "output": 16 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0.37, "output": 0.37 } + }, + "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, + "limit": { "context": 256000, "output": 8000 }, + "cost": { "input": 2.5, "output": 10 } + }, + "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, + "limit": { "context": 128000, "output": 32768 }, + "cost": { "input": 2, "output": 6 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.75, "output": 14, "cache_read": 0.125 } + }, + "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, + "limit": { "context": 128000, "output": 128000 }, + "cost": { "input": 0.58, "output": 1.68 } + }, + "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, + "limit": { "context": 163840, "output": 163840 }, + "cost": { "input": 1.35, "output": 5.4 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 2.04, "output": 2.04 } + }, + "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, + "limit": { "context": 8192, "output": 1536 }, + "cost": { "input": 0.1, "output": 0 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.75, "output": 14, "cache_read": 0.175 } + }, + "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, + "limit": { "context": 8192, "output": 2048 }, + "cost": { "input": 0.15, "output": 0.6 } + }, + "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, + "limit": { "context": 8192, "output": 2048 }, + "cost": { "input": 2.68, "output": 3.54 } + }, + "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, + "limit": { "context": 272000, "output": 128000 }, + "cost": { "input": 0.05, "output": 0.4, "cache_read": 0.01 } + }, + "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, + "limit": { "context": 272000, "output": 128000 }, + "cost": { "input": 0.25, "output": 2, "cache_read": 0.03 } + }, + "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, + "limit": { "context": 32000, "output": 4096 }, + "cost": { "input": 0.125, "output": 0.5 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0.13, "output": 0.52 } + }, + "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, + "limit": { "context": 8191, "output": 3072 }, + "cost": { "input": 0.13, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 65536 }, + "cost": { "input": 1.1, "output": 4.4, "cache_read": 0.55 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0.16, "output": 0.64 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.13 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 1.14, "output": 4.56 } + }, + "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, + "limit": { "context": 128000, "output": 32768 }, + "cost": { "input": 0.71, "output": 0.71 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "provider": { + "npm": "@ai-sdk/openai-compatible", + "api": "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/models", + "shape": "completions" + }, + "cost": { "input": 0.6, "output": 3 } + }, + "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, + "limit": { "context": 128000, "output": 32768 }, + "cost": { "input": 0.3, "output": 0.61 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0.04, "output": 0.04 } + }, + "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, + "limit": { "context": 4096, "output": 1024 }, + "cost": { "input": 0.17, "output": 0.68 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0.2, "output": 0.78 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0.13, "output": 0.52 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0.08, "output": 0.32, "input_audio": 4 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 1.5, "output": 6, "cache_read": 0.375 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 1.75, "output": 14, "cache_read": 0.175 } + }, + "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, + "limit": { "context": 128000, "output": 128000 }, + "cost": { "input": 0.15, "output": 0.15 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 0.75, "output": 4.5, "cache_read": 0.075 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 0.2, "output": 1.25, "cache_read": 0.02 } + }, + "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, + "limit": { "context": 1050000, "input": 922000, "output": 128000 }, + "cost": { + "input": 30, + "output": 180, + "context_over_200k": { "input": 60, "output": 270 }, + "tiers": [ + { + "input": 60, + "output": 270, + "tier": { "type": "context", "size": 272000 } + } + ] + } + }, + "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, + "limit": { "context": 1050000, "input": 922000, "output": 128000 }, + "cost": { + "input": 2.5, + "output": 15, + "cache_read": 0.25, + "context_over_200k": { + "input": 5, + "output": 22.5, + "cache_read": 0.5 + }, + "tiers": [ + { + "input": 5, + "output": 22.5, + "cache_read": 0.5, + "tier": { "type": "context", "size": 272000 } + } + ] + } + }, + "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, + "limit": { "context": 2000000, "output": 30000 }, + "cost": { "input": 0.2, "output": 0.5, "cache_read": 0.05 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 3, "output": 15, "cache_read": 0.75 } + }, + "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, + "limit": { "context": 1047576, "output": 32768 }, + "cost": { "input": 0.4, "output": 1.6, "cache_read": 0.1 } + }, + "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, + "limit": { "context": 1047576, "output": 32768 }, + "cost": { "input": 2, "output": 8, "cache_read": 0.5 } + }, + "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, + "limit": { "context": 128000, "output": 4000 }, + "cost": { "input": 2.5, "output": 10 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 2.5, "output": 10, "cache_read": 1.25 } + }, + "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, + "limit": { "context": 400000, "output": 272000 }, + "cost": { "input": 15, "output": 120 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 2, "output": 8, "cache_read": 0.5 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { + "input": 0.3, + "output": 0.5, + "reasoning": 0.5, + "cache_read": 0.075 + } + }, + "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, + "limit": { "context": 1047576, "output": 32768 }, + "cost": { "input": 0.1, "output": 0.4, "cache_read": 0.03 } + }, + "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, + "limit": { "context": 256000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "reasoning": 15, + "cache_read": 0.75 + } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 1.1, "output": 4.4, "cache_read": 0.55 } + }, + "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, + "limit": { "context": 256000, "output": 10000 }, + "cost": { "input": 0.2, "output": 1.5, "cache_read": 0.02 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 1.1, "output": 4.4, "cache_read": 0.28 } + }, + "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, + "limit": { "context": 128000, "output": 4000 }, + "cost": { "input": 0.15, "output": 0.6 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.15, "output": 0.6, "cache_read": 0.08 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 10, "output": 30 } + }, + "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, + "limit": { "context": 1050000, "input": 922000, "output": 128000 }, + "cost": { + "input": 5, + "output": 30, + "cache_read": 0.5, + "context_over_200k": { "input": 10, "output": 45, "cache_read": 1 }, + "tiers": [ + { + "input": 10, + "output": 45, + "cache_read": 1, + "tier": { "type": "context", "size": 272000 } + } + ] + } + } + } + }, + "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, + "limit": { "context": 150000, "input": 150000, "output": 8192 }, + "cost": { "input": 3, "output": 3 } + } + } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + }, + "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, + "limit": { "context": 202752, "output": 131072 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + } + } + }, + "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, + "limit": { "context": 256000, "output": 32000 }, + "cost": { "input": 2.5, "output": 10 } + }, + "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, + "limit": { "context": 128000, "output": 4000 }, + "cost": { "input": 0.0375, "output": 0.15 } + }, + "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, + "limit": { "context": 128000, "output": 4000 }, + "cost": { "input": 2.5, "output": 10 } + }, + "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, + "limit": { "context": 128000, "output": 4000 }, + "cost": { "input": 0.0375, "output": 0.15 } + }, + "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, + "limit": { "context": 128000, "output": 8000 }, + "cost": { "input": 2.5, "output": 10 } + }, + "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, + "limit": { "context": 8000, "output": 8000 }, + "cost": { "input": 2.5, "output": 10 } + }, + "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, + "limit": { "context": 128000, "output": 4000 }, + "cost": { "input": 0.15, "output": 0.6 } + }, + "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, + "limit": { "context": 256000, "output": 8000 }, + "cost": { "input": 2.5, "output": 10 } + } + } + }, + "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, + "limit": { "context": 70000, "output": 70000 }, + "cost": { "input": 2.92, "output": 2.92 } + }, + "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, + "limit": { "context": 131000, "output": 131000 }, + "cost": { "input": 2.92, "output": 2.92 } + }, + "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, + "limit": { "context": 32000, "output": 32000 }, + "cost": { "input": 0.67, "output": 0.67 } + }, + "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, + "limit": { "context": 32000, "output": 32000 }, + "cost": { "input": 0.67, "output": 0.67 } + }, + "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, + "limit": { "context": 196000, "input": 180000, "output": 16000 }, + "cost": { "input": 0.3, "output": 1.2 } + } + } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + } + } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 2, "output": 10, "cache_read": 2 } + }, + "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, + "limit": { "context": 8192, "output": 4096 }, + "cost": { "input": 5, "output": 15, "cache_read": 5 } + }, + "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, + "limit": { "context": 1000000, "output": 30000 }, + "cost": { + "input": 1.25, + "output": 2.5, + "cache_read": 0.2, + "tiers": [ + { + "input": 2.5, + "output": 5, + "cache_read": 0.4, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { "input": 2.5, "output": 5, "cache_read": 0.4 } + } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { + "input": 0.6, + "output": 4, + "reasoning": 4, + "cache_read": 0.15 + } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { + "input": 0.3, + "output": 0.5, + "reasoning": 0.5, + "cache_read": 0.075 + } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 5, "output": 25, "cache_read": 1.25 } + }, + "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, + "limit": { "context": 8192, "output": 4096 }, + "cost": { "input": 2, "output": 10, "cache_read": 2 } + }, + "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, + "limit": { "context": 2000000, "output": 30000 }, + "cost": { + "input": 2, + "output": 6, + "cache_read": 0.2, + "tiers": [ + { + "input": 4, + "output": 12, + "cache_read": 0.4, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { "input": 4, "output": 12, "cache_read": 0.4 } + } + }, + "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, + "limit": { "context": 2000000, "output": 30000 }, + "cost": { "input": 0.2, "output": 0.5, "cache_read": 0.05 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { + "input": 0.6, + "output": 4, + "reasoning": 4, + "cache_read": 0.15 + } + }, + "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, + "limit": { "context": 2000000, "output": 30000 }, + "cost": { "input": 0.2, "output": 0.5, "cache_read": 0.05 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 3, "output": 15, "cache_read": 0.75 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 2, "output": 10, "cache_read": 2 } + }, + "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, + "limit": { "context": 256000, "output": 10000 }, + "cost": { "input": 0.2, "output": 1.5, "cache_read": 0.02 } + }, + "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, + "limit": { "context": 2000000, "output": 30000 }, + "cost": { + "input": 2, + "output": 6, + "cache_read": 0.2, + "tiers": [ + { + "input": 4, + "output": 12, + "cache_read": 0.4, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { "input": 4, "output": 12, "cache_read": 0.4 } + } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 5, "output": 25, "cache_read": 1.25 } + }, + "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, + "limit": { "context": 2000000, "output": 30000 }, + "cost": { + "input": 2, + "output": 6, + "cache_read": 0.2, + "tiers": [ + { + "input": 4, + "output": 12, + "cache_read": 0.4, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { "input": 4, "output": 12, "cache_read": 0.4 } + } + }, + "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, + "limit": { "context": 256000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "reasoning": 15, + "cache_read": 0.75 + } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 2, "output": 10, "cache_read": 2 } + }, + "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, + "limit": { "context": 131072, "output": 4096 }, + "cost": { "input": 5, "output": 15, "cache_read": 5 } + }, + "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, + "limit": { "context": 8192, "output": 4096 }, + "cost": { "input": 2, "output": 10, "cache_read": 2 } + }, + "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, + "limit": { "context": 2000000, "output": 30000 }, + "cost": { "input": 0.2, "output": 0.5, "cache_read": 0.05 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { + "input": 0.3, + "output": 0.5, + "reasoning": 0.5, + "cache_read": 0.075 + } + }, + "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, + "limit": { "context": 8192, "output": 4096 }, + "cost": { "input": 2, "output": 10, "cache_read": 2 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 3, "output": 15, "cache_read": 0.75 } + }, + "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, + "limit": { "context": 2000000, "output": 30000 }, + "cost": { "input": 0.2, "output": 0.5, "cache_read": 0.05 } + } + } + }, + "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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0.09, "output": 0.6 } + }, + "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, + "limit": { "context": 1000000, "output": 65536 }, + "cost": { "input": 0.4, "output": 2.4, "reasoning": 2.4 } + }, + "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, + "limit": { "context": 16384, "output": 16384 }, + "cost": { "input": 0.2, "output": 0.6 } + }, + "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, + "limit": { "context": 202752, "output": 131072 }, + "cost": { "input": 0.2, "output": 0.8 } + }, + "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, + "limit": { "context": 202752, "output": 131072 }, + "cost": { "input": 0.8, "output": 2.56 } + }, + "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, + "limit": { "context": 202752, "output": 131072 }, + "cost": { "input": 0.45, "output": 1.9 } + }, + "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, + "limit": { "context": 32768, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 131072, "output": 65536 }, + "cost": { "input": 0.02, "output": 0.04 } + }, + "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, + "limit": { "context": 262144, "output": 32000 }, + "cost": { "input": 0.1, "output": 0.3 } + }, + "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, + "limit": { "context": 131072, "output": 16384 }, + "cost": { "input": 0.1, "output": 0.3 } + }, + "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, + "limit": { "context": 164000, "output": 164000 }, + "cost": { "input": 0.27, "output": 1 } + }, + "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, + "limit": { "context": 163840, "output": 163840 }, + "cost": { "input": 0.25, "output": 0.88 } + }, + "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, + "limit": { "context": 164000, "output": 164000 }, + "cost": { "input": 0.27, "output": 0.4 } + }, + "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, + "limit": { "context": 163840, "output": 64000 }, + "cost": { "input": 0.5, "output": 2.15 } + }, + "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, + "limit": { "context": 164000, "output": 164000 }, + "cost": { "input": 0.26, "output": 0.38 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.6, "output": 2.6 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.45, "output": 2.8 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0.3, "output": 1.2 } + }, + "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, + "limit": { "context": 196608, "output": 131072 }, + "cost": { "input": 0.28, "output": 1.2 } + } + } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 1, + "output": 5, + "cache_read": 0.1, + "cache_write": 1.25 + } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "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 + }, + "tiers": [ + { + "input": 6, + "output": 22.5, + "cache_read": 0.6, + "cache_write": 7.5, + "tier": { "type": "context", "size": 200000 } + } + ] + } + }, + "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, + "limit": { "context": 200000, "output": 8192 }, + "cost": { + "input": 0.8, + "output": 4, + "cache_read": 0.08, + "cache_write": 1 + } + }, + "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, + "limit": { "context": 200000, "output": 8192 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 200000, "output": 32000 }, + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 200000, "output": 32000 }, + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "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 + }, + "tiers": [ + { + "input": 10, + "output": 37.5, + "cache_read": 1, + "cache_write": 12.5, + "tier": { "type": "context", "size": 200000 } + } + ] + } + }, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "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 + }, + "tiers": [ + { + "input": 10, + "output": 37.5, + "cache_read": 1, + "cache_write": 12.5, + "tier": { "type": "context", "size": 200000 } + } + ] + } + } + } + }, + "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, + "limit": { "context": 100000, "output": 100000 }, + "cost": { "input": 0.24, "output": 0.94 } + }, + "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, + "limit": { "context": 40960, "output": 40960 }, + "cost": { "input": 0.12, "output": 0.12 } + }, + "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, + "limit": { "context": 64000, "output": 64000 }, + "cost": { "input": 0.35, "output": 1.42 } + }, + "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, + "limit": { "context": 32768, "output": 32768 }, + "cost": { "input": 0.12, "output": 0.47 } + }, + "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, + "limit": { "context": 32000, "output": 32000 }, + "cost": { "input": 0.00236, "output": 0.00236, "output_audio": 2.36 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.59, "output": 2.36 } + }, + "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, + "limit": { "context": 32000, "output": 32000 }, + "cost": { "input": 0.24, "output": 0.47 } + }, + "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, + "limit": { "context": 448, "output": 448 }, + "cost": { "input": 0.00236, "output": 0.00236, "output_audio": 2.36 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 1.18, "output": 1.18 } + }, + "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, + "limit": { "context": 448, "output": 4096 }, + "cost": { "input": 0.00236, "output": 0.00236, "output_audio": 2.36 } + }, + "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, + "limit": { "context": 65536, "output": 65536 }, + "cost": { "input": 0.24, "output": 0.94 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 1.47, "output": 5.9 } + }, + "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, + "limit": { "context": 512, "output": 512 }, + "cost": { "input": 0.12, "output": 0.12 } + } + } + }, + "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, + "limit": { "context": 128000, "output": 32768 }, + "cost": { "input": 3, "output": 3 } + }, + "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, + "limit": { "context": 328000, "output": 4096 }, + "cost": { "input": 0.15, "output": 0.6 } + }, + "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, + "limit": { "context": 128000, "output": 32768 }, + "cost": { "input": 0.9, "output": 0.9 } + }, + "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, + "limit": { "context": 128000, "output": 32768 }, + "cost": { "input": 0.2, "output": 0.2 } + }, + "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, + "limit": { "context": 128000, "output": 32768 }, + "cost": { "input": 0.9, "output": 0.9 } + }, + "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, + "limit": { "context": 524000, "output": 4096 }, + "cost": { "input": 0.22, "output": 0.88 } + }, + "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, + "limit": { "context": 196608, "output": 131000 }, + "cost": { "input": 0.55, "output": 2.19 } + }, + "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, + "limit": { "context": 191488, "output": 65536 }, + "cost": { "input": 0.6, "output": 3, "cache_read": 0.6 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0.55, "output": 2.19 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "status": "beta", + "cost": { "input": 0.6, "output": 3, "cache_read": 0.6 } + }, + "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, + "limit": { "context": 32768, "output": 32768 }, + "cost": { "input": 0.8, "output": 0.8 } + }, + "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, + "limit": { "context": 256000, "output": 32000 }, + "cost": { "input": 0.2, "output": 0.6 } + }, + "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, + "limit": { "context": 256000, "output": 32000 }, + "cost": { "input": 0.65, "output": 3 } + }, + "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, + "limit": { "context": 256000, "output": 32000 }, + "cost": { "input": 2, "output": 2 } + }, + "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, + "limit": { "context": 128000, "output": 128000 }, + "cost": { "input": 0.56, "output": 1.68 } + }, + "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, + "limit": { "context": 128000, "output": 128000 }, + "cost": { "input": 1.2, "output": 1.2 } + }, + "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, + "limit": { "context": 128000, "output": 128000 }, + "cost": { "input": 1.25, "output": 1.25 } + }, + "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, + "limit": { "context": 128000, "output": 128000 }, + "cost": { "input": 0.55, "output": 2.19 } + }, + "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, + "limit": { "context": 128000, "output": 128000 }, + "cost": { "input": 3, "output": 8 } + }, + "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, + "limit": { "context": 162816, "input": 162816, "output": 8000 }, + "cost": { + "input": 0.27, + "output": 0.4, + "cache_read": 0.27, + "cache_write": 0 + } + }, + "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, + "limit": { "context": 128000, "output": 128000 }, + "cost": { "input": 1.2, "output": 1.2 } + }, + "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, + "limit": { "context": 128000, "output": 32768 }, + "cost": { "input": 0.1, "output": 0.1 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.55, "output": 2.19 } + }, + "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, + "limit": { "context": 262144, "output": 32768 }, + "cost": { "input": 1.2, "output": 1.2 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.55, "output": 2.19 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.3, "output": 1, "cache_read": 0.3 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.55, "output": 2.19 } + }, + "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, + "limit": { "context": 196608, "output": 65536 }, + "cost": { "input": 0.06, "output": 0.4, "cache_read": 0.06 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { "input": 0.55, "output": 2.19 } + }, + "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, + "limit": { "context": 196608, "output": 65536 }, + "cost": { "input": 1, "output": 3, "cache_read": 1 } + }, + "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, + "limit": { "context": 196608, "output": 65536 }, + "cost": { "input": 1, "output": 3, "cache_read": 1 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { "input": 0.55, "output": 2.19 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.95, "output": 4, "cache_read": 0.95 } + } + } + }, + "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": { + "upstage/solar-10_7b-instruct": { + "id": "upstage/solar-10_7b-instruct", + "name": "solar-10.7b-instruct", + "attachment": false, + "reasoning": false, + "tool_call": true, + "temperature": true, + "release_date": "2024-06-05", + "last_updated": "2025-04-10", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 40960, "output": 40960 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 4096, "output": 0 }, + "cost": { "input": 0, "output": 0 } + }, + "black-forest-labs/flux_1-schnell": { + "id": "black-forest-labs/flux_1-schnell", + "name": "FLUX.1-schnell", + "attachment": false, + "reasoning": false, + "tool_call": false, + "structured_output": false, + "temperature": false, + "knowledge": "2024-07", + "release_date": "2024-08-01", + "last_updated": "2026-02-04", + "modalities": { "input": ["text"], "output": ["image"] }, + "open_weights": true, + "limit": { "context": 77, "input": 77, "output": 0 }, + "cost": { "input": 0, "output": 0 } + }, + "black-forest-labs/flux_1-kontext-dev": { + "id": "black-forest-labs/flux_1-kontext-dev", + "name": "FLUX.1-Kontext-dev", + "attachment": true, + "reasoning": false, + "tool_call": false, + "temperature": false, + "release_date": "2025-08-12", + "last_updated": "2025-08-12", + "modalities": { "input": ["text", "image"], "output": ["image"] }, + "open_weights": true, + "limit": { "context": 40960, "output": 40960 }, + "cost": { "input": 0, "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, + "limit": { "context": 256000, "output": 16384 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0, "output": 0 } + }, + "mistralai/mistral-nemotron": { + "id": "mistralai/mistral-nemotron", + "name": "mistral-nemotron", + "attachment": false, + "reasoning": false, + "tool_call": true, + "temperature": true, + "release_date": "2025-06-11", + "last_updated": "2025-06-12", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 65536, "output": 13108 }, + "cost": { "input": 0, "output": 0 } + }, + "mistralai/mistral-medium-3-instruct": { + "id": "mistralai/mistral-medium-3-instruct", + "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, + "limit": { "context": 131072, "input": 131072, "output": 32768 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 32768, "output": 16384 }, + "cost": { "input": 0, "output": 0 } + }, + "mistralai/magistral-small-2506": { + "id": "mistralai/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, + "limit": { "context": 32768, "input": 32768, "output": 32768 }, + "cost": { "input": 0, "output": 0 } + }, + "mistralai/mistral-7b-instruct-v03": { + "id": "mistralai/mistral-7b-instruct-v03", + "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, + "limit": { "context": 65536, "output": 65536 }, + "cost": { "input": 0, "output": 0 } + }, + "mistralai/mistral-small-4-119b-2603": { + "id": "mistralai/mistral-small-4-119b-2603", + "name": "mistral-small-4-119b-2603", + "attachment": false, + "reasoning": false, + "tool_call": true, + "temperature": true, + "release_date": "2026-03-16", + "last_updated": "2026-03-16", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + }, + "sarvamai/sarvam-m": { + "id": "sarvamai/sarvam-m", + "name": "sarvam-m", + "attachment": false, + "reasoning": false, + "tool_call": true, + "temperature": true, + "release_date": "2025-07-25", + "last_updated": "2025-07-25", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + }, + "microsoft/phi-4-multimodal-instruct": { + "id": "microsoft/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, + "limit": { "context": 128000, "input": 128000, "output": 16384 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 256000, "output": 65536 }, + "cost": { "input": 0, "output": 0 } + }, + "nvidia/usdvalidate": { + "id": "nvidia/usdvalidate", + "name": "usdvalidate", + "attachment": false, + "reasoning": false, + "tool_call": false, + "temperature": false, + "release_date": "2024-07-24", + "last_updated": "2025-01-08", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 0, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "nvidia/synthetic-video-detector": { + "id": "nvidia/synthetic-video-detector", + "name": "synthetic-video-detector", + "attachment": true, + "reasoning": false, + "tool_call": false, + "temperature": true, + "release_date": "2026-04-16", + "last_updated": "2026-04-16", + "modalities": { "input": ["video"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 0, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "nvidia/cosmos-transfer1-7b": { + "id": "nvidia/cosmos-transfer1-7b", + "name": "cosmos-transfer1-7b", + "attachment": true, + "reasoning": false, + "tool_call": false, + "temperature": false, + "release_date": "2025-06-13", + "last_updated": "2025-06-30", + "modalities": { + "input": ["text", "image", "video"], + "output": ["video"] + }, + "open_weights": true, + "limit": { "context": 0, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "nvidia/rerank-qa-mistral-4b": { + "id": "nvidia/rerank-qa-mistral-4b", + "name": "rerank-qa-mistral-4b", + "attachment": false, + "reasoning": false, + "tool_call": false, + "temperature": false, + "release_date": "2024-03-17", + "last_updated": "2025-01-17", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "nvidia/nv-embedcode-7b-v1": { + "id": "nvidia/nv-embedcode-7b-v1", + "name": "nv-embedcode-7b-v1", + "attachment": false, + "reasoning": false, + "tool_call": false, + "temperature": false, + "release_date": "2025-03-17", + "last_updated": "2025-05-29", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 32768, "output": 2048 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.2, "output": 0.8 } + }, + "nvidia/riva-translate-4b-instruct-v1_1": { + "id": "nvidia/riva-translate-4b-instruct-v1_1", + "name": "riva-translate-4b-instruct-v1_1", + "attachment": false, + "reasoning": false, + "tool_call": false, + "temperature": false, + "release_date": "2025-12-12", + "last_updated": "2025-12-12", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "nvidia/nemotron-voicechat": { + "id": "nvidia/nemotron-voicechat", + "name": "nemotron-voicechat", + "attachment": true, + "reasoning": false, + "tool_call": true, + "temperature": true, + "release_date": "2026-03-16", + "last_updated": "2026-03-16", + "modalities": { "input": ["text", "audio"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + }, + "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", + "family": "nemotron", + "attachment": false, + "reasoning": true, + "tool_call": true, + "temperature": true, + "knowledge": "2023-12", + "release_date": "2025-07-25", + "last_updated": "2025-07-25", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0, "output": 0 } + }, + "nvidia/usdcode": { + "id": "nvidia/usdcode", + "name": "usdcode", + "attachment": false, + "reasoning": false, + "tool_call": false, + "temperature": true, + "release_date": "2026-01-01", + "last_updated": "2026-01-01", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": false, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "nvidia/llama-3_2-nemoretriever-300m-embed-v1": { + "id": "nvidia/llama-3_2-nemoretriever-300m-embed-v1", + "name": "llama-3_2-nemoretriever-300m-embed-v1", + "attachment": false, + "reasoning": false, + "tool_call": false, + "temperature": false, + "release_date": "2025-07-24", + "last_updated": "2025-07-24", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 32768, "output": 2048 }, + "cost": { "input": 0, "output": 0 } + }, + "nvidia/llama-3_1-nemotron-safety-guard-8b-v3": { + "id": "nvidia/llama-3_1-nemotron-safety-guard-8b-v3", + "name": "llama-3.1-nemotron-safety-guard-8b-v3", + "attachment": false, + "reasoning": false, + "tool_call": false, + "temperature": false, + "release_date": "2025-10-28", + "last_updated": "2025-10-28", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "nvidia/nv-embed-v1": { + "id": "nvidia/nv-embed-v1", + "name": "nv-embed-v1", + "attachment": false, + "reasoning": false, + "tool_call": false, + "temperature": false, + "release_date": "2024-06-07", + "last_updated": "2025-07-22", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 32768, "output": 2048 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0, "output": 0 } + }, + "nvidia/gliner-pii": { + "id": "nvidia/gliner-pii", + "name": "gliner-pii", + "attachment": false, + "reasoning": false, + "tool_call": false, + "temperature": true, + "release_date": "2026-03-03", + "last_updated": "2026-03-03", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "nvidia/bevformer": { + "id": "nvidia/bevformer", + "name": "bevformer", + "attachment": true, + "reasoning": false, + "tool_call": false, + "temperature": true, + "release_date": "2025-03-18", + "last_updated": "2025-07-20", + "modalities": { "input": ["video"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + }, + "nvidia/nemotron-mini-4b-instruct": { + "id": "nvidia/nemotron-mini-4b-instruct", + "name": "nemotron-mini-4b-instruct", + "attachment": false, + "reasoning": false, + "tool_call": true, + "temperature": true, + "release_date": "2024-08-21", + "last_updated": "2024-08-26", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + }, + "nvidia/cosmos-predict1-5b": { + "id": "nvidia/cosmos-predict1-5b", + "name": "cosmos-predict1-5b", + "attachment": true, + "reasoning": false, + "tool_call": false, + "temperature": false, + "release_date": "2025-03-18", + "last_updated": "2025-03-18", + "modalities": { + "input": ["text", "image", "video"], + "output": ["video"] + }, + "open_weights": true, + "limit": { "context": 0, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "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", + "family": "nemotron", + "attachment": false, + "reasoning": true, + "tool_call": true, + "temperature": true, + "knowledge": "2023-12", + "release_date": "2025-04-07", + "last_updated": "2025-04-07", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0, "output": 0 } + }, + "nvidia/cosmos-transfer2_5-2b": { + "id": "nvidia/cosmos-transfer2_5-2b", + "name": "cosmos-transfer2.5-2b", + "attachment": true, + "reasoning": false, + "tool_call": false, + "temperature": false, + "release_date": "2026-02-26", + "last_updated": "2026-02-26", + "modalities": { + "input": ["text", "image", "video"], + "output": ["video"] + }, + "open_weights": true, + "limit": { "context": 0, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "nvidia/nemotron-content-safety-reasoning-4b": { + "id": "nvidia/nemotron-content-safety-reasoning-4b", + "name": "nemotron-content-safety-reasoning-4b", + "attachment": false, + "reasoning": true, + "tool_call": false, + "temperature": false, + "release_date": "2026-01-22", + "last_updated": "2026-01-22", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "nvidia/active-speaker-detection": { + "id": "nvidia/active-speaker-detection", + "name": "Active Speaker Detection", + "attachment": true, + "reasoning": false, + "tool_call": false, + "temperature": false, + "release_date": "2026-04-16", + "last_updated": "2026-04-16", + "modalities": { "input": ["video"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 0, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "nvidia/magpie-tts-zeroshot": { + "id": "nvidia/magpie-tts-zeroshot", + "name": "magpie-tts-zeroshot", + "attachment": true, + "reasoning": false, + "tool_call": false, + "temperature": false, + "release_date": "2025-05-22", + "last_updated": "2025-06-12", + "modalities": { "input": ["text", "audio"], "output": ["audio"] }, + "open_weights": true, + "limit": { "context": 0, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "nvidia/streampetr": { + "id": "nvidia/streampetr", + "name": "streampetr", + "attachment": true, + "reasoning": false, + "tool_call": false, + "temperature": true, + "release_date": "2025-11-13", + "last_updated": "2025-11-13", + "modalities": { "input": ["video"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + }, + "nvidia/sparsedrive": { + "id": "nvidia/sparsedrive", + "name": "sparsedrive", + "attachment": true, + "reasoning": false, + "tool_call": false, + "temperature": true, + "release_date": "2025-03-18", + "last_updated": "2025-07-20", + "modalities": { "input": ["video"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + }, + "nvidia/nemotron-3-content-safety": { + "id": "nvidia/nemotron-3-content-safety", + "name": "nemotron-3-content-safety", + "attachment": false, + "reasoning": false, + "tool_call": false, + "temperature": false, + "release_date": "2026-04-16", + "last_updated": "2026-04-16", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "nvidia/llama-nemotron-embed-vl-1b-v2": { + "id": "nvidia/llama-nemotron-embed-vl-1b-v2", + "name": "llama-nemotron-embed-vl-1b-v2", + "attachment": true, + "reasoning": false, + "tool_call": false, + "temperature": false, + "release_date": "2026-02-10", + "last_updated": "2026-02-10", + "modalities": { "input": ["text", "image"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 32768, "output": 2048 }, + "cost": { "input": 0, "output": 0 } + }, + "nvidia/studiovoice": { + "id": "nvidia/studiovoice", + "name": "studiovoice", + "attachment": false, + "reasoning": false, + "tool_call": false, + "temperature": true, + "release_date": "2024-10-03", + "last_updated": "2025-06-13", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + }, + "nvidia/llama-nemotron-rerank-vl-1b-v2": { + "id": "nvidia/llama-nemotron-rerank-vl-1b-v2", + "name": "llama-nemotron-rerank-vl-1b-v2", + "attachment": true, + "reasoning": false, + "tool_call": false, + "temperature": false, + "release_date": "2026-03-31", + "last_updated": "2026-03-31", + "modalities": { "input": ["text", "image"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 163840, "output": 65536 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 0, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0, "output": 0 } + }, + "meta/esm2-650m": { + "id": "meta/esm2-650m", + "name": "esm2-650m", + "attachment": false, + "reasoning": false, + "tool_call": false, + "temperature": true, + "release_date": "2024-08-29", + "last_updated": "2025-03-10", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "meta/esmfold": { + "id": "meta/esmfold", + "name": "esmfold", + "attachment": false, + "reasoning": false, + "tool_call": false, + "temperature": true, + "release_date": "2024-03-15", + "last_updated": "2025-06-12", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + }, + "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": 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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "meta/llama-guard-4-12b": { + "id": "meta/llama-guard-4-12b", + "name": "Llama Guard 4 12B", + "family": "llama", + "attachment": true, + "reasoning": false, + "tool_call": false, + "temperature": true, + "release_date": "2025-04-05", + "last_updated": "2026-04-30", + "modalities": { "input": ["text", "image"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "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": false, + "structured_output": true, + "temperature": true, + "release_date": "2024-09-18", + "last_updated": "2024-09-18", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 32768, "output": 32000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 16000, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "qwen/qwen-image-edit": { + "id": "qwen/qwen-image-edit", + "name": "Qwen Image Edit", + "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": ["image"] }, + "open_weights": false, + "limit": { "context": 0, "output": 0 }, + "cost": { "input": 0, "output": 0 } + }, + "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-23", + "last_updated": "2026-02-23", + "modalities": { + "input": ["text", "image", "video", "audio"], + "output": ["text"] + }, + "open_weights": true, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 262144, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 262144, "output": 16384 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 262144, "output": 16384 }, + "cost": { "input": 0, "output": 0 } + }, + "qwen/qwen-image": { + "id": "qwen/qwen-image", + "name": "Qwen Image", + "family": "qwen", + "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 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 262144, "output": 66536 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 256000, "output": 16384 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + }, + "google/google-paligemma": { + "id": "google/google-paligemma", + "name": "paligemma", + "attachment": true, + "reasoning": false, + "tool_call": false, + "temperature": true, + "release_date": "2024-05-14", + "last_updated": "2024-08-26", + "modalities": { "input": ["text", "image"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + }, + "abacusai/dracarys-llama-3_1-70b-instruct": { + "id": "abacusai/dracarys-llama-3_1-70b-instruct", + "name": "dracarys-llama-3.1-70b-instruct", + "attachment": false, + "reasoning": false, + "tool_call": true, + "temperature": true, + "release_date": "2024-09-11", + "last_updated": "2025-05-22", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + }, + "baai/bge-m3": { + "id": "baai/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, + "limit": { "context": 8192, "output": 1024 }, + "cost": { "input": 0, "output": 0 } + }, + "bytedance/seed-oss-36b-instruct": { + "id": "bytedance/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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 1048576, "output": 393216 }, + "cost": { "input": 0.14, "output": 0.28, "cache_read": 0.028 } + }, + "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, + "limit": { "context": 1048576, "output": 393216 }, + "cost": { "input": 1.74, "output": 3.48, "cache_read": 0.145 } + } + } + }, + "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, + "limit": { "context": 16000, "output": 4096 }, + "cost": { "input": 0.038, "output": 0.1 } + }, + "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, + "limit": { "context": 16000, "output": 4096 }, + "cost": { "input": 0.055, "output": 0.055 } + }, + "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, + "limit": { "context": 16000, "output": 4096 }, + "cost": { "input": 0.01, "output": 0.01 } + }, + "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, + "limit": { "context": 16000, "output": 4096 }, + "cost": { "input": 0.02, "output": 0.02 } + }, + "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, + "limit": { "context": 16000, "output": 4096 }, + "cost": { "input": 0.025, "output": 0.025 } + }, + "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, + "limit": { "context": 125000, "output": 4096 }, + "cost": { "input": 0.2, "output": 0.2 } + }, + "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, + "limit": { "context": 32000, "output": 2048 }, + "cost": { "input": 0.01, "output": 0 } + }, + "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, + "limit": { "context": 125000, "output": 4096 }, + "cost": { "input": 0.15, "output": 0.3 } + }, + "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, + "limit": { "context": 4000, "output": 2048 }, + "cost": { "input": 0.1, "output": 0.5 } + } + } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0.25, "output": 0.75, "cache_read": 0.025 } + }, + "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, + "limit": { "context": 128000, "output": 50000 }, + "cost": { "input": 0.25, "output": 0.75, "cache_read": 0.025 } + } + } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.125 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 5, "output": 15 } + }, + "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, + "limit": { "context": 128000, "output": 65536 }, + "cost": { "input": 1.1, "output": 4.4, "cache_read": 0.55 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 21, "output": 168 } + }, + "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, + "limit": { "context": 8191, "output": 3072 }, + "cost": { "input": 0.13, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 1.75, "output": 14, "cache_read": 0.175 } + }, + "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, + "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" } } + } + } + }, + "cost": { + "input": 5, + "output": 30, + "cache_read": 0.5, + "tiers": [ + { + "input": 10, + "output": 45, + "cache_read": 1, + "tier": { "type": "context", "size": 272000 } + } + ], + "context_over_200k": { "input": 10, "output": 45, "cache_read": 1 } + } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 0.25, "output": 2, "cache_read": 0.025 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 0.05, "output": 0.4, "cache_read": 0.005 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 1.75, "output": 14, "cache_read": 0.175 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 10, "output": 30 } + }, + "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, + "limit": { "context": 8192, "output": 1536 }, + "cost": { "input": 0.1, "output": 0 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 1.75, "output": 14, "cache_read": 0.175 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 20, "output": 80 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.15, "output": 0.6, "cache_read": 0.08 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 2, "output": 8, "cache_read": 0.5 } + }, + "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, + "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" } } + } + } + }, + "cost": { "input": 0.75, "output": 4.5, "cache_read": 0.075 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 1.1, "output": 4.4, "cache_read": 0.28 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 0.2, "output": 1.25, "cache_read": 0.02 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 1.75, "output": 14, "cache_read": 0.175 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 1.75, "output": 14, "cache_read": 0.175 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 0.25, "output": 2, "cache_read": 0.025 } + }, + "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, + "limit": { "context": 128000, "output": 32768 }, + "cost": { "input": 15, "output": 60, "cache_read": 7.5 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 2.5, "output": 10, "cache_read": 1.25 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.13 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 15, "output": 60, "cache_read": 7.5 } + }, + "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, + "limit": { "context": 1050000, "input": 922000, "output": 128000 }, + "cost": { + "input": 30, + "output": 180, + "tiers": [ + { + "input": 60, + "output": 270, + "tier": { "type": "context", "size": 272000 } + } + ], + "context_over_200k": { "input": 60, "output": 270 } + } + }, + "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, + "limit": { "context": 16385, "output": 4096 }, + "cost": { "input": 0.5, "output": 1.5, "cache_read": 1.25 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 10, "output": 40, "cache_read": 2.5 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 1.1, "output": 4.4, "cache_read": 0.55 } + }, + "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, + "limit": { "context": 8191, "output": 1536 }, + "cost": { "input": 0.02, "output": 0 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 150, "output": 600 } + }, + "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, + "limit": { "context": 8192, "output": 8192 }, + "cost": { "input": 30, "output": 60 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.125 } + }, + "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, + "limit": { "context": 1050000, "input": 922000, "output": 128000 }, + "experimental": { + "modes": { + "fast": { + "cost": { "input": 5, "output": 30, "cache_read": 0.5 }, + "provider": { "body": { "service_tier": "priority" } } + } + } + }, + "cost": { + "input": 2.5, + "output": 15, + "cache_read": 0.25, + "tiers": [ + { + "input": 5, + "output": 22.5, + "cache_read": 0.5, + "tier": { "type": "context", "size": 272000 } + } + ], + "context_over_200k": { "input": 5, "output": 22.5, "cache_read": 0.5 } + } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.125 } + }, + "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, + "limit": { "context": 128000, "input": 100000, "output": 32000 }, + "cost": { "input": 1.75, "output": 14, "cache_read": 0.175 } + }, + "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, + "limit": { "context": 1047576, "output": 32768 }, + "cost": { "input": 0.1, "output": 0.4, "cache_read": 0.03 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 2, "output": 8, "cache_read": 0.5 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 272000 }, + "cost": { "input": 15, "output": 120 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 2.5, "output": 10, "cache_read": 1.25 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.125 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10 } + }, + "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, + "limit": { "context": 1050000, "input": 922000, "output": 128000 }, + "cost": { + "input": 30, + "output": 180, + "tiers": [ + { + "input": 60, + "output": 270, + "tier": { "type": "context", "size": 272000 } + } + ], + "context_over_200k": { "input": 60, "output": 270 } + } + }, + "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, + "limit": { "context": 1047576, "output": 32768 }, + "cost": { "input": 2, "output": 8, "cache_read": 0.5 } + }, + "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, + "limit": { "context": 1047576, "output": 32768 }, + "cost": { "input": 0.4, "output": 1.6, "cache_read": 0.1 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.125 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 2.5, "output": 10, "cache_read": 1.25 } + } + } + }, + "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, + "limit": { "context": 2000000, "output": 64000 }, + "cost": { + "input": 0.2, + "output": 0.5, + "cache_read": 0.05, + "cache_write": 0.2 + } + }, + "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, + "limit": { "context": 256000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.75, + "cache_write": 3 + } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.1, "output": 9, "cache_read": 0.11 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 21, "output": 168 } + }, + "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, + "limit": { "context": 128000, "output": 32000 }, + "cost": { "input": 0.25, "output": 2, "cache_read": 0.03 } + }, + "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, + "limit": { "context": 16000, "output": 4000 }, + "cost": { "input": 0.05, "output": 0.4, "cache_read": 0.01 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.75, "output": 14, "cache_read": 0.175 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.15, "output": 0.6, "cache_read": 0.08 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.125 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 1.1, "output": 4.4, "cache_read": 0.28 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.75, "output": 14, "cache_read": 0.175 } + }, + "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, + "limit": { "context": 400000, "output": 100000 }, + "cost": { "input": 0.25, "output": 2, "cache_read": 0.025 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 5, "output": 10, "cache_read": 1.25 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.125 } + }, + "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, + "limit": { "context": 1050000, "input": 922000, "output": 128000 }, + "cost": { "input": 30, "output": 180, "cache_read": 30 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.125 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.13 } + }, + "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, + "limit": { "context": 1047576, "output": 32768 }, + "cost": { "input": 0.4, "output": 1.6, "cache_read": 0.1 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.125 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 0.5, + "output": 3, + "cache_read": 0.05, + "cache_write": 1 + } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 2, + "output": 12, + "cache_read": 0.2, + "cache_write": 4.5 + } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 0.3, + "output": 2.5, + "cache_read": 0.075, + "cache_write": 0.55 + } + }, + "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, + "limit": { "context": 200000, "output": 62000 }, + "cost": { + "input": 1, + "output": 5, + "cache_read": 0.1, + "cache_write": 1.25 + } + }, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75, + "tiers": [ + { + "input": 6, + "output": 22.5, + "cache_read": 0.6, + "cache_write": 7.5, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { + "input": 6, + "output": 22.5, + "cache_read": 0.6, + "cache_write": 7.5 + } + } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } + }, + "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, + "limit": { "context": 200000, "output": 32000 }, + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25, + "tiers": [ + { + "input": 10, + "output": 37.5, + "cache_read": 1, + "cache_write": 12.5, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { + "input": 10, + "output": 37.5, + "cache_read": 1, + "cache_write": 12.5 + } + } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 1.75, "output": 14, "cache_read": 0.175 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.75, "output": 14, "cache_read": 0.175 } + }, + "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, + "limit": { "context": 1050000, "input": 922000, "output": 128000 }, + "cost": { + "input": 2.5, + "output": 15, + "cache_read": 0.25, + "context_over_200k": { + "input": 5, + "output": 22.5, + "cache_read": 0.5 + }, + "tiers": [ + { + "input": 5, + "output": 22.5, + "cache_read": 0.5, + "tier": { "type": "context", "size": 272000 } + } + ] + } + }, + "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, + "limit": { "context": 400000, "output": 272000 }, + "cost": { "input": 15, "output": 120 } + }, + "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, + "limit": { "context": 1047576, "output": 32768 }, + "cost": { "input": 2, "output": 8, "cache_read": 0.5 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "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 + }, + "tiers": [ + { + "input": 2.5, + "output": 15, + "cache_read": 0.25, + "tier": { "type": "context", "size": 200000 } + } + ] + } + }, + "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, + "limit": { "context": 200000, "output": 32000 }, + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 1000000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + } + } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.15, "output": 0.6, "cache_read": 0.075 } + }, + "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, + "limit": { "context": 512, "output": 768 }, + "cost": { "input": 0.009, "output": 0 } + }, + "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, + "limit": { "context": 262144, "output": 32768 }, + "cost": { "input": 0.5, "output": 2.7 } + }, + "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, + "limit": { "context": 65536, "output": 65536 }, + "cost": { "input": 0.5, "output": 0.9 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.198, "output": 0.198 } + }, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } + }, + "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, + "limit": { "context": 1000000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75, + "tiers": [ + { + "input": 6, + "output": 22.5, + "cache_read": 0.3, + "cache_write": 3.75, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { + "input": 6, + "output": 22.5, + "cache_read": 0.3, + "cache_write": 3.75 + } + } + }, + "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, + "limit": { "context": 100, "output": 1 }, + "cost": { "input": 0.6, "output": 0 } + }, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "cost": { "input": 2.5, "output": 15, "cache_read": 0.25 } + }, + "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, + "limit": { "context": 262144, "output": 81920 }, + "cost": { "input": 0.55, "output": 3.5 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 2, "output": 8, "cache_read": 0.5 } + }, + "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, + "limit": { "context": 512, "output": 1024 }, + "cost": { "input": 0.02, "output": 0 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 21, "output": 168 } + }, + "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, + "limit": { "context": 202752, "output": 128000 }, + "cost": { "input": 1, "output": 3.2 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 0.2, "output": 1.25, "cache_read": 0.02 } + }, + "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, + "limit": { "context": 128000, "output": 128000 }, + "cost": { "input": 0.65, "output": 0.65 } + }, + "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, + "limit": { "context": 262144, "output": 128000 }, + "cost": { "input": 0.2, "output": 0.2 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.99, "output": 0.99 } + }, + "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, + "limit": { "context": 131000, "output": 40960 }, + "cost": { "input": 0.25, "output": 0.55 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 15, "output": 60, "cache_read": 7.5 } + }, + "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, + "limit": { "context": 200000, "output": 4096 }, + "status": "deprecated", + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + "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, + "limit": { "context": 256, "output": 1 }, + "cost": { "input": 0.08, "output": 0 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 0.05, "output": 0.4, "cache_read": 0.005 } + }, + "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, + "limit": { "context": 1000000, "output": 16384 }, + "cost": { "input": 0.25, "output": 0.87 } + }, + "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, + "limit": { "context": 1000000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75, + "tiers": [ + { + "input": 6, + "output": 22.5, + "cache_read": 0.3, + "cache_write": 3.75, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { + "input": 6, + "output": 22.5, + "cache_read": 0.3, + "cache_write": 3.75 + } + } + }, + "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, + "limit": { "context": 8000, "output": 1024 }, + "status": "beta", + "cost": { "input": 0.04, "output": 0 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 1, + "output": 5, + "cache_read": 1, + "cache_write": 1.25 + } + }, + "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, + "limit": { "context": 8192, "output": 1024 }, + "cost": { "input": 0.09, "output": 0 } + }, + "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, + "limit": { "context": 1047576, "output": 32768 }, + "cost": { "input": 2, "output": 8, "cache_read": 0.5 } + }, + "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, + "limit": { "context": 200000, "output": 8192 }, + "status": "deprecated", + "cost": { + "input": 0.8, + "output": 4, + "cache_read": 0.08, + "cache_write": 1 + } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.75, "output": 14, "cache_read": 0.175 } + }, + "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, + "limit": { "context": 128000, "output": 64000 }, + "cost": { "input": 0.5, "output": 1.6 } + }, + "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, + "limit": { "context": 200000, "output": 32000 }, + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.05, "output": 0.45 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.45, "output": 1.7 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 1.1, "output": 4.4, "cache_read": 0.55 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.1, "output": 0.7 } + }, + "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, + "limit": { "context": 256000, "output": 8192 }, + "cost": { "input": 0.18, "output": 0.5 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.2, "output": 0.6 } + }, + "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, + "limit": { "context": 200000, "output": 32000 }, + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.95, "output": 4 } + }, + "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, + "limit": { "context": 1000000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75, + "tiers": [ + { + "input": 6, + "output": 22.5, + "cache_read": 0.3, + "cache_write": 3.75, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { + "input": 6, + "output": 22.5, + "cache_read": 0.3, + "cache_write": 3.75 + } + } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 0.25, "output": 2, "cache_read": 0.025 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 1, + "output": 5, + "cache_read": 1, + "cache_write": 1.25 + } + }, + "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, + "limit": { "context": 1048576, "output": 393216 }, + "cost": { "input": 1.74, "output": 3.48 } + }, + "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, + "limit": { "context": 204800, "output": 128000 }, + "status": "beta", + "cost": { "input": 0.3, "output": 1.2 } + }, + "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, + "limit": { "context": 0, "output": 0 }, + "cost": { "input": 5, "output": 40, "cache_read": 1.25 } + }, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "cost": { + "input": 5, + "output": 30, + "cache_read": 0.5, + "tiers": [ + { + "input": 10, + "output": 45, + "cache_read": 1, + "tier": { "type": "context", "size": 272000 } + } + ], + "context_over_200k": { "input": 10, "output": 45, "cache_read": 1 } + } + }, + "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, + "limit": { "context": 256000, "output": 32768 }, + "status": "beta", + "cost": { "input": 0.3, "output": 0.65 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 30, "output": 180 } + }, + "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, + "limit": { "context": 256, "output": 384 }, + "cost": { "input": 0.009, "output": 0 } + }, + "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, + "limit": { "context": 8192, "output": 1024 }, + "cost": { "input": 0.02, "output": 0 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.125 } + }, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25, + "tiers": [ + { + "input": 10, + "output": 37.5, + "cache_read": 0.5, + "cache_write": 6.25, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { + "input": 10, + "output": 37.5, + "cache_read": 0.5, + "cache_write": 6.25 + } + } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 2.5, "output": 10, "cache_read": 1.25 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 0.75, "output": 4.5, "cache_read": 0.075 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.125 } + }, + "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, + "limit": { "context": 256000, "output": 128000 }, + "status": "beta", + "cost": { "input": 0.25, "output": 0.9, "cache_read": 0.06 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "status": "deprecated", + "cost": { "input": 0.3, "output": 0.3 } + }, + "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, + "limit": { "context": 8192, "output": 1 }, + "cost": { "input": 0.01, "output": 0 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "status": "deprecated", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 0, "output": 0 }, + "cost": { "input": 5, "output": 10, "cache_read": 1 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.75, "output": 14, "cache_read": 0.175 } + }, + "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, + "limit": { "context": 200000, "output": 8192 }, + "status": "deprecated", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 194000, "output": 4096 }, + "cost": { "input": 0.3, "output": 1.2 } + }, + "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, + "limit": { "context": 200000, "output": 131072 }, + "cost": { "input": 0.85, "output": 3.1 } + }, + "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, + "limit": { "context": 127000, "output": 4096 }, + "cost": { "input": 0.55, "output": 1.65 } + }, + "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, + "limit": { "context": 129000, "output": 4096 }, + "cost": { "input": 0.15, "output": 0.6 } + }, + "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, + "limit": { "context": 254000, "output": 32768 }, + "cost": { "input": 0.55, "output": 2.75 } + } + } + }, + "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, + "limit": { "context": 1000000, "output": 65536 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + }, + "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, + "limit": { "context": 262144, "output": 32768 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + }, + "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, + "limit": { "context": 202752, "output": 16384 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + }, + "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, + "limit": { "context": 202752, "output": 16384 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + }, + "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, + "limit": { "context": 196608, "output": 24576 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + }, + "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, + "limit": { "context": 1000000, "output": 65536 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + }, + "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, + "limit": { "context": 262144, "output": 32768 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + }, + "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, + "limit": { "context": 1000000, "output": 65536 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + } + } + }, + "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, + "limit": { "context": 256000, "output": 256000 }, + "cost": { "input": 0.15, "output": 0.6 } + }, + "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, + "limit": { "context": 128000, "output": 128000 }, + "cost": { "input": 0.15, "output": 0.15 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.5, "output": 1.5 } + }, + "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, + "limit": { "context": 256000, "output": 256000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.4, "output": 2 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 2, "output": 5 } + }, + "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, + "limit": { "context": 32000, "output": 32000 }, + "cost": { "input": 0.7, "output": 0.7 } + }, + "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, + "limit": { "context": 128000, "output": 128000 }, + "cost": { "input": 2, "output": 6 } + }, + "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, + "limit": { "context": 131072, "output": 16384 }, + "cost": { "input": 2, "output": 6 } + }, + "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, + "limit": { "context": 256000, "output": 4096 }, + "cost": { "input": 0.3, "output": 0.9 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.5, "output": 1.5 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.1, "output": 0.3 } + }, + "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, + "limit": { "context": 128000, "output": 128000 }, + "cost": { "input": 0.15, "output": 0.15 } + }, + "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, + "limit": { "context": 128000, "output": 128000 }, + "cost": { "input": 0.1, "output": 0.1 } + }, + "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, + "limit": { "context": 8000, "output": 3072 }, + "cost": { "input": 0.1, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 128000 }, + "cost": { "input": 0.5, "output": 1.5 } + }, + "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, + "limit": { "context": 256000, "output": 256000 }, + "cost": { "input": 0.15, "output": 0.6 } + }, + "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, + "limit": { "context": 128000, "output": 128000 }, + "cost": { "input": 0.04, "output": 0.04 } + }, + "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, + "limit": { "context": 64000, "output": 64000 }, + "cost": { "input": 2, "output": 6 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 1.5, "output": 7.5 } + }, + "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, + "limit": { "context": 128000, "output": 128000 }, + "cost": { "input": 0.1, "output": 0.3 } + }, + "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, + "limit": { "context": 128000, "output": 128000 }, + "cost": { "input": 0.4, "output": 2 } + }, + "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, + "limit": { "context": 8000, "output": 8000 }, + "cost": { "input": 0.25, "output": 0.25 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.4, "output": 2 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.4, "output": 2 } + }, + "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, + "limit": { "context": 128000, "output": 128000 }, + "cost": { "input": 0.1, "output": 0.3 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.4, "output": 2 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 1.5, "output": 7.5 } + } + } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.74, "output": 0.74 } + }, + "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, + "limit": { "context": 65536, "output": 65536 }, + "cost": { "input": 0.11, "output": 0.11 } + }, + "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, + "limit": { "context": 32768, "output": 32768 }, + "cost": { "input": 0.09, "output": 0.25 } + }, + "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, + "limit": { "context": 32768, "output": 32768 }, + "cost": { "input": 1.01, "output": 1.01 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.07, "output": 0.26 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.05, "output": 0.18 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.1, "output": 0.31 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.1, "output": 0.15 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.09, "output": 0.47 } + }, + "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, + "limit": { "context": 65536, "output": 65536 }, + "cost": { "input": 0.14, "output": 0.14 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.11, "output": 0.11 } + } + } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.2, "output": 0.8 } + }, + "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, + "limit": { "context": 202752, "output": 202752 }, + "cost": { "input": 1.4, "output": 4.4, "cache_read": 0.26 } + }, + "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, + "limit": { "context": 202752, "output": 202752 }, + "cost": { "input": 1, "output": 3.2, "cache_read": 0.5 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.6, "output": 0.6 } + }, + "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, + "limit": { "context": 131072, "output": 8000 }, + "cost": { "input": 0.1, "output": 0.1 } + }, + "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, + "limit": { "context": 196608, "output": 196608 }, + "cost": { "input": 0.3, "output": 1.2, "cache_read": 0.06 } + } + } + }, + "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, + "limit": { "context": 202752, "output": 196072 }, + "cost": { "input": 0.47, "output": 1.4 } + }, + "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, + "limit": { "context": 200000, "output": 200000 }, + "cost": { "input": 1.09, "output": 5.43 } + }, + "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, + "limit": { "context": 131000, "output": 131000 }, + "cost": { "input": 0.062, "output": 0.408 } + }, + "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, + "limit": { "context": 256000, "output": 256000 }, + "cost": { "input": 0.55, "output": 2.76 } + }, + "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, + "limit": { "context": 128000, "output": 128000 }, + "cost": { "input": 0.551, "output": 1.654 } + }, + "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, + "limit": { "context": 198000, "output": 198000 }, + "cost": { "input": 0.45, "output": 2.23 } + }, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "cost": { + "input": 5.6, + "output": 27.99, + "cache_read": 0.56, + "cache_write": 6.99 + } + }, + "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, + "limit": { "context": 202752, "output": 202752 }, + "cost": { "input": 1.08, "output": 3.44 } + }, + "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, + "limit": { "context": 300000, "output": 5000 }, + "cost": { "input": 1.016, "output": 4.061 } + }, + "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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 16384, "output": 16384 }, + "cost": { "input": 0.099, "output": 0.33 } + }, + "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, + "limit": { "context": 256000, "output": 256000 }, + "cost": { "input": 0.3, "output": 0.9, "cache_read": 0.03 } + }, + "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, + "limit": { "context": 200000, "output": 200000 }, + "cost": { "input": 3.259, "output": 16.296 } + }, + "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, + "limit": { "context": 131000, "output": 131000 }, + "cost": { "input": 0.551, "output": 2.646 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.266, "output": 0.799 } + }, + "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, + "limit": { "context": 400000, "output": 400000 }, + "cost": { "input": 0.39, "output": 1.57 } + }, + "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, + "limit": { "context": 1048576, "output": 65535 }, + "cost": { "input": 1.654, "output": 11.024 } + }, + "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, + "limit": { "context": 1000000, "output": 1000000 }, + "cost": { "input": 5.98, "output": 29.89 } + }, + "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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 196000, "output": 196000 }, + "cost": { "input": 0.34, "output": 1.34 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 1.31, "output": 4.1, "cache_read": 0.24 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.67, "output": 2.46 } + }, + "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, + "limit": { "context": 200000, "output": 200000 }, + "cost": { "input": 5.98, "output": 29.89 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { "input": 3.307, "output": 16.536 } + }, + "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, + "limit": { "context": 128000, "output": 128000 }, + "cost": { "input": 0.164, "output": 1.311 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.22, "output": 1.34 } + }, + "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, + "limit": { "context": 256000, "output": 256000 }, + "cost": { "input": 0.81, "output": 3.54, "cache_read": 0.2 } + }, + "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, + "limit": { "context": 256000, "output": 65536 }, + "cost": { "input": 0.158, "output": 0.84 } + }, + "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, + "limit": { "context": 1000000, "output": 1000000 }, + "cost": { "input": 3.59, "output": 17.92 } + }, + "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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0.441, "output": 1.984 } + }, + "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, + "limit": { "context": 32000, "output": 32000 }, + "cost": { "input": 0.438, "output": 0.68 } + }, + "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, + "limit": { "context": 128000, "output": 128000 }, + "cost": { "input": 0.116, "output": 0.358 } + }, + "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, + "limit": { "context": 196608, "output": 196608 }, + "cost": { "input": 0.32, "output": 1.18 } + }, + "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, + "limit": { "context": 163840, "output": 163840 }, + "cost": { "input": 0.266, "output": 0.444 } + }, + "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, + "limit": { "context": 128000, "output": 128000 }, + "cost": { "input": 0.219, "output": 1.202 } + }, + "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, + "limit": { "context": 203000, "output": 203000 }, + "cost": { "input": 0.09, "output": 0.53 } + }, + "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, + "limit": { "context": 128000, "output": 128000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 33000, "output": 33000 }, + "cost": { "input": 0.062, "output": 0.231 } + }, + "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, + "limit": { "context": 164000, "output": 164000 }, + "cost": { "input": 0.585, "output": 2.307 } + }, + "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, + "limit": { "context": 1047576, "output": 32768 }, + "cost": { "input": 2.354, "output": 9.417 } + }, + "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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0.656, "output": 2.731 } + }, + "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, + "limit": { "context": 128000, "output": 128000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.444, "output": 3.106 } + }, + "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, + "limit": { "context": 131000, "output": 131000 }, + "cost": { "input": 0.089, "output": 0.275 } + }, + "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, + "limit": { "context": 256000, "output": 256000 }, + "cost": { "input": 0.5, "output": 1.5, "cache_read": 0.05 } + }, + "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, + "limit": { "context": 250000, "output": 250000 }, + "cost": { "input": 0.6, "output": 3.6 } + }, + "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, + "limit": { "context": 1048576, "output": 384000 }, + "cost": { "input": 0.133, "output": 0.266, "cache_read": 0.028 } + }, + "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, + "limit": { "context": 1048576, "output": 384000 }, + "cost": { "input": 1.553, "output": 3.106, "cache_read": 0.145 } + }, + "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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0.053, "output": 0.222 } + } + } + }, + "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, + "limit": { "context": 131000, "output": 131000 }, + "cost": { "input": 0.5, "output": 2 } + }, + "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, + "limit": { "context": 131000, "output": 4000 }, + "cost": { "input": 0.59, "output": 0.59 } + }, + "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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0.2, "output": 1.5 } + }, + "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, + "limit": { "context": 262000, "output": 131000 }, + "cost": { "input": 0.09, "output": 0.3 } + }, + "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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0.45, "output": 3.5 } + }, + "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, + "limit": { "context": 33000, "output": 4000 }, + "cost": { "input": 0.05, "output": 0.05 } + }, + "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, + "limit": { "context": 33000, "output": 4000 }, + "cost": { "input": 0.18, "output": 0.18 } + }, + "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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0.29, "output": 1 } + }, + "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, + "limit": { "context": 131000, "output": 131000 }, + "cost": { "input": 0.15, "output": 0.58 } + }, + "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, + "limit": { "context": 131000, "output": 131000 }, + "cost": { "input": 0.35, "output": 1.42 } + }, + "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, + "limit": { "context": 66000, "output": 66000 }, + "cost": { "input": 0.1, "output": 0.4 } + }, + "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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0.18, "output": 2 } + }, + "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, + "limit": { "context": 33000, "output": 4000 }, + "cost": { "input": 0.05, "output": 0.05 } + }, + "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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0.14, "output": 1.4 } + }, + "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, + "limit": { "context": 131000, "output": 131000 }, + "cost": { "input": 0.06, "output": 0.06 } + }, + "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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0.09, "output": 0.3 } + }, + "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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0.09, "output": 0.6 } + }, + "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, + "limit": { "context": 131000, "output": 131000 }, + "cost": { "input": 0.14, "output": 0.57 } + }, + "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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0.07, "output": 0.28 } + }, + "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, + "limit": { "context": 66000, "output": 66000 }, + "cost": { "input": 0.1, "output": 0.4 } + }, + "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, + "limit": { "context": 131000, "output": 131000 }, + "cost": { "input": 0.07, "output": 0.28 } + }, + "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, + "limit": { "context": 131000, "output": 4000 }, + "cost": { "input": 0.59, "output": 0.59 } + }, + "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, + "limit": { "context": 33000, "output": 4000 }, + "cost": { "input": 0.18, "output": 0.18 } + }, + "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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0.13, "output": 0.6 } + }, + "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, + "limit": { "context": 66000, "output": 66000 }, + "cost": { "input": 0.1, "output": 0.4 } + }, + "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, + "limit": { "context": 131000, "output": 131000 }, + "cost": { "input": 0.27, "output": 0.27 } + }, + "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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0.14, "output": 0.57 } + }, + "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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0.3, "output": 1.5 } + }, + "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, + "limit": { "context": 33000, "output": 4000 }, + "cost": { "input": 0.1, "output": 0.1 } + }, + "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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0.29, "output": 1 } + }, + "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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0.2, "output": 0.6 } + }, + "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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0.18, "output": 0.68 } + }, + "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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0.25, "output": 1 } + }, + "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, + "limit": { "context": 33000, "output": 4000 }, + "cost": { "input": 0.59, "output": 0.59 } + }, + "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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0.1, "output": 0.3 } + }, + "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, + "limit": { "context": 131000, "output": 131000 }, + "cost": { "input": 0.4, "output": 2 } + }, + "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, + "limit": { "context": 200000, "output": 131072 }, + "cost": { "input": 1.2, "output": 4, "cache_write": 0 } + }, + "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, + "limit": { "context": 205000, "output": 205000 }, + "cost": { "input": 0.6, "output": 2.2 } + }, + "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, + "limit": { "context": 205000, "output": 205000 }, + "cost": { "input": 1.4, "output": 4.4, "cache_write": 0 } + }, + "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, + "limit": { "context": 131000, "output": 131000 }, + "cost": { "input": 0.14, "output": 0.86 } + }, + "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, + "limit": { "context": 205000, "output": 205000 }, + "cost": { "input": 1, "output": 3.2 } + }, + "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, + "limit": { "context": 131000, "output": 131000 }, + "cost": { "input": 0.3, "output": 0.9 } + }, + "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, + "limit": { "context": 205000, "output": 205000 }, + "cost": { "input": 0.5, "output": 1.9 } + }, + "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, + "limit": { "context": 66000, "output": 66000 }, + "cost": { "input": 0.14, "output": 0.86 } + }, + "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, + "limit": { "context": 33000, "output": 4000 }, + "cost": { "input": 0.06, "output": 0.06 } + }, + "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, + "limit": { "context": 131000, "output": 131000 }, + "cost": { "input": 0.14, "output": 0.57 } + }, + "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, + "limit": { "context": 131000, "output": 131000 }, + "cost": { "input": 0.07, "output": 0.28 } + }, + "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, + "limit": { "context": 131000, "output": 131000 }, + "cost": { "input": 0.14, "output": 0.57 } + }, + "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, + "limit": { "context": 131000, "output": 131000 }, + "cost": { "input": 0.14, "output": 0.57 } + }, + "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, + "limit": { "context": 33000, "output": 33000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 164000, "output": 164000 }, + "cost": { "input": 0.27, "output": 1 } + }, + "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, + "limit": { "context": 4000, "output": 4000 }, + "cost": { "input": 0.15, "output": 0.15 } + }, + "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, + "limit": { "context": 164000, "output": 164000 }, + "cost": { "input": 0.25, "output": 1 } + }, + "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, + "limit": { "context": 131000, "output": 131000 }, + "cost": { "input": 0.18, "output": 0.18 } + }, + "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, + "limit": { "context": 164000, "output": 164000 }, + "cost": { "input": 0.5, "output": 2.18 } + }, + "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, + "limit": { "context": 131000, "output": 131000 }, + "cost": { "input": 0.1, "output": 0.1 } + }, + "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, + "limit": { "context": 164000, "output": 164000 }, + "cost": { "input": 0.27, "output": 0.41 } + }, + "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, + "limit": { "context": 164000, "output": 164000 }, + "cost": { "input": 0.27, "output": 0.42 } + }, + "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, + "limit": { "context": 164000, "output": 164000 }, + "cost": { "input": 0.27, "output": 1 } + }, + "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, + "limit": { "context": 131000, "output": 8000 }, + "cost": { "input": 0.04, "output": 0.18 } + }, + "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, + "limit": { "context": 131000, "output": 8000 }, + "cost": { "input": 0.05, "output": 0.45 } + }, + "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, + "limit": { "context": 131000, "output": 131000 }, + "cost": { "input": 0.28, "output": 1.1 } + }, + "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, + "limit": { "context": 131000, "output": 131000 }, + "cost": { "input": 0.086, "output": 0.086 } + }, + "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, + "limit": { "context": 33000, "output": 33000 }, + "cost": { "input": 0.086, "output": 0.086 } + }, + "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, + "limit": { "context": 33000, "output": 33000 }, + "cost": { "input": 0.27, "output": 0.27 } + }, + "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, + "limit": { "context": 131000, "output": 131000 }, + "cost": { "input": 0.14, "output": 0.57 } + }, + "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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0.55, "output": 2.5 } + }, + "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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0.95, "output": 4, "cache_read": 0.16 } + }, + "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, + "limit": { "context": 131000, "output": 131000 }, + "cost": { "input": 0.58, "output": 2.29 } + }, + "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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0.4, "output": 2 } + }, + "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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0.45, "output": 2.25 } + }, + "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, + "limit": { "context": 197000, "output": 131000 }, + "cost": { "input": 0.3, "output": 1.2 } + }, + "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, + "limit": { "context": 197000, "output": 131000 }, + "cost": { "input": 0.3, "output": 1.2 } + }, + "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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0.21, "output": 0.57 } + } + } + }, + "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, + "limit": { "context": 1000000, "output": 1000000 }, + "cost": { "input": 1, "output": 5 } + }, + "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, + "limit": { "context": 256000, "output": 256000 }, + "cost": { "input": 0.6, "output": 3.5999999999999996 } + }, + "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, + "limit": { "context": 32768, "output": 32768 }, + "cost": { "input": 0.05, "output": 0 } + }, + "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, + "limit": { "context": 40960, "output": 16384 }, + "cost": { "input": 0.08, "output": 0.29 } + }, + "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, + "limit": { "context": 40960, "output": 16384 }, + "cost": { "input": 0.13, "output": 0.6 } + }, + "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, + "limit": { "context": 1000000, "output": 64000 }, + "cost": { + "input": 0.1, + "output": 0.4, + "cache_read": 0.001, + "cache_write": 0.125 + } + }, + "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, + "limit": { "context": 1000000, "output": 64000 }, + "cost": { + "input": 0.5, + "output": 3, + "cache_read": 0.09999999999999999, + "cache_write": 0.625 + } + }, + "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, + "limit": { "context": 262144, "output": 32768 }, + "cost": { "input": 1.2, "output": 6 } + }, + "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, + "limit": { "context": 32768, "output": 32768 }, + "cost": { "input": 0.01, "output": 0 } + }, + "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, + "limit": { "context": 40960, "output": 16384 }, + "cost": { "input": 0.1, "output": 0.3 } + }, + "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, + "limit": { "context": 240000, "output": 64000 }, + "cost": { + "input": 1.3, + "output": 7.8, + "cache_read": 0.26, + "cache_write": 1.625 + } + }, + "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, + "limit": { "context": 131072, "output": 65536 }, + "cost": { "input": 0.15, "output": 1.5 } + }, + "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, + "limit": { "context": 131072, "output": 129024 }, + "cost": { "input": 0.7, "output": 8.4 } + }, + "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, + "limit": { "context": 262114, "output": 262114 }, + "cost": { "input": 0.3, "output": 2.9 } + }, + "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, + "limit": { "context": 262144, "output": 32768 }, + "cost": { "input": 0.09, "output": 1.1 } + }, + "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, + "limit": { "context": 256000, "output": 256000 }, + "cost": { "input": 0.5, "output": 1.2 } + }, + "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, + "limit": { "context": 32768, "output": 32768 }, + "cost": { "input": 0.02, "output": 0 } + }, + "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, + "limit": { "context": 256000, "output": 65536 }, + "cost": { "input": 1.2, "output": 6, "cache_read": 0.24 } + }, + "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, + "limit": { "context": 131072, "output": 129024 }, + "cost": { "input": 0.39999999999999997, "output": 1.5999999999999999 } + }, + "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, + "limit": { "context": 262144, "output": 66536 }, + "cost": { "input": 0.38, "output": 1.53 } + }, + "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, + "limit": { "context": 262144, "output": 32768 }, + "cost": { "input": 1.2, "output": 6, "cache_read": 0.24 } + }, + "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, + "limit": { "context": 1000000, "output": 64000 }, + "cost": { + "input": 0.4, + "output": 2.4, + "cache_read": 0.04, + "cache_write": 0.5 + } + }, + "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, + "limit": { "context": 40960, "output": 16384 }, + "cost": { "input": 0.06, "output": 0.24 } + }, + "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, + "limit": { "context": 131072, "output": 129024 }, + "cost": { "input": 0.7, "output": 2.8 } + }, + "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, + "limit": { "context": 160000, "output": 32768 }, + "cost": { "input": 0.07, "output": 0.27 } + }, + "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, + "limit": { "context": 200000, "output": 8000 }, + "cost": { "input": 3, "output": 15 } + }, + "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, + "limit": { "context": 127000, "output": 8000 }, + "cost": { "input": 1, "output": 1 } + }, + "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, + "limit": { "context": 127000, "output": 8000 }, + "cost": { "input": 1, "output": 5 } + }, + "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, + "limit": { "context": 127000, "output": 8000 }, + "cost": { "input": 2, "output": 8 } + }, + "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, + "limit": { "context": 128000, "output": 64000 }, + "cost": { "input": 0.28, "output": 0.42, "cache_read": 0.03 } + }, + "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, + "limit": { "context": 163840, "output": 163840 }, + "cost": { "input": 0.27, "output": 0.4 } + }, + "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, + "limit": { "context": 163840, "output": 128000 }, + "cost": { "input": 0.3, "output": 1 } + }, + "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, + "limit": { "context": 1000000, "output": 384000 }, + "cost": { "input": 0.14, "output": 0.28, "cache_read": 0.028 } + }, + "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, + "limit": { "context": 1000000, "output": 384000 }, + "cost": { "input": 1.74, "output": 3.48, "cache_read": 0.145 } + }, + "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, + "limit": { "context": 163842, "output": 8000 }, + "cost": { "input": 0.27, "output": 0.4, "cache_read": 0.22 } + }, + "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, + "limit": { "context": 163840, "output": 16384 }, + "cost": { "input": 0.77, "output": 0.77 } + }, + "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, + "limit": { "context": 131072, "output": 65536 }, + "cost": { "input": 0.27, "output": 1 } + }, + "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, + "limit": { "context": 128000, "output": 32768 }, + "cost": { "input": 1.35, "output": 5.4 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.05, "output": 0.15 } + }, + "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, + "limit": { "context": 262100, "output": 80000 }, + "cost": { "input": 0.25, "output": 0.8999999999999999 } + }, + "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, + "limit": { "context": 131000, "output": 131000 }, + "cost": { "input": 0.25, "output": 1 } + }, + "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, + "limit": { "context": 8192, "output": 1536 }, + "cost": { "input": 0.18, "output": 0 } + }, + "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, + "limit": { "context": 8192, "output": 1536 }, + "cost": { "input": 0.02, "output": 0 } + }, + "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, + "limit": { "context": 8192, "output": 1536 }, + "cost": { "input": 0.18, "output": 0 } + }, + "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, + "limit": { "context": 8192, "output": 1536 }, + "cost": { "input": 0.12, "output": 0 } + }, + "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, + "limit": { "context": 8192, "output": 1536 }, + "cost": { "input": 0.12, "output": 0 } + }, + "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, + "limit": { "context": 8192, "output": 1536 }, + "cost": { "input": 0.12, "output": 0 } + }, + "voyage/voyage-3.5": { + "id": "voyage/voyage-3.5", + "name": "voyage-3.5", + "family": "voyage", + "attachment": false, + "reasoning": false, + "tool_call": false, + "temperature": false, + "release_date": "2025-05-20", + "last_updated": "2025-05-20", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": false, + "limit": { "context": 8192, "output": 1536 }, + "cost": { "input": 0.06, "output": 0 } + }, + "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, + "limit": { "context": 32000, "output": 32000 }, + "cost": { "input": 0.9, "output": 1.9 } + }, + "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, + "limit": { "context": 16000, "output": 16000 }, + "cost": { "input": 0.8, "output": 1.2 } + }, + "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, + "limit": { "context": 200000, "output": 128000 }, + "cost": { "input": 1.2, "output": 4, "cache_read": 0.24 } + }, + "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, + "limit": { "context": 202752, "output": 120000 }, + "cost": { "input": 0.43, "output": 1.75, "cache_read": 0.08 } + }, + "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, + "limit": { "context": 202800, "output": 131072 }, + "cost": { "input": 1, "output": 3.2, "cache_read": 0.2 } + }, + "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, + "limit": { "context": 200000, "output": 128000 }, + "cost": { "input": 0.06, "output": 0.4, "cache_read": 0.01 } + }, + "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, + "limit": { "context": 202752, "output": 202752 }, + "cost": { "input": 1.4, "output": 4.4, "cache_read": 0.26 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.6, "output": 2.2 } + }, + "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, + "limit": { "context": 128000, "output": 96000 }, + "cost": { "input": 0.2, "output": 1.1 } + }, + "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, + "limit": { "context": 202800, "output": 131100 }, + "cost": { "input": 1.2, "output": 4, "cache_read": 0.24 } + }, + "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, + "limit": { "context": 66000, "output": 66000 }, + "cost": { "input": 0.6, "output": 1.8 } + }, + "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, + "limit": { "context": 200000, "output": 96000 }, + "cost": { "input": 0.45, "output": 1.8 } + }, + "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, + "limit": { "context": 128000, "output": 24000 }, + "cost": { "input": 0.3, "output": 0.9, "cache_read": 0.05 } + }, + "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, + "limit": { "context": 200000, "output": 131000 }, + "cost": { "input": 0.07, "output": 0.39999999999999997 } + }, + "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, + "limit": { "context": 256000, "output": 8000 }, + "cost": { "input": 2.5, "output": 10 } + }, + "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, + "limit": { "context": 8192, "output": 1536 }, + "cost": { "input": 0.12, "output": 0 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.2, "output": 1.1 } + }, + "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, + "limit": { "context": 1000000, "output": 1000000 }, + "cost": { + "input": 1.25, + "output": 2.5, + "cache_read": 0.19999999999999998 + } + }, + "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, + "limit": { "context": 2000000, "output": 2000000 }, + "cost": { "input": 2, "output": 6, "cache_read": 0.19999999999999998 } + }, + "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, + "limit": { "context": 2000000, "output": 2000000 }, + "cost": { "input": 2, "output": 6, "cache_read": 0.19999999999999998 } + }, + "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, + "limit": { "context": 2000000, "output": 2000000 }, + "cost": { "input": 2, "output": 6, "cache_read": 0.19999999999999998 } + }, + "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, + "limit": { "context": 2000000, "output": 2000000 }, + "cost": { "input": 2, "output": 6, "cache_read": 0.19999999999999998 } + }, + "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, + "limit": { "context": 2000000, "output": 256000 }, + "cost": { "input": 0.2, "output": 0.5, "cache_read": 0.05 } + }, + "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, + "limit": { "context": 2000000, "output": 30000 }, + "cost": { "input": 0.2, "output": 0.5, "cache_read": 0.05 } + }, + "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, + "limit": { "context": 2000000, "output": 2000000 }, + "cost": { "input": 2, "output": 6, "cache_read": 0.19999999999999998 } + }, + "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, + "limit": { "context": 2000000, "output": 2000000 }, + "cost": { "input": 2, "output": 6, "cache_read": 0.19999999999999998 } + }, + "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, + "limit": { "context": 2000000, "output": 30000 }, + "cost": { "input": 0.2, "output": 0.5, "cache_read": 0.05 } + }, + "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, + "limit": { "context": 2000000, "output": 30000 }, + "cost": { "input": 0.2, "output": 0.5, "cache_read": 0.05 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 3, "output": 15, "cache_read": 0.75 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { + "input": 0.3, + "output": 0.5, + "reasoning": 0.5, + "cache_read": 0.075 + } + }, + "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, + "limit": { "context": 8192, "output": 4096 }, + "cost": { "input": 2, "output": 10, "cache_read": 2 } + }, + "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, + "limit": { "context": 256000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "reasoning": 15, + "cache_read": 0.75 + } + }, + "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, + "limit": { "context": 256000, "output": 10000 }, + "cost": { "input": 0.2, "output": 1.5, "cache_read": 0.02 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 5, "output": 25, "cache_read": 1.25 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { + "input": 0.6, + "output": 4, + "reasoning": 4, + "cache_read": 0.15 + } + }, + "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, + "limit": { "context": 256000, "output": 32000 }, + "cost": { "input": 0.15, "output": 0.65 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.06, "output": 0.24 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.2, "output": 0.6 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.04, "output": 0.16 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0.25, "output": 0.75, "cache_read": 0.025 } + }, + "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, + "limit": { "context": 128000, "output": 128000 }, + "cost": { + "input": 0.25, + "output": 0.75, + "cache_read": 0.024999999999999998 + } + }, + "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, + "limit": { "context": 32000, "output": 16384 }, + "cost": { "input": 0.25, "output": 1 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.13 } + }, + "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, + "limit": { "context": 128000, "input": 111616, "output": 16384 }, + "cost": { "input": 1.75, "output": 14, "cache_read": 0.18 } + }, + "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, + "limit": { "context": 128000, "input": 111616, "output": 16384 }, + "cost": { "input": 0.15, "output": 0.6 } + }, + "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, + "limit": { "context": 200000, "input": 100000, "output": 100000 }, + "cost": { "input": 1.5, "output": 6, "cache_read": 0.38 } + }, + "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, + "limit": { "context": 128000, "input": 111616, "output": 16384 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.13 } + }, + "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, + "limit": { "context": 128000, "input": 111616, "output": 16384 }, + "cost": { "input": 1.75, "output": 14, "cache_read": 0.175 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 21, "output": 168 } + }, + "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, + "limit": { "context": 8192, "input": 6656, "output": 1536 }, + "cost": { "input": 0.13, "output": 0 } + }, + "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, + "limit": { "context": 1000000, "input": 872000, "output": 128000 }, + "cost": { "input": 5, "output": 30, "cache_read": 0.5 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 1.75, "output": 14, "cache_read": 0.175 } + }, + "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, + "limit": { "context": 8192, "input": 6656, "output": 1536 }, + "cost": { "input": 0.1, "output": 0 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 1.75, "output": 14, "cache_read": 0.18 } + }, + "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, + "limit": { "context": 200000, "input": 100000, "output": 100000 }, + "cost": { "input": 20, "output": 80 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 0.75, "output": 4.5, "cache_read": 0.075 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { + "input": 0.19999999999999998, + "output": 1.25, + "cache_read": 0.02 + } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 1.75, "output": 14, "cache_read": 0.175 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 0.25, "output": 2, "cache_read": 0.03 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.13 } + }, + "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, + "limit": { "context": 1050000, "input": 922000, "output": 128000 }, + "cost": { "input": 30, "output": 180 } + }, + "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, + "limit": { "context": 16385, "input": 12289, "output": 4096 }, + "cost": { "input": 0.5, "output": 1.5 } + }, + "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, + "limit": { "context": 200000, "input": 100000, "output": 100000 }, + "cost": { "input": 10, "output": 40, "cache_read": 2.5 } + }, + "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, + "limit": { "context": 8192, "input": 6656, "output": 1536 }, + "cost": { "input": 0.02, "output": 0 } + }, + "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, + "limit": { "context": 1050000, "input": 922000, "output": 128000 }, + "cost": { "input": 2.5, "output": 15, "cache_read": 0.25 } + }, + "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, + "limit": { "context": 131072, "input": 98304, "output": 32768 }, + "cost": { "input": 0.07, "output": 0.3 } + }, + "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, + "limit": { "context": 400000, "input": 128000, "output": 272000 }, + "cost": { "input": 15, "output": 120 } + }, + "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, + "limit": { "context": 131072, "input": 65536, "output": 65536 }, + "cost": { "input": 0.08, "output": 0.3, "cache_read": 0.04 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.1, "output": 0.5 } + }, + "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, + "limit": { "context": 1000000, "input": 872000, "output": 128000 }, + "cost": { "input": 30, "output": 180 } + }, + "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, + "limit": { "context": 8192, "input": 4096, "output": 4096 }, + "cost": { "input": 1.5, "output": 2 } + }, + "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, + "limit": { "context": 128000, "input": 111616, "output": 16384 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.13 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.13 } + }, + "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, + "limit": { "context": 1047576, "output": 32768 }, + "cost": { "input": 0.4, "output": 1.6, "cache_read": 0.1 } + }, + "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, + "limit": { "context": 1047576, "output": 32768 }, + "cost": { "input": 2, "output": 8, "cache_read": 0.5 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.125 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 2.5, "output": 10, "cache_read": 1.25 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 2, "output": 8, "cache_read": 0.5 } + }, + "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, + "limit": { "context": 1047576, "output": 32768 }, + "cost": { "input": 0.1, "output": 0.4, "cache_read": 0.03 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.125 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 1.1, "output": 4.4, "cache_read": 0.55 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 15, "output": 60, "cache_read": 7.5 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 1.1, "output": 4.4, "cache_read": 0.28 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.15, "output": 0.6, "cache_read": 0.08 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 10, "output": 30 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 0.05, "output": 0.4, "cache_read": 0.005 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 0.25, "output": 2, "cache_read": 0.025 } + }, + "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, + "limit": { "context": 8192, "output": 1536 }, + "cost": { "input": 0.02, "output": 0 } + }, + "amazon/nova-2-lite": { + "id": "amazon/nova-2-lite", + "name": "Nova 2 Lite", + "family": "nova", + "attachment": true, + "reasoning": true, + "tool_call": false, + "temperature": true, + "knowledge": "2024-10", + "release_date": "2024-12-01", + "last_updated": "2024-12-01", + "modalities": { "input": ["text", "image"], "output": ["text"] }, + "open_weights": false, + "limit": { "context": 1000000, "output": 1000000 }, + "cost": { "input": 0.3, "output": 2.5 } + }, + "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, + "limit": { "context": 300000, "output": 8192 }, + "cost": { "input": 0.8, "output": 3.2, "cache_read": 0.2 } + }, + "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, + "limit": { "context": 300000, "output": 8192 }, + "cost": { "input": 0.06, "output": 0.24, "cache_read": 0.015 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0.035, "output": 0.14, "cache_read": 0.00875 } + }, + "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, + "limit": { "context": 60288, "output": 16000 }, + "cost": { "input": 0.04, "output": 0.17 } + }, + "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, + "limit": { "context": 256000, "output": 256000 }, + "cost": { "input": 0.2, "output": 0.2 } + }, + "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, + "limit": { "context": 8192, "output": 1536 }, + "cost": { "input": 0.15, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 64000 }, + "cost": { "input": 0.4, "output": 2 } + }, + "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, + "limit": { "context": 8192, "output": 1536 }, + "cost": { "input": 0.1, "output": 0 } + }, + "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, + "limit": { "context": 256000, "output": 256000 }, + "cost": { "input": 0.5, "output": 1.5 } + }, + "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, + "limit": { "context": 128000, "output": 64000 }, + "cost": { "input": 0.1, "output": 0.3 } + }, + "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, + "limit": { "context": 128000, "output": 128000 }, + "cost": { "input": 0.1, "output": 0.1 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 2, "output": 5 } + }, + "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, + "limit": { "context": 256000, "output": 256000 }, + "cost": { "input": 0.15, "output": 0.6 } + }, + "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, + "limit": { "context": 128000, "output": 128000 }, + "cost": { "input": 0.5, "output": 1.5 } + }, + "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, + "limit": { "context": 128000, "output": 128000 }, + "cost": { "input": 0.15, "output": 0.15 } + }, + "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, + "limit": { "context": 64000, "output": 64000 }, + "cost": { "input": 2, "output": 6 } + }, + "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, + "limit": { "context": 128000, "output": 128000 }, + "cost": { "input": 2, "output": 6 } + }, + "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, + "limit": { "context": 128000, "output": 128000 }, + "cost": { "input": 0.04, "output": 0.04 } + }, + "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, + "limit": { "context": 256000, "output": 4096 }, + "cost": { "input": 0.3, "output": 0.9 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0.1, "output": 0.1 } + }, + "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, + "limit": { "context": 131072, "output": 16384 }, + "cost": { "input": 0.03, "output": 0.05 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0.72, "output": 0.72 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0.15, "output": 0.15 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0.16, "output": 0.16 } + }, + "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, + "limit": { "context": 131072, "output": 16384 }, + "cost": { "input": 0.4, "output": 0.4 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 32000 }, + "cost": { "input": 3, "output": 15 } + }, + "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, + "limit": { "context": 128000, "output": 32000 }, + "cost": { "input": 3, "output": 15 } + }, + "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, + "limit": { "context": 204800, "output": 131000 }, + "cost": { + "input": 0.3, + "output": 1.2, + "cache_read": 0.06, + "cache_write": 0.375 + } + }, + "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, + "limit": { "context": 204800, "output": 131100 }, + "cost": { + "input": 0.6, + "output": 2.4, + "cache_read": 0.06, + "cache_write": 0.375 + } + }, + "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, + "limit": { "context": 262114, "output": 262114 }, + "cost": { + "input": 0.27, + "output": 1.15, + "cache_read": 0.03, + "cache_write": 0.38 + } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { + "input": 0.3, + "output": 1.2, + "cache_read": 0.03, + "cache_write": 0.38 + } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { + "input": 0.3, + "output": 2.4, + "cache_read": 0.03, + "cache_write": 0.38 + } + }, + "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, + "limit": { "context": 204800, "output": 131000 }, + "cost": { + "input": 0.3, + "output": 1.2, + "cache_read": 0.03, + "cache_write": 0.375 + } + }, + "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, + "limit": { "context": 0, "output": 0 }, + "cost": { + "input": 0.6, + "output": 2.4, + "cache_read": 0.03, + "cache_write": 0.375 + } + }, + "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, + "limit": { "context": 256000, "output": 256000 }, + "cost": { "input": 0.3, "output": 1.2, "cache_read": 0.06 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { "input": 0.1, "output": 0.4, "cache_read": 0.01 } + }, + "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, + "limit": { "context": 1000000, "output": 65000 }, + "cost": { + "input": 0.25, + "output": 1.5, + "cache_read": 0.025, + "cache_write": 1 + } + }, + "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, + "limit": { "context": 65536, "output": 32768 }, + "cost": { "input": 2, "output": 120 } + }, + "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, + "limit": { "context": 1000000, "output": 64000 }, + "cost": { "input": 2, "output": 12, "cache_read": 0.2 } + }, + "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, + "limit": { "context": 1000000, "output": 64000 }, + "cost": { + "input": 2, + "output": 12, + "cache_read": 0.2, + "tiers": [ + { + "input": 4, + "output": 18, + "cache_read": 0.4, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { "input": 4, "output": 18, "cache_read": 0.4 } + } + }, + "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, + "limit": { "context": 8192, "output": 1536 }, + "cost": { "input": 0.15, "output": 0 } + }, + "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, + "limit": { "context": 262144, "output": 131072 }, + "cost": { "input": 0.14, "output": 0.39999999999999997 } + }, + "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, + "limit": { "context": 32768, "output": 32768 }, + "cost": { "input": 0.3, "output": 2.5 } + }, + "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, + "limit": { "context": 8192, "output": 1536 }, + "cost": { "input": 0.03, "output": 0 } + }, + "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, + "limit": { "context": 8192, "output": 1536 }, + "cost": { "input": 0.03, "output": 0 } + }, + "google/gemini-3.1-flash-image-preview": { + "id": "google/gemini-3.1-flash-image-preview", + "name": "Gemini 3.1 Flash Image Preview (Nano Banana 2)", + "family": "gemini", + "attachment": true, + "reasoning": true, + "tool_call": false, + "temperature": true, + "release_date": "2026-02-26", + "last_updated": "2026-03-06", + "modalities": { + "input": ["text", "image"], + "output": ["text", "image"] + }, + "open_weights": false, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.5, "output": 3 } + }, + "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, + "limit": { "context": 1000000, "output": 65000 }, + "cost": { "input": 0.25, "output": 1.5, "cache_read": 0.03 } + }, + "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, + "limit": { "context": 1000000, "output": 64000 }, + "cost": { "input": 0.5, "output": 3, "cache_read": 0.05 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 0.3, + "output": 2.5, + "cache_read": 0.03, + "cache_write": 0.383 + } + }, + "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, + "limit": { "context": 262144, "output": 131072 }, + "cost": { "input": 0.13, "output": 0.39999999999999997 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { "input": 0.1, "output": 0.4, "cache_read": 0.01 } + }, + "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, + "limit": { "context": 32768, "output": 32768 }, + "cost": { "input": 0.3, "output": 2.5 } + }, + "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, + "limit": { "context": 1048576, "output": 8192 }, + "cost": { "input": 0.075, "output": 0.3 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 0.3, + "output": 2.5, + "cache_read": 0.03, + "input_audio": 1 + } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125, + "tiers": [ + { + "input": 2.5, + "output": 15, + "cache_read": 0.25, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { + "input": 2.5, + "output": 15, + "cache_read": 0.25 + } + } + }, + "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, + "limit": { "context": 1048576, "output": 8192 }, + "cost": { "input": 0.1, "output": 0.4, "cache_read": 0.025 } + }, + "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, + "limit": { "context": 256000, "output": 16384 }, + "cost": { "input": 2.4, "output": 10 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.6, "output": 1.2 } + }, + "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, + "limit": { "context": 262114, "output": 262114 }, + "cost": { "input": 1.15, "output": 8, "cache_read": 0.15 } + }, + "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, + "limit": { "context": 131072, "output": 16384 }, + "cost": { "input": 0.6, "output": 2.5 } + }, + "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, + "limit": { "context": 262000, "output": 262000 }, + "cost": { "input": 0.95, "output": 4, "cache_read": 0.16 } + }, + "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, + "limit": { "context": 216144, "output": 216144 }, + "cost": { "input": 0.47, "output": 2, "cache_read": 0.14 } + }, + "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, + "limit": { "context": 131072, "output": 16384 }, + "status": "deprecated", + "cost": { "input": 1, "output": 3 } + }, + "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, + "limit": { "context": 1000000, "output": 32000 }, + "cost": { "input": 1.5, "output": 3.5 } + }, + "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, + "limit": { "context": 200000, "output": 8192 }, + "cost": { "input": 3, "output": 15 } + }, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } + }, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 18.75 + } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 1, + "output": 5, + "cache_read": 0.1, + "cache_write": 1.25 + } + }, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75, + "tiers": [ + { + "input": 6, + "output": 22.5, + "cache_read": 0.6, + "cache_write": 7.5, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { + "input": 6, + "output": 22.5, + "cache_read": 0.6, + "cache_write": 7.5 + } + } + }, + "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, + "limit": { "context": 200000, "output": 4096 }, + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + "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, + "limit": { "context": 200000, "output": 8192 }, + "cost": { + "input": 0.8, + "output": 4, + "cache_read": 0.08, + "cache_write": 1 + } + }, + "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, + "limit": { "context": 200000, "output": 32000 }, + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + "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, + "limit": { "context": 200000, "output": 4096 }, + "cost": { + "input": 0.25, + "output": 1.25, + "cache_read": 0.03, + "cache_write": 0.3 + } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 200000, "output": 8192 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 200000, "output": 32000 }, + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + "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, + "limit": { "context": 1050000, "output": 131000 }, + "cost": { "input": 1, "output": 3, "cache_read": 0.19999999999999998 } + }, + "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, + "limit": { "context": 1050000, "output": 131100 }, + "cost": { + "input": 0.39999999999999997, + "output": 2, + "cache_read": 0.08 + } + }, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "cost": { "input": 1, "output": 3, "cache_read": 0.19999999999999998 } + }, + "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, + "limit": { "context": 262144, "output": 32000 }, + "cost": { "input": 0.1, "output": 0.29 } + }, + "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, + "limit": { "context": 256000, "output": 32000 }, + "cost": { "input": 0.25, "output": 2, "cache_read": 0.05 } + }, + "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, + "limit": { "context": 256000, "output": 64000 }, + "cost": { "input": 0.25, "output": 2, "cache_read": 0.05 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0.15, "output": 1.5 } + }, + "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, + "limit": { "context": 196608, "output": 128000 }, + "cost": { "input": 0.3, "output": 1.2 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { + "input": 0.3, + "output": 1.2, + "cache_read": 0.03, + "cache_write": 0.375 + } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { + "input": 0.3, + "output": 1.2, + "cache_read": 0.06, + "cache_write": 0.375 + } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { + "input": 0.6, + "output": 2.4, + "cache_read": 0.06, + "cache_write": 0.375 + } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0.3, "output": 1.2 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { + "input": 0.6, + "output": 2.4, + "cache_read": 0.06, + "cache_write": 0.375 + } + } + } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.15, "output": 0.6 } + }, + "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, + "limit": { "context": 2000000, "output": 30000 }, + "cost": { "input": 0.2, "output": 0.5, "cache_read": 0.05 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.8, "output": 2.4 } + }, + "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, + "limit": { "context": 32768, "output": 16384 }, + "status": "beta", + "cost": { "input": 0.18, "output": 0.59 } + }, + "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, + "limit": { "context": 8192, "output": 8192 }, + "cost": { "input": 0.14, "output": 0.14 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.5, "output": 1 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 16000 }, + "cost": { "input": 0.04, "output": 0.4, "cache_read": 0 } + }, + "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, + "limit": { "context": 8192, "output": 16384 }, + "cost": { "input": 0.08, "output": 0.08 } + }, + "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, + "limit": { "context": 256000, "output": 16384 }, + "cost": { "input": 0.3, "output": 0.9 } + }, + "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, + "limit": { "context": 1000000, "output": 16384 }, + "cost": { "input": 0.08, "output": 0.3 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.1, "output": 0.1 } + }, + "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, + "limit": { "context": 256000, "output": 8192 }, + "cost": { "input": 0.07, "output": 0.3, "cache_read": 0.01 } + }, + "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, + "limit": { "context": 256000, "output": 8192 }, + "cost": { "input": 0.25, "output": 2, "cache_read": 0.05 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.8, "output": 2.4 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.1, "output": 0.1 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.3, "output": 0.3 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.1, "output": 0.1 } + }, + "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, + "limit": { "context": 200000, "output": 8192 }, + "cost": { "input": 3, "output": 15, "cache_read": 0.3 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { "input": 2, "output": 12, "cache_read": 0.2 } + }, + "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, + "limit": { "context": 200000, "output": 8192 }, + "status": "deprecated", + "cost": { "input": 0.8, "output": 4, "cache_read": 0.08 } + }, + "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, + "limit": { "context": 32768, "output": 8192 }, + "cost": { "input": 1.6, "output": 6.4 } + }, + "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, + "limit": { "context": 128000, "output": 16000 }, + "status": "beta", + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.1, "output": 0.1 } + }, + "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, + "limit": { "context": 1000000, "output": 131072 }, + "cost": { "input": 0.2, "output": 1.1 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.1, "output": 0.1 } + }, + "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, + "limit": { "context": 8192, "output": 2048 }, + "cost": { "input": 0.17, "output": 0.66 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.03, "output": 0.05 } + }, + "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, + "limit": { "context": 262144, "output": 8192 }, + "cost": { "input": 0.15, "output": 0.15 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.27, "output": 0.27 } + }, + "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, + "limit": { "context": 1000000, "output": 32000 }, + "cost": { "input": 0.05, "output": 0.4, "cache_read": 0.01 } + }, + "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, + "limit": { "context": 128000, "output": 2048 }, + "status": "beta", + "cost": { "input": 0.72, "output": 0.72 } + }, + "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, + "limit": { "context": 256000, "output": 8192 }, + "cost": { "input": 0.25, "output": 2, "cache_read": 0.05 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.8, "output": 2.4 } + }, + "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, + "limit": { "context": 256000, "output": 8192 }, + "cost": { "input": 0.25, "output": 2, "cache_read": 0.05 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "status": "beta", + "cost": { "input": 2.2, "output": 8.9, "cache_read": 0.45 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.1, "output": 0.1 } + }, + "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, + "limit": { "context": 2000000, "output": 30000 }, + "cost": { "input": 0.2, "output": 0.5, "cache_read": 0.05 } + }, + "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, + "limit": { "context": 128000, "output": 32768 }, + "cost": { "input": 0.56, "output": 1.68, "cache_read": 0.11 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.1, "output": 0.1 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.3, "output": 0.9 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0.6, "output": 1.8 } + }, + "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, + "limit": { "context": 8192, "output": 2048 }, + "cost": { "input": 0.24, "output": 0.97 } + }, + "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, + "limit": { "context": 256000, "output": 256000 }, + "cost": { "input": 3, "output": 15 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.1, "output": 0.1 } + }, + "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, + "limit": { "context": 196608, "output": 131072 }, + "cost": { "input": 0.12, "output": 0.48 } + }, + "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, + "limit": { "context": 256000, "output": 32800 }, + "cost": { "input": 3, "output": 15, "cache_read": 0.6 } + }, + "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, + "limit": { "context": 32768, "output": 32000 }, + "cost": { "input": 0.03, "output": 0.05 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.8, "output": 4 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 2.5, "output": 10 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.1, "output": 0.1 } + }, + "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, + "limit": { "context": 163840, "output": 16384 }, + "cost": { "input": 0.28, "output": 0.42, "cache_read": 0.03 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.5, "output": 2.5 } + }, + "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, + "limit": { "context": 131072, "output": 32766 }, + "cost": { "input": 0.1, "output": 0.5 } + }, + "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, + "limit": { "context": 131072, "output": 16384 }, + "cost": { "input": 1, "output": 3, "cache_read": 0.5 } + }, + "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, + "limit": { "context": 8192, "output": 8192 }, + "cost": { "input": 0.04, "output": 0.04 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.8, "output": 2.4 } + }, + "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, + "limit": { "context": 131072, "output": 32766 }, + "cost": { "input": 0.15, "output": 0.75 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.05, "output": 0.05 } + }, + "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, + "limit": { "context": 128000, "output": 2048 }, + "status": "beta", + "cost": { "input": 0.22, "output": 0.22 } + }, + "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, + "limit": { "context": 8192, "output": 8000 }, + "cost": { "input": 0.51, "output": 0.74 } + }, + "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, + "limit": { "context": 64000, "output": 16384 }, + "status": "beta", + "cost": { "input": 0.8, "output": 2.4 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 1.1, "output": 4.5, "cache_read": 0.22 } + }, + "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, + "limit": { "context": 262144, "output": 8192 }, + "cost": { "input": 0.2, "output": 0.2 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0.07, "output": 0.33 } + }, + "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, + "limit": { "context": 200000, "output": 4096 }, + "cost": { "input": 15, "output": 75, "cache_read": 1.5 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { + "input": 0.3, + "output": 1.2, + "cache_read": 0.06, + "cache_write": 0.375 + } + }, + "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, + "limit": { "context": 2000000, "output": 30000 }, + "cost": { + "input": 2, + "output": 6, + "cache_read": 0.2, + "context_over_200k": { "input": 4, "output": 12, "cache_read": 0.4 }, + "tiers": [ + { + "input": 4, + "output": 12, + "cache_read": 0.4, + "tier": { "type": "context", "size": 200000 } + } + ] + } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { "input": 1, "output": 5 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 1, + "output": 5, + "cache_read": 0.1, + "cache_write": 1.25 + } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { "input": 0.1, "output": 0.4, "cache_read": 0.025 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.6, "output": 3, "cache_read": 0.1 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.5, "output": 1.5 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { + "input": 0.6, + "output": 2.2, + "cache_read": 0.11, + "cache_write": 0 + } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { + "input": 0.6, + "output": 2.4, + "cache_read": 0.06, + "cache_write": 0.375 + } + }, + "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, + "limit": { "context": 1048576, "output": 131072 }, + "cost": { + "input": 1, + "output": 3, + "cache_read": 0.2, + "context_over_200k": { "input": 2, "output": 6, "cache_read": 0.4 }, + "tiers": [ + { + "input": 2, + "output": 6, + "cache_read": 0.4, + "tier": { "type": "context", "size": 256000 } + } + ] + } + }, + "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, + "limit": { "context": 8192, "output": 2000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 200000, "output": 8192 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 21, "output": 168 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.8, "output": 2.4 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 0.25, + "output": 1.5, + "cache_read": 0.025, + "input_audio": 0.5 + } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.21, "output": 0.63 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { + "input": 1, + "output": 3.2, + "cache_read": 0.2, + "cache_write": 0 + } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.4, "output": 2 } + }, + "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, + "limit": { "context": 131072, "output": 16384 }, + "cost": { "input": 0.7, "output": 2.8, "reasoning": 8.4 } + }, + "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, + "limit": { "context": 1000000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 200000, "output": 131072 }, + "cost": { + "input": 0.07, + "output": 0.4, + "cache_read": 0.01, + "cache_write": 0 + } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 2, + "output": 12, + "cache_read": 0.2, + "context_over_200k": { "input": 4, "output": 18, "cache_read": 0.4 }, + "tiers": [ + { + "input": 4, + "output": 18, + "cache_read": 0.4, + "tier": { "type": "context", "size": 200000 } + } + ] + } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.6, "output": 3.6 } + }, + "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, + "limit": { "context": 32768, "output": 8192 }, + "cost": { "input": 1.6, "output": 6.4 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 1.75, "output": 14, "cache_read": 0.175 } + }, + "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, + "limit": { "context": 1048576, "output": 8192 }, + "cost": { "input": 0.1, "output": 0.4, "cache_read": 0.025 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 0.5, + "output": 3, + "cache_read": 0.05, + "input_audio": 1 + } + }, + "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, + "limit": { "context": 1000000, "output": 32768 }, + "cost": { "input": 0.4, "output": 1.2, "reasoning": 4 } + }, + "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, + "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" } } + } + } + }, + "cost": { + "input": 5, + "output": 30, + "cache_read": 0.5, + "context_over_200k": { "input": 10, "output": 45, "cache_read": 1 }, + "tiers": [ + { + "input": 10, + "output": 45, + "cache_read": 1, + "tier": { "type": "context", "size": 272000 } + } + ] + } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.248, "output": 1.485 } + }, + "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, + "limit": { "context": 32768, "output": 2048 }, + "cost": { + "input": 0.07, + "output": 0.27, + "input_audio": 4.44, + "output_audio": 8.89 + } + }, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 0.25, "output": 2, "cache_read": 0.025 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 0.05, "output": 0.4, "cache_read": 0.005 } + }, + "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, + "limit": { "context": 262144, "output": 131072 }, + "cost": { "input": 0.4, "output": 2, "cache_read": 0.08 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 1.75, "output": 14, "cache_read": 0.175 } + }, + "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, + "limit": { "context": 196608, "output": 128000 }, + "cost": { "input": 0.3, "output": 1.2 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 1000000, "output": 32768 }, + "cost": { "input": 0.05, "output": 0.4 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 10, "output": 30 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125, + "context_over_200k": { + "input": 2.5, + "output": 15, + "cache_read": 0.25 + }, + "tiers": [ + { + "input": 2.5, + "output": 15, + "cache_read": 0.25, + "tier": { "type": "context", "size": 200000 } + } + ] + } + }, + "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, + "limit": { "context": 1048576, "output": 131072 }, + "cost": { + "input": 0.4, + "output": 2, + "cache_read": 0.08, + "context_over_200k": { + "input": 0.8, + "output": 4, + "cache_read": 0.16 + }, + "tiers": [ + { + "input": 0.8, + "output": 4, + "cache_read": 0.16, + "tier": { "type": "context", "size": 256000 } + } + ] + } + }, + "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, + "limit": { "context": 2000000, "output": 30000 }, + "cost": { "input": 0.2, "output": 0.5, "cache_read": 0.05 } + }, + "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, + "limit": { "context": 200000, "output": 8192 }, + "cost": { "input": 3, "output": 15 } + }, + "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, + "limit": { "context": 128000, "output": 128000 }, + "cost": { "input": 2, "output": 6 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 1.75, "output": 14, "cache_read": 0.175 } + }, + "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, + "limit": { "context": 2000000, "output": 30000 }, + "cost": { + "input": 2, + "output": 6, + "cache_read": 0.2, + "context_over_200k": { "input": 4, "output": 12, "cache_read": 0.4 }, + "tiers": [ + { + "input": 4, + "output": 12, + "cache_read": 0.4, + "tier": { "type": "context", "size": 200000 } + } + ] + } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.15, "output": 0.6, "cache_read": 0.08 } + }, + "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, + "limit": { "context": 1000000, "output": 65536 }, + "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 + }, + "tiers": [ + { + "input": 2, + "output": 6, + "cache_read": 0.2, + "cache_write": 2.5, + "tier": { "type": "context", "size": 256000 } + } + ] + } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 0.75, "output": 4.5, "cache_read": 0.075 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 1.2, "output": 6 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0.3, "output": 1.2 } + }, + "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, + "limit": { "context": 200000, "output": 131072 }, + "cost": { + "input": 6, + "output": 24, + "cache_read": 1.3, + "cache_write": 0 + } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 1.1, "output": 4.4, "cache_read": 0.28 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 0.2, "output": 1.25, "cache_read": 0.02 } + }, + "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, + "limit": { "context": 131072, "output": 98304 }, + "cost": { + "input": 0.6, + "output": 2.2, + "cache_read": 0.11, + "cache_write": 0 + } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.5, "output": 1.5 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.1, "output": 0.3 } + }, + "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, + "limit": { "context": 32768, "output": 8192 }, + "cost": { "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 1.75, "output": 14, "cache_read": 0.175 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 0.3, + "output": 2.5, + "cache_read": 0.03, + "input_audio": 1 + } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 1.75, "output": 14, "cache_read": 0.175 } + }, + "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, + "limit": { "context": 8192, "output": 2000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 0.25, "output": 2, "cache_read": 0.025 } + }, + "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, + "limit": { "context": 2000000, "output": 30000 }, + "cost": { "input": 0.2, "output": 0.5, "cache_read": 0.05 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 0.25, + "output": 1.5, + "cache_read": 0.025, + "input_audio": 0.5 + } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.5, "output": 6 } + }, + "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, + "limit": { "context": 256000, "output": 10000 }, + "cost": { "input": 0.2, "output": 1.5, "cache_read": 0.02 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.13 } + }, + "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, + "limit": { "context": 32768, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 1.15, "output": 8, "cache_read": 0.15 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 15, "output": 60, "cache_read": 7.5 } + }, + "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, + "limit": { "context": 131072, "output": 98304 }, + "cost": { + "input": 0.2, + "output": 1.1, + "cache_read": 0.03, + "cache_write": 0 + } + }, + "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, + "limit": { "context": 1050000, "input": 922000, "output": 128000 }, + "cost": { "input": 30, "output": 180 } + }, + "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, + "limit": { "context": 16385, "output": 4096 }, + "cost": { "input": 0.5, "output": 1.5, "cache_read": 1.25 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 1.1, "output": 4.4, "cache_read": 0.55 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.8, "output": 3.2 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 1, "output": 1 } + }, + "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, + "limit": { "context": 1000000, "output": 65536 }, + "cost": { "input": 0.3, "output": 1.5 } + }, + "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, + "limit": { "context": 1000000, "output": 30000 }, + "cost": { + "input": 1.25, + "output": 2.5, + "cache_read": 0.2, + "context_over_200k": { "input": 2.5, "output": 5, "cache_read": 0.4 }, + "tiers": [ + { + "input": 2.5, + "output": 5, + "cache_read": 0.4, + "tier": { "type": "context", "size": 200000 } + } + ] + } + }, + "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, + "limit": { "context": 64000, "output": 16384 }, + "cost": { "input": 0.6, "output": 1.8 } + }, + "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, + "limit": { "context": 1000000, "output": 384000 }, + "cost": { "input": 0.14, "output": 0.28, "cache_read": 0.028 } + }, + "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, + "limit": { "context": 256000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "reasoning": 15, + "cache_read": 0.75 + } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.5, "output": 2 } + }, + "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, + "limit": { "context": 8192, "output": 8192 }, + "cost": { "input": 30, "output": 60 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { + "input": 0.6, + "output": 2.2, + "cache_read": 0.11, + "cache_write": 0 + } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.95, "output": 4, "cache_read": 0.16 } + }, + "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, + "limit": { "context": 128000, "output": 32768 }, + "cost": { "input": 0.3, "output": 0.9 } + }, + "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, + "limit": { "context": 200000, "output": 32000 }, + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + "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, + "limit": { "context": 1050000, "input": 922000, "output": 128000 }, + "cost": { "input": 2.5, "output": 15, "cache_read": 0.25 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 1, + "output": 5, + "cache_read": 0.1, + "cache_write": 1.25 + } + }, + "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, + "limit": { "context": 131072, "output": 98304 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + }, + "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, + "limit": { "context": 262144, "output": 32768 }, + "cost": { "input": 0.2, "output": 1.6, "reasoning": 4.8 } + }, + "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, + "limit": { "context": 2000000, "output": 30000 }, + "cost": { "input": 0.2, "output": 0.5, "cache_read": 0.05 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 1.5, "output": 7.5 } + }, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } + }, + "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, + "limit": { "context": 1000000, "output": 384000 }, + "cost": { "input": 1.74, "output": 3.48, "cache_read": 0.145 } + }, + "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, + "limit": { "context": 1047576, "output": 32768 }, + "cost": { "input": 0.1, "output": 0.4, "cache_read": 0.03 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.45, "output": 2.25 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { + "input": 0.3, + "output": 1.2, + "cache_read": 0.03, + "cache_write": 0.375 + } + }, + "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, + "limit": { "context": 1048576, "output": 131072 }, + "cost": { + "input": 1, + "output": 3, + "cache_read": 0.2, + "context_over_200k": { "input": 2, "output": 6, "cache_read": 0.4 }, + "tiers": [ + { + "input": 2, + "output": 6, + "cache_read": 0.4, + "tier": { "type": "context", "size": 256000 } + } + ] + } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 2, "output": 8, "cache_read": 0.5 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 272000 }, + "cost": { "input": 15, "output": 120 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 2.5, "output": 10, "cache_read": 1.25 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { + "input": 0.6, + "output": 2.4, + "cache_read": 0.06, + "cache_write": 0.375 + } + }, + "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, + "limit": { "context": 1000000, "output": 16384 }, + "cost": { "input": 0.05, "output": 0.2, "reasoning": 0.5 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 0.1, + "output": 0.4, + "cache_read": 0.01, + "input_audio": 0.3 + } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.125 } + }, + "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, + "limit": { "context": 200000, "output": 131072 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.1, "output": 0.3, "cache_read": 0.01 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { + "input": 1.3, + "output": 7.8, + "cache_read": 0.13, + "cache_write": 1.625 + } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10 } + }, + "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, + "limit": { "context": 200000, "output": 32000 }, + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 2.8, "output": 8.4 } + }, + "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, + "limit": { "context": 1050000, "input": 922000, "output": 128000 }, + "cost": { + "input": 30, + "output": 180, + "context_over_200k": { "input": 60, "output": 270 }, + "tiers": [ + { + "input": 60, + "output": 270, + "tier": { "type": "context", "size": 272000 } + } + ] + } + }, + "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, + "limit": { "context": 1047576, "output": 32768 }, + "cost": { "input": 2, "output": 8, "cache_read": 0.5 } + }, + "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, + "limit": { "context": 128000, "output": 128000 }, + "cost": { "input": 0.1, "output": 0.3 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.6, "output": 2.5, "cache_read": 0.15 } + }, + "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, + "limit": { "context": 1048576, "output": 8192 }, + "cost": { "input": 0.075, "output": 0.3 } + }, + "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, + "limit": { "context": 1047576, "output": 32768 }, + "cost": { "input": 0.4, "output": 1.6, "cache_read": 0.1 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.125 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 3, "output": 15, "cache_read": 0.75 } + }, + "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, + "limit": { "context": 2000000, "output": 30000 }, + "cost": { "input": 0.2, "output": 0.5, "cache_read": 0.05 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 2, "output": 8 } + } + } + }, + "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, + "limit": { "context": 1048576, "output": 8192 }, + "cost": { "input": 0.15, "output": 0.6, "cache_read": 0.025 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 2, + "output": 12, + "cache_read": 0.2, + "tiers": [ + { + "input": 4, + "output": 18, + "cache_read": 0.4, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { "input": 4, "output": 18, "cache_read": 0.4 } + } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 0.3, + "output": 2.5, + "cache_read": 0.075, + "cache_write": 0.383 + } + }, + "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, + "limit": { "context": 65536, "output": 65536 }, + "cost": { "input": 0.1, "output": 0.4, "cache_read": 0.025 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 0.3, + "output": 2.5, + "cache_read": 0.075, + "cache_write": 0.383 + } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 0.3, + "output": 2.5, + "cache_read": 0.075, + "cache_write": 0.383 + } + }, + "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, + "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" + }, + "cost": { "input": 1, "output": 3.2, "cache_read": 0.1 } + }, + "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, + "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" + }, + "cost": { "input": 0.6, "output": 2.2 } + }, + "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, + "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" + }, + "cost": { "input": 0.56, "output": 1.68, "cache_read": 0.056 } + }, + "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, + "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" + }, + "cost": { "input": 0.6, "output": 1.7 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.09, "output": 0.36 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.07, "output": 0.25 } + }, + "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, + "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" + }, + "cost": { "input": 0.72, "output": 0.72 } + }, + "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, + "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" + }, + "cost": { "input": 0.35, "output": 1.15 } + }, + "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, + "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" + }, + "cost": { "input": 0.22, "output": 0.88 } + }, + "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, + "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" + }, + "cost": { "input": 0.6, "output": 2.5 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { "input": 0.1, "output": 0.4, "cache_read": 0.025 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.31 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "provider": { "npm": "@ai-sdk/google-vertex/anthropic" }, + "cost": { + "input": 1, + "output": 5, + "cache_read": 0.1, + "cache_write": 1.25 + } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 2, + "output": 12, + "cache_read": 0.2, + "context_over_200k": { "input": 4, "output": 18, "cache_read": 0.4 }, + "tiers": [ + { + "input": 4, + "output": 18, + "cache_read": 0.4, + "tier": { "type": "context", "size": 200000 } + } + ] + } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "provider": { "npm": "@ai-sdk/google-vertex/anthropic" }, + "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 + }, + "tiers": [ + { + "input": 6, + "output": 22.5, + "cache_read": 0.6, + "cache_write": 7.5, + "tier": { "type": "context", "size": 200000 } + } + ] + } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { "input": 0.1, "output": 0.4, "cache_read": 0.025 } + }, + "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, + "limit": { "context": 200000, "output": 8192 }, + "provider": { "npm": "@ai-sdk/google-vertex/anthropic" }, + "cost": { + "input": 0.8, + "output": 4, + "cache_read": 0.08, + "cache_write": 1 + } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 0.25, + "output": 1.5, + "cache_read": 0.025, + "input_audio": 0.5 + } + }, + "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, + "limit": { "context": 200000, "output": 8192 }, + "provider": { "npm": "@ai-sdk/google-vertex/anthropic" }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 2, + "output": 12, + "cache_read": 0.2, + "context_over_200k": { "input": 4, "output": 18, "cache_read": 0.4 }, + "tiers": [ + { + "input": 4, + "output": 18, + "cache_read": 0.4, + "tier": { "type": "context", "size": 200000 } + } + ] + } + }, + "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, + "limit": { "context": 200000, "output": 32000 }, + "provider": { "npm": "@ai-sdk/google-vertex/anthropic" }, + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 0.5, + "output": 3, + "cache_read": 0.05, + "input_audio": 1 + } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { "input": 0.15, "output": 0.6, "cache_read": 0.0375 } + }, + "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, + "limit": { "context": 2048, "output": 3072 }, + "cost": { "input": 0.15, "output": 0 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125, + "context_over_200k": { + "input": 2.5, + "output": 15, + "cache_read": 0.25 + }, + "tiers": [ + { + "input": 2.5, + "output": 15, + "cache_read": 0.25, + "tier": { "type": "context", "size": 200000 } + } + ] + } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.31 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "provider": { "npm": "@ai-sdk/google-vertex/anthropic" }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 0.25, + "output": 1.5, + "cache_read": 0.025, + "input_audio": 0.5 + } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "provider": { "npm": "@ai-sdk/google-vertex/anthropic" }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 200000, "output": 32000 }, + "provider": { "npm": "@ai-sdk/google-vertex/anthropic" }, + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "provider": { "npm": "@ai-sdk/google-vertex/anthropic" }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { "input": 0.15, "output": 0.6, "cache_read": 0.0375 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "provider": { "npm": "@ai-sdk/google-vertex/anthropic" }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 0.1, + "output": 0.4, + "cache_read": 0.01, + "input_audio": 0.3 + } + }, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "provider": { "npm": "@ai-sdk/google-vertex/anthropic" }, + "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 + }, + "tiers": [ + { + "input": 10, + "output": 37.5, + "cache_read": 1, + "cache_write": 12.5, + "tier": { "type": "context", "size": 200000 } + } + ] + } + }, + "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, + "limit": { "context": 1048576, "output": 8192 }, + "cost": { "input": 0.075, "output": 0.3 } + }, + "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, + "limit": { "context": 1000000, "output": 128000 }, + "provider": { "npm": "@ai-sdk/google-vertex/anthropic" }, + "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 + }, + "tiers": [ + { + "input": 10, + "output": 37.5, + "cache_read": 1, + "cache_write": 12.5, + "tier": { "type": "context", "size": 200000 } + } + ] + } + } + } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.06, "output": 0.4 } + }, + "@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, + "limit": { "context": 256000, "output": 256000 }, + "cost": { "input": 0.5, "output": 1.5 } + }, + "@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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.2, "output": 0.3 } + }, + "@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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.35, "output": 0.75 } + }, + "@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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.27, "output": 0.85 } + }, + "@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, + "limit": { "context": 256000, "output": 16384 }, + "cost": { "input": 0.1, "output": 0.3 } + }, + "@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, + "limit": { "context": 256000, "output": 256000 }, + "cost": { "input": 0.6, "output": 3, "cache_read": 0.1 } + }, + "@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, + "limit": { "context": 256000, "output": 256000 }, + "cost": { "input": 0.95, "output": 4, "cache_read": 0.16 } + } + } + }, + "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, + "limit": { "context": 8192, "output": 8192 }, + "status": "deprecated", + "cost": { "input": 0.2, "output": 0.2 } + }, + "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, + "limit": { "context": 32768, "output": 32768 }, + "status": "deprecated", + "cost": { "input": 0.79, "output": 0.79 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "status": "deprecated", + "cost": { "input": 0.75, "output": 0.99 } + }, + "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, + "limit": { "context": 8192, "output": 8192 }, + "status": "deprecated", + "cost": { "input": 0.2, "output": 0.2 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.59, "output": 0.79 } + }, + "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, + "limit": { "context": 4096, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 448, "output": 448 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.05, "output": 0.08 } + }, + "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, + "limit": { "context": 8192, "output": 8192 }, + "status": "deprecated", + "cost": { "input": 0.59, "output": 0.79 } + }, + "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, + "limit": { "context": 131072, "output": 16384 }, + "status": "deprecated", + "cost": { "input": 0.29, "output": 0.39 } + }, + "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, + "limit": { "context": 448, "output": 448 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 8192, "output": 8192 }, + "status": "deprecated", + "cost": { "input": 0.05, "output": 0.08 } + }, + "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, + "limit": { "context": 4000, "output": 50000 }, + "cost": { "input": 40, "output": 0 } + }, + "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, + "limit": { "context": 4000, "output": 50000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.11, "output": 0.34 } + }, + "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, + "limit": { "context": 512, "output": 512 }, + "cost": { "input": 0.03, "output": 0.03 } + }, + "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, + "limit": { "context": 131072, "output": 1024 }, + "status": "deprecated", + "cost": { "input": 0.2, "output": 0.2 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "status": "deprecated", + "cost": { "input": 0.2, "output": 0.6 } + }, + "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, + "limit": { "context": 512, "output": 512 }, + "cost": { "input": 0.04, "output": 0.04 } + }, + "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, + "limit": { "context": 131072, "output": 65536 }, + "cost": { "input": 0.075, "output": 0.3 } + }, + "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, + "limit": { "context": 131072, "output": 65536 }, + "cost": { "input": 0.075, "output": 0.3, "cache_read": 0.037 } + }, + "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, + "limit": { "context": 131072, "output": 65536 }, + "cost": { "input": 0.15, "output": 0.6 } + }, + "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, + "limit": { "context": 131072, "output": 40960 }, + "cost": { "input": 0.29, "output": 0.59 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 131072, "output": 16384 }, + "status": "deprecated", + "cost": { "input": 1, "output": 3 } + }, + "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, + "limit": { "context": 262144, "output": 16384 }, + "cost": { "input": 1, "output": 3 } + } + } + }, + "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, + "limit": { "context": 128000, "output": 128000 }, + "cost": { "input": 0.15, "output": 0.15 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 1.75, "output": 14, "cache_read": 0.175 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 1.5, "output": 6, "cache_read": 0.375 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0.08, "output": 0.32, "input_audio": 4 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0.13, "output": 0.52 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0.2, "output": 0.78 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 8192 }, + "status": "beta", + "cost": { "input": 0.2, "output": 0.5, "cache_read": 0.05 } + }, + "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, + "limit": { "context": 4096, "output": 1024 }, + "cost": { "input": 0.17, "output": 0.68 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0.04, "output": 0.04 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "provider": { + "npm": "@ai-sdk/anthropic", + "api": "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1" + }, + "cost": { + "input": 1, + "output": 5, + "cache_read": 0.1, + "cache_write": 1.25 + } + }, + "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, + "limit": { "context": 128000, "output": 32768 }, + "cost": { "input": 0.3, "output": 0.61 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "provider": { + "npm": "@ai-sdk/openai-compatible", + "api": "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/models", + "shape": "completions" + }, + "cost": { "input": 0.6, "output": 3 } + }, + "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, + "limit": { "context": 128000, "output": 32768 }, + "cost": { "input": 0.71, "output": 0.71 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 1.14, "output": 4.56 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.13 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0.16, "output": 0.64 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 1.75, "output": 14, "cache_read": 0.175 } + }, + "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, + "limit": { "context": 128000, "output": 65536 }, + "cost": { "input": 1.1, "output": 4.4, "cache_read": 0.55 } + }, + "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, + "limit": { "context": 8191, "output": 3072 }, + "cost": { "input": 0.13, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0.13, "output": 0.52 } + }, + "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, + "limit": { "context": 32000, "output": 4096 }, + "cost": { "input": 0.125, "output": 0.5 } + }, + "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, + "limit": { "context": 272000, "output": 128000 }, + "cost": { "input": 0.25, "output": 2, "cache_read": 0.03 } + }, + "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, + "limit": { "context": 272000, "output": 128000 }, + "cost": { "input": 0.05, "output": 0.4, "cache_read": 0.01 } + }, + "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, + "limit": { "context": 8192, "output": 2048 }, + "cost": { "input": 2.68, "output": 3.54 } + }, + "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, + "limit": { "context": 8192, "output": 2048 }, + "cost": { "input": 0.15, "output": 0.6 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.75, "output": 14, "cache_read": 0.175 } + }, + "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, + "limit": { "context": 8192, "output": 1536 }, + "cost": { "input": 0.1, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 2.04, "output": 2.04 } + }, + "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, + "limit": { "context": 163840, "output": 163840 }, + "cost": { "input": 1.35, "output": 5.4 } + }, + "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, + "limit": { "context": 128000, "input": 128000, "output": 8192 }, + "status": "beta", + "cost": { "input": 0.2, "output": 0.5, "cache_read": 0.05 } + }, + "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, + "limit": { "context": 128000, "output": 128000 }, + "cost": { "input": 0.58, "output": 1.68 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.75, "output": 14, "cache_read": 0.125 } + }, + "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, + "limit": { "context": 128000, "output": 32768 }, + "cost": { "input": 2, "output": 6 } + }, + "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, + "limit": { "context": 200000, "output": 32000 }, + "provider": { + "npm": "@ai-sdk/anthropic", + "api": "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1" + }, + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + "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, + "limit": { "context": 256000, "output": 8000 }, + "cost": { "input": 2.5, "output": 10 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0.37, "output": 0.37 } + }, + "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, + "limit": { "context": 128000, "output": 32768 }, + "cost": { "input": 5.33, "output": 16 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.125 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 10, "output": 30 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.75, "output": 14, "cache_read": 0.175 } + }, + "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, + "limit": { "context": 128000, "output": 1536 }, + "cost": { "input": 0.12, "output": 0 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 0.25, "output": 2, "cache_read": 0.025 } + }, + "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, + "limit": { "context": 16384, "output": 16384 }, + "cost": { "input": 0.5, "output": 1.5 } + }, + "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, + "limit": { "context": 128000, "output": 32768 }, + "cost": { "input": 16.5, "output": 66, "cache_read": 8.25 } + }, + "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, + "limit": { "context": 512, "output": 1024 }, + "cost": { "input": 0.1, "output": 0 } + }, + "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, + "limit": { "context": 262000, "output": 8192 }, + "status": "beta", + "cost": { "input": 2, "output": 6 } + }, + "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, + "limit": { "context": 272000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.125 } + }, + "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, + "limit": { "context": 2000000, "output": 30000 }, + "cost": { "input": 0.2, "output": 0.5, "cache_read": 0.05 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 15, "output": 60, "cache_read": 7.5 } + }, + "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, + "limit": { "context": 128000, "output": 32768 }, + "cost": { "input": 0.1, "output": 0.3 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.14, "output": 0 } + }, + "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, + "limit": { "context": 16384, "output": 16384 }, + "cost": { "input": 1, "output": 2 } + }, + "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, + "limit": { "context": 8191, "output": 1536 }, + "cost": { "input": 0.02, "output": 0 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.56, "output": 1.68 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "provider": { + "npm": "@ai-sdk/anthropic", + "api": "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1" + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } + }, + "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, + "limit": { "context": 4096, "output": 1024 }, + "cost": { "input": 0.13, "output": 0.52 } + }, + "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, + "limit": { "context": 128000, "output": 32768 }, + "cost": { "input": 2.68, "output": 3.54 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0.075, "output": 0.3 } + }, + "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, + "limit": { "context": 8192, "output": 8192 }, + "cost": { "input": 60, "output": 120 } + }, + "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, + "limit": { "context": 8192, "output": 2048 }, + "cost": { "input": 0.3, "output": 0.61 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "provider": { + "npm": "@ai-sdk/openai-compatible", + "api": "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/models", + "shape": "completions" + }, + "cost": { "input": 0.95, "output": 4 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.13 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0.075, "output": 0.3 } + }, + "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, + "limit": { "context": 262000, "output": 8192 }, + "status": "beta", + "cost": { "input": 2, "output": 6 } + }, + "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, + "limit": { "context": 4096, "output": 4096 }, + "cost": { "input": 1.5, "output": 2 } + }, + "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, + "limit": { "context": 200000, "output": 128000 }, + "provider": { + "npm": "@ai-sdk/anthropic", + "api": "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1" + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25, + "tiers": [ + { + "input": 10, + "output": 37.5, + "cache_read": 1, + "cache_write": 12.5, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { + "input": 10, + "output": 37.5, + "cache_read": 1, + "cache_write": 12.5 + } + } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0.15, "output": 0.6 } + }, + "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, + "limit": { "context": 128000, "output": 128000 }, + "cost": { "input": 0.58, "output": 1.68 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0.17, "output": 0.68 } + }, + "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, + "limit": { "context": 16384, "output": 16384 }, + "cost": { "input": 3, "output": 4 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "provider": { + "npm": "@ai-sdk/anthropic", + "api": "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1" + }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0.125, "output": 0.5 } + }, + "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, + "limit": { "context": 272000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.13 } + }, + "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, + "limit": { "context": 32768, "output": 32768 }, + "cost": { "input": 60, "output": 120 } + }, + "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, + "limit": { "context": 512, "output": 1024 }, + "cost": { "input": 0.1, "output": 0 } + }, + "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, + "limit": { "context": 32000, "output": 4096 }, + "cost": { "input": 0.125, "output": 0.5 } + }, + "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, + "limit": { "context": 128000, "output": 128000 }, + "cost": { "input": 0.4, "output": 2 } + }, + "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, + "limit": { "context": 4096, "output": 4096 }, + "cost": { "input": 1.5, "output": 2 } + }, + "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, + "limit": { "context": 163840, "output": 163840 }, + "cost": { "input": 1.35, "output": 5.4 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.6, "output": 2.5, "cache_read": 0.15 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.125 } + }, + "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, + "limit": { "context": 256000, "output": 256000 }, + "cost": { "input": 0.3, "output": 0.9 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0.25, "output": 1 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 1.35, "output": 5.4 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.125 } + }, + "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, + "limit": { "context": 1000000, "output": 64000 }, + "provider": { + "npm": "@ai-sdk/anthropic", + "api": "https://${AZURE_RESOURCE_NAME}.services.ai.azure.com/anthropic/v1" + }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 1050000, "input": 922000, "output": 128000 }, + "cost": { + "input": 5, + "output": 30, + "cache_read": 0.5, + "context_over_200k": { "input": 10, "output": 45, "cache_read": 1 }, + "tiers": [ + { + "input": 10, + "output": 45, + "cache_read": 1, + "tier": { "type": "context", "size": 272000 } + } + ] + } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 10, "output": 30 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.15, "output": 0.6, "cache_read": 0.08 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 0.75, "output": 4.5, "cache_read": 0.075 } + }, + "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, + "limit": { "context": 128000, "output": 4000 }, + "cost": { "input": 0.15, "output": 0.6 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 1.1, "output": 4.4, "cache_read": 0.28 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 0.2, "output": 1.25, "cache_read": 0.02 } + }, + "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, + "limit": { "context": 256000, "output": 10000 }, + "cost": { "input": 0.2, "output": 1.5, "cache_read": 0.02 } + }, + "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, + "limit": { "context": 1050000, "input": 922000, "output": 128000 }, + "cost": { + "input": 30, + "output": 180, + "context_over_200k": { "input": 60, "output": 270 }, + "tiers": [ + { + "input": 60, + "output": 270, + "tier": { "type": "context", "size": 272000 } + } + ] + } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 1.1, "output": 4.4, "cache_read": 0.55 } + }, + "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, + "limit": { "context": 256000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "reasoning": 15, + "cache_read": 0.75 + } + }, + "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, + "limit": { "context": 1050000, "input": 922000, "output": 128000 }, + "cost": { + "input": 2.5, + "output": 15, + "cache_read": 0.25, + "context_over_200k": { + "input": 5, + "output": 22.5, + "cache_read": 0.5 + }, + "tiers": [ + { + "input": 5, + "output": 22.5, + "cache_read": 0.5, + "tier": { "type": "context", "size": 272000 } + } + ] + } + }, + "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, + "limit": { "context": 1047576, "output": 32768 }, + "cost": { "input": 0.1, "output": 0.4, "cache_read": 0.03 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { + "input": 0.3, + "output": 0.5, + "reasoning": 0.5, + "cache_read": 0.075 + } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 2, "output": 8, "cache_read": 0.5 } + }, + "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, + "limit": { "context": 400000, "output": 272000 }, + "cost": { "input": 15, "output": 120 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 2.5, "output": 10, "cache_read": 1.25 } + }, + "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, + "limit": { "context": 128000, "output": 4000 }, + "cost": { "input": 2.5, "output": 10 } + }, + "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, + "limit": { "context": 1047576, "output": 32768 }, + "cost": { "input": 2, "output": 8, "cache_read": 0.5 } + }, + "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, + "limit": { "context": 1047576, "output": 32768 }, + "cost": { "input": 0.4, "output": 1.6, "cache_read": 0.1 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 3, "output": 15, "cache_read": 0.75 } + }, + "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, + "limit": { "context": 2000000, "output": 30000 }, + "cost": { "input": 0.2, "output": 0.5, "cache_read": 0.05 } + } + } + }, + "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, + "limit": { "context": 256000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.75, + "cache_write": 15 + } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.03, "output": 0.14 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 0.25, "output": 2, "cache_read": 0.025 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 0.05, "output": 0.4, "cache_read": 0.005 } + }, + "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, + "limit": { "context": 131072, "output": 65536 }, + "cost": { "input": 0.05, "output": 0.2 } + }, + "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, + "limit": { "context": 400000, "output": 128000 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.125 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.15, "output": 0.6 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0.95, "output": 3.15 } + }, + "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, + "limit": { "context": 262144, "output": 66536 }, + "cost": { "input": 0.3, "output": 1.2 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.31 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { "input": 0.3, "output": 2.5, "cache_read": 0.0375 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.55, "output": 2.2 } + }, + "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, + "limit": { "context": 1047576, "output": 32768 }, + "cost": { "input": 2, "output": 8, "cache_read": 0.5 } + }, + "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, + "limit": { "context": 200000, "output": 32000 }, + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + } + } + }, + "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, + "limit": { "context": 32000, "output": 4096 }, + "cost": { "input": 0.09, "output": 0.09 } + }, + "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, + "limit": { "context": 218000, "output": 8192 }, + "cost": { "input": 1.64, "output": 1.91 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0.16, "output": 0.27 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0.49, "output": 0.71 } + }, + "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, + "limit": { "context": 131000, "output": 8192 }, + "cost": { "input": 0.49, "output": 0.71 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0.49, "output": 0.71 } + }, + "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, + "limit": { "context": 37000, "output": 8192 }, + "cost": { "input": 0.49, "output": 0.71 } + }, + "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, + "limit": { "context": 4096, "output": 4096 }, + "cost": { "input": 0.02, "output": 0.02 } + } + } + }, + "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, + "limit": { "context": 262144, "output": 32768 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + }, + "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, + "limit": { "context": 202752, "output": 16384 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + }, + "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, + "limit": { "context": 131072, "output": 16384 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + }, + "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, + "limit": { "context": 131072, "output": 16384 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + }, + "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, + "limit": { "context": 131072, "output": 16384 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + }, + "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, + "limit": { "context": 204800, "output": 32768 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + }, + "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, + "limit": { "context": 131072, "output": 16384 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + }, + "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, + "limit": { "context": 131072, "output": 16384 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + } + } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 0, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 32000, "output": 2560 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 128000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 32768 }, + "cost": { "input": 0, "output": 0 } + } + } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { "input": 0.1, "output": 0.4, "cache_read": 0.025 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.31 } + }, + "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, + "limit": { "context": 131072, "output": 65536 }, + "cost": { + "input": 0.5, + "output": 2, + "input_audio": 3, + "output_audio": 12 + } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 2, + "output": 12, + "cache_read": 0.2, + "tiers": [ + { + "input": 4, + "output": 18, + "cache_read": 0.4, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { "input": 4, "output": 18, "cache_read": 0.4 } + } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { "input": 0.1, "output": 0.4, "cache_read": 0.025 } + }, + "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, + "limit": { "context": 1000000, "output": 8192 }, + "cost": { "input": 0.075, "output": 0.3, "cache_read": 0.01875 } + }, + "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, + "limit": { "context": 1000000, "output": 8192 }, + "cost": { "input": 1.25, "output": 5, "cache_read": 0.3125 } + }, + "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, + "limit": { "context": 8192, "output": 2000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 0.25, + "output": 1.5, + "cache_read": 0.025, + "input_audio": 0.5 + } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 2, + "output": 12, + "cache_read": 0.2, + "tiers": [ + { + "input": 4, + "output": 18, + "cache_read": 0.4, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { "input": 4, "output": 18, "cache_read": 0.4 } + } + }, + "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, + "limit": { "context": 1048576, "output": 8192 }, + "cost": { "input": 0.1, "output": 0.4, "cache_read": 0.025 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 0.5, + "output": 3, + "cache_read": 0.05, + "input_audio": 1 + } + }, + "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, + "limit": { "context": 8000, "output": 16000 }, + "cost": { "input": 0.5, "output": 10 } + }, + "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, + "limit": { "context": 1000000, "output": 64000 }, + "cost": { + "input": 2, + "output": 12, + "cache_read": 0.2, + "tiers": [ + { + "input": 4, + "output": 18, + "cache_read": 0.4, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { "input": 4, "output": 18, "cache_read": 0.4 } + } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { "input": 0.15, "output": 0.6, "cache_read": 0.0375 } + }, + "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, + "limit": { "context": 2048, "output": 3072 }, + "cost": { "input": 0.15, "output": 0 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125, + "tiers": [ + { + "input": 2.5, + "output": 15, + "cache_read": 0.25, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { + "input": 2.5, + "output": 15, + "cache_read": 0.25 + } + } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 0.3, + "output": 2.5, + "cache_read": 0.075, + "input_audio": 1 + } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { "input": 1.25, "output": 10, "cache_read": 0.31 } + }, + "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, + "limit": { "context": 32768, "output": 32768 }, + "cost": { "input": 0.3, "output": 30, "cache_read": 0.075 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 0.1, + "output": 0.4, + "cache_read": 0.025, + "input_audio": 0.3 + } + }, + "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, + "limit": { "context": 32768, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 0.3, + "output": 2.5, + "cache_read": 0.03, + "input_audio": 1 + } + }, + "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, + "limit": { "context": 8192, "output": 2000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 131072, "output": 32768 }, + "cost": { "input": 0.5, "output": 60 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 0.25, + "output": 1.5, + "cache_read": 0.025, + "input_audio": 0.5 + } + }, + "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, + "limit": { "context": 32768, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { "input": 0.15, "output": 0.6, "cache_read": 0.0375 } + }, + "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, + "limit": { "context": 8000, "output": 16000 }, + "cost": { "input": 1, "output": 20 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 0.3, + "output": 2.5, + "cache_read": 0.075, + "input_audio": 1 + } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 0.1, + "output": 0.4, + "cache_read": 0.01, + "input_audio": 0.3 + } + }, + "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, + "limit": { "context": 32768, "output": 32768 }, + "cost": { "input": 0.3, "output": 30, "cache_read": 0.075 } + }, + "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, + "limit": { "context": 1000000, "output": 8192 }, + "cost": { "input": 0.0375, "output": 0.15, "cache_read": 0.01 } + }, + "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, + "limit": { "context": 128000, "output": 8000 }, + "cost": { + "input": 0.5, + "output": 2, + "input_audio": 3, + "output_audio": 12 + } + }, + "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, + "limit": { "context": 1048576, "output": 8192 }, + "cost": { "input": 0.075, "output": 0.3 } + } + } + }, + "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, + "limit": { "context": 131072, "output": 32000 }, + "cost": { "input": 0.55, "output": 2.2 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0.29, "output": 1.16 } + }, + "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, + "limit": { "context": 131072, "output": 8192 }, + "cost": { "input": 0.28, "output": 1.1 } + } + } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.6, "output": 2.5, "cache_read": 0.15 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.6, "output": 3, "cache_read": 0.1 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 1.15, "output": 8, "cache_read": 0.15 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.95, "output": 4, "cache_read": 0.16 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 2.4, "output": 10, "cache_read": 0.6 } + }, + "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, + "limit": { "context": 131072, "output": 16384 }, + "cost": { "input": 0.6, "output": 2.5, "cache_read": 0.15 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.6, "output": 2.5, "cache_read": 0.15 } + } + } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0.77, "output": 2.75 } + }, + "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, + "limit": { "context": 32000, "output": 8192 }, + "cost": { "input": 0.33, "output": 0.33 } + }, + "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, + "limit": { "context": 262144, "output": 131072 }, + "cost": { "input": 1.65, "output": 5.5 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0.99, "output": 0.99 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0.44, "output": 0.99 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0.275, "output": 0.55 } + } + } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 65536, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 65536, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 256000, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 256000, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 4096, "output": 1024 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 8192, "output": 2048 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 4096, "output": 1024 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 16000, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 65536, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 4096 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 65536 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 32768 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 0, "output": 0 } + }, + "openai/gpt-4.1-nano": { + "id": "openai/gpt-4.1-nano", + "name": "GPT-4.1-nano", + "family": "gpt-nano", + "attachment": true, + "reasoning": false, + "tool_call": true, + "temperature": true, + "knowledge": "2024-04", + "release_date": "2025-04-14", + "last_updated": "2025-04-14", + "modalities": { "input": ["text", "image"], "output": ["text"] }, + "open_weights": false, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 200000, "output": 100000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 32768 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 32768 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 8192, "output": 2048 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 32768 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 32768 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 8192, "output": 2048 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 8192, "output": 2048 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 32768 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 32768 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 128000, "output": 32768 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 32000, "output": 8192 }, + "cost": { "input": 0, "output": 0 } + } + } + }, + "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, + "limit": { "context": 200000, "output": 200000 }, + "cost": { "input": 1.1, "output": 3.6 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.69, "output": 3.22 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.69, "output": 4.14 } + }, + "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, + "limit": { "context": 200000, "output": 200000 }, + "cost": { "input": 1.1, "output": 3.6 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.05, "output": 0.1 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.52, "output": 2.59 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.69, "output": 4.14 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.05, "output": 0.1 } + }, + "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, + "limit": { "context": 200000, "output": 200000 }, + "cost": { "input": 1.1, "output": 3.6 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.12, "output": 0.35 } + }, + "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, + "limit": { "context": 16384, "output": 16384 }, + "cost": { "input": 0.03, "output": 0.16 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.69, "output": 3.22 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.52, "output": 2.59 } + }, + "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, + "limit": { "context": 196608, "output": 196608 }, + "cost": { "input": 0.35, "output": 1.38 } + } + } + }, + "sarvam": { + "id": "sarvam", + "env": ["SARVAM_API_KEY"], + "npm": "@ai-sdk/openai-compatible", + "api": "https://api.sarvam.ai/v1", + "name": "Sarvam AI", + "doc": "https://docs.sarvam.ai/api-reference-docs/getting-started/models", + "models": { + "sarvam-105b": { + "id": "sarvam-105b", + "name": "Sarvam-105B", + "family": "sarvam", + "attachment": false, + "reasoning": true, + "tool_call": true, + "interleaved": { "field": "reasoning_content" }, + "temperature": true, + "release_date": "2026-02-18", + "last_updated": "2026-03-06", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 131072, "output": 131072 } + }, + "sarvam-30b": { + "id": "sarvam-30b", + "name": "Sarvam-30B", + "family": "sarvam", + "attachment": false, + "reasoning": true, + "tool_call": true, + "interleaved": { "field": "reasoning_content" }, + "temperature": true, + "release_date": "2026-02-18", + "last_updated": "2026-03-06", + "modalities": { "input": ["text"], "output": ["text"] }, + "open_weights": true, + "limit": { "context": 65536, "output": 65536 } + } + } + }, + "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, + "limit": { "context": 32768, "output": 32768 }, + "cost": { "input": 0.15, "output": 0.15 } + }, + "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, + "limit": { "context": 262144, "output": 130000 }, + "cost": { "input": 0.6, "output": 3.6 } + }, + "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, + "limit": { "context": 1000000, "output": 500000 }, + "cost": { "input": 0.5, "output": 3 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.5, "output": 1.2 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.2, "output": 0.6 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 2, "output": 2 } + }, + "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, + "limit": { "context": 202752, "output": 131072 }, + "cost": { "input": 1.4, "output": 4.4 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.88, "output": 0.88 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 1.25, "output": 1.25 } + }, + "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, + "limit": { "context": 163839, "output": 163839 }, + "cost": { "input": 3, "output": 7 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.6, "output": 1.7 } + }, + "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, + "limit": { "context": 512000, "output": 384000 }, + "cost": { "input": 2.1, "output": 4.4, "cache_read": 0.2 } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.15, "output": 0.6 } + }, + "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, + "limit": { "context": 262144, "output": 131072 }, + "cost": { "input": 0.2, "output": 0.5 } + }, + "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, + "limit": { "context": 262144, "output": 131000 }, + "cost": { "input": 1.2, "output": 4.5, "cache_read": 0.2 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.5, "output": 2.8 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0.3, "output": 1.2, "cache_read": 0.06 } + }, + "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, + "limit": { "context": 202752, "output": 131072 }, + "cost": { "input": 0.3, "output": 1.2, "cache_read": 0.06 } + } + } + }, + "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, + "limit": { "context": 200000, "output": 32000 }, + "cost": { "input": 0.71, "output": 3.57 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 0.07, + "output": 0.43, + "tiers": [ + { + "input": 0.07, + "output": 0.43, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { "input": 0.07, "output": 0.43 } + } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { "input": 0.04, "output": 0.29 } + }, + "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, + "limit": { "context": 1000000, "output": 65000 }, + "cost": { "input": 0.57, "output": 3.43 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { "input": 0.43, "output": 2.14 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 0.25, "output": 2 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 0.14, "output": 1.14 } + }, + "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, + "limit": { "context": 1048576, "output": 65536 }, + "cost": { + "input": 0.09, + "output": 0.71, + "tiers": [ + { + "input": 0.09, + "output": 0.71, + "tier": { "type": "context", "size": 200000 } + } + ], + "context_over_200k": { "input": 0.09, "output": 0.71 } + } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { "input": 0.14, "output": 0.71 } + } + } + }, + "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, + "limit": { "context": 256000, "output": 64000 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + } + } + }, + "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, + "limit": { "context": 200000, "output": 4096 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 0.3 + } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 1, + "output": 5, + "cache_read": 0.1, + "cache_write": 1.25 + } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } + }, + "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, + "limit": { "context": 200000, "output": 4096 }, + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + "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, + "limit": { "context": 200000, "output": 8192 }, + "cost": { + "input": 0.8, + "output": 4, + "cache_read": 0.08, + "cache_write": 1 + } + }, + "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, + "limit": { "context": 200000, "output": 8192 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 1000000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 200000, "output": 32000 }, + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + "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, + "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" } + } + } + } + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } + }, + "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, + "limit": { "context": 200000, "output": 4096 }, + "cost": { + "input": 0.25, + "output": 1.25, + "cache_read": 0.03, + "cache_write": 0.3 + } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 200000, "output": 8192 }, + "cost": { + "input": 0.8, + "output": 4, + "cache_read": 0.08, + "cache_write": 1 + } + }, + "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, + "limit": { "context": 200000, "output": 32000 }, + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 200000, "output": 8192 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } + }, + "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, + "limit": { "context": 200000, "output": 32000 }, + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 1, + "output": 5, + "cache_read": 0.1, + "cache_write": 1.25 + } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "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" } + } + } + } + }, + "cost": { + "input": 5, + "output": 25, + "cache_read": 0.5, + "cache_write": 6.25 + } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + "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, + "limit": { "context": 200000, "output": 32000 }, + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + } + } + }, + "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, + "limit": { "context": 262144, "output": 32768 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 262144, "output": 16384 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 262144, "output": 131072 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 262144, "output": 131072 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 131072, "output": 98304 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 202752, "output": 98304 }, + "cost": { "input": 0, "output": 0 } + } + } + }, + "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, + "limit": { "context": 202000, "output": 202000 }, + "cost": { "input": 0.66, "output": 2, "cache_read": 0.12 } + }, + "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, + "limit": { "context": 1000000, "output": 131072 }, + "cost": { "input": 0.14, "output": 0.56, "cache_read": 0.014 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.21, "output": 1, "cache_read": 0.03 } + } + } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 1000000, "output": 64000 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + }, + "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, + "limit": { "context": 1050000, "input": 922000, "output": 128000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 400000, "input": 272000, "output": 128000 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 1000000, "output": 64000 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + }, + "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, + "limit": { "context": 200000, "output": 64000 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + }, + "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, + "limit": { "context": 1000000, "output": 64000 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + } + } + }, + "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, + "limit": { "context": 1048576, "output": 131072 }, + "cost": { + "input": 1, + "output": 3, + "cache_read": 0.2, + "tiers": [ + { + "input": 2, + "output": 6, + "cache_read": 0.4, + "tier": { "type": "context", "size": 256000 } + } + ], + "context_over_200k": { "input": 2, "output": 6, "cache_read": 0.4 } + } + }, + "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, + "limit": { "context": 262144, "output": 131072 }, + "cost": { "input": 0.4, "output": 2, "cache_read": 0.08 } + }, + "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, + "limit": { "context": 1048576, "output": 131072 }, + "cost": { + "input": 0.4, + "output": 2, + "cache_read": 0.08, + "tiers": [ + { + "input": 0.8, + "output": 4, + "cache_read": 0.16, + "tier": { "type": "context", "size": 256000 } + } + ], + "context_over_200k": { "input": 0.8, "output": 4, "cache_read": 0.16 } + } + }, + "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, + "limit": { "context": 1048576, "output": 131072 }, + "cost": { + "input": 1, + "output": 3, + "cache_read": 0.2, + "tiers": [ + { + "input": 2, + "output": 6, + "cache_read": 0.4, + "tier": { "type": "context", "size": 256000 } + } + ], + "context_over_200k": { "input": 2, "output": 6, "cache_read": 0.4 } + } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.1, "output": 0.3, "cache_read": 0.01 } + } + } + }, + "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, + "limit": { "context": 131072, "output": 131072 }, + "cost": { "input": 0.045, "output": 0.15 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 2.5, "output": 1.7 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 1.039, "output": 0.54825 } + }, + "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, + "limit": { "context": 8192, "output": 8192 }, + "cost": { "input": 0.2, "output": 0.7 } + }, + "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, + "limit": { "context": 131072, "output": 16384 }, + "cost": { "input": 0.045, "output": 0.18 } + }, + "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, + "limit": { "context": 131072, "output": 16384 }, + "cost": { "input": 0.09, "output": 0.36 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0.3, "output": 1.2 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0.11458, "output": 0.74812 } + }, + "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, + "limit": { "context": 262144, "output": 131072 }, + "cost": { "input": 0.36, "output": 1.3 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.3, "output": 0.5 } + }, + "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, + "limit": { "context": 32768, "output": 4096 }, + "cost": { "input": 0.658, "output": 1.11 } + }, + "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, + "limit": { "context": 262144, "output": 262144 }, + "cost": { "input": 0.95, "output": 4 } + } + } + }, + "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, + "limit": { "context": 196608, "output": 128000 }, + "cost": { "input": 0.3, "output": 1.2 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { + "input": 0.3, + "output": 1.2, + "cache_read": 0.03, + "cache_write": 0.375 + } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { + "input": 0.3, + "output": 1.2, + "cache_read": 0.06, + "cache_write": 0.375 + } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { + "input": 0.6, + "output": 2.4, + "cache_read": 0.06, + "cache_write": 0.375 + } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { "input": 0.3, "output": 1.2 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { + "input": 0.6, + "output": 2.4, + "cache_read": 0.06, + "cache_write": 0.375 + } + } + } + }, + "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, + "limit": { "context": 120000, "output": 120000 }, + "cost": { "input": 0.5, "output": 2.2 } + }, + "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, + "limit": { "context": 32768, "output": 8192 }, + "cost": { "input": 0.1, "output": 0.1 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.6, "output": 2.7 } + }, + "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, + "limit": { "context": 32768, "output": 8192 }, + "cost": { "input": 0.12, "output": 0.12 } + }, + "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, + "limit": { "context": 256000, "output": 16384 }, + "cost": { "input": 0.75, "output": 3 } + }, + "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, + "limit": { "context": 262144, "output": 16384 }, + "cost": { "input": 0.9, "output": 3.6 } + }, + "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, + "limit": { "context": 8192, "output": 4096 }, + "cost": { "input": 0.5, "output": 2 } + }, + "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, + "limit": { "context": 262144, "output": 16384 }, + "cost": { "input": 0.3, "output": 1.2 } + }, + "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, + "limit": { "context": 190000, "output": 64000 }, + "cost": { "input": 0.8, "output": 3.5 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 0.4, "output": 1.8 } + }, + "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, + "limit": { "context": 262144, "output": 8192 }, + "cost": { "input": 0.15, "output": 0.6 } + }, + "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, + "limit": { "context": 128000, "output": 16384 }, + "cost": { "input": 1, "output": 4.2 } + }, + "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, + "limit": { "context": 120000, "output": 120000 }, + "cost": { "input": 0.05, "output": 0.25 } + } + } + }, + "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, + "limit": { "context": 8192, "output": 16384 }, + "cost": { "input": 0, "output": 0 } + }, + "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, + "limit": { "context": 262144, "output": 65536 }, + "cost": { "input": 0, "output": 0, "cache_read": 0 } + }, + "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, + "limit": { "context": 1048576, "output": 131072 }, + "cost": { "input": 0, "output": 0, "cache_read": 0 } + }, + "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, + "limit": { "context": 1048576, "output": 131072 }, + "cost": { "input": 0, "output": 0, "cache_read": 0 } + }, + "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, + "limit": { "context": 262144, "output": 131072 }, + "cost": { "input": 0, "output": 0, "cache_read": 0 } + }, + "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, + "limit": { "context": 1048576, "output": 131072 }, + "cost": { "input": 0, "output": 0, "cache_read": 0 } + } + } + }, + "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, + "limit": { "context": 200000, "output": 131072 }, + "cost": { + "input": 5, + "output": 22, + "cache_read": 1.2, + "cache_write": 0 + } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { + "input": 1, + "output": 3.2, + "cache_read": 0.2, + "cache_write": 0 + } + }, + "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, + "limit": { "context": 200000, "output": 131072 }, + "cost": { + "input": 6, + "output": 24, + "cache_read": 1.3, + "cache_write": 0 + } + }, + "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, + "limit": { "context": 200000, "output": 131072 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + }, + "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, + "limit": { "context": 131072, "output": 98304 }, + "cost": { "input": 0, "output": 0, "cache_read": 0, "cache_write": 0 } + }, + "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, + "limit": { "context": 128000, "output": 32768 }, + "cost": { "input": 0.3, "output": 0.9 } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { + "input": 0.6, + "output": 2.2, + "cache_read": 0.11, + "cache_write": 0 + } + }, + "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, + "limit": { "context": 64000, "output": 16384 }, + "cost": { "input": 0.6, "output": 1.8 } + }, + "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, + "limit": { "context": 131072, "output": 98304 }, + "cost": { + "input": 0.2, + "output": 1.1, + "cache_read": 0.03, + "cache_write": 0 + } + }, + "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, + "limit": { "context": 131072, "output": 98304 }, + "cost": { + "input": 0.6, + "output": 2.2, + "cache_read": 0.11, + "cache_write": 0 + } + }, + "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, + "limit": { "context": 200000, "output": 131072 }, + "cost": { + "input": 0.07, + "output": 0.4, + "cache_read": 0.01, + "cache_write": 0 + } + }, + "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, + "limit": { "context": 204800, "output": 131072 }, + "cost": { + "input": 0.6, + "output": 2.2, + "cache_read": 0.11, + "cache_write": 0 + } + } + } + }, + "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, + "limit": { "context": 1000000, "output": 64000 }, + "cost": { "input": 0, "output": 0, "reasoning": 0 } + }, + "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, + "limit": { "context": 1000000, "output": 64000 }, + "cost": { "input": 0, "output": 0, "reasoning": 0 } + } + } + } +} diff --git a/ee/apps/inference/src/models/openwork-dev.json b/ee/apps/inference/src/models/openwork-dev.json new file mode 100644 index 000000000..6b549df10 --- /dev/null +++ b/ee/apps/inference/src/models/openwork-dev.json @@ -0,0 +1,74 @@ +{ + "openwork": { + "id": "openwork", + "env": ["OPENWORK_API_KEY"], + "npm": "@openrouter/ai-sdk-provider", + "name": "OpenWork Clarity", + "api": "http://127.0.0.1:8791/api/v1", + "models": { + "olive": { + "id": "olive", + "name": "Olive 40 Mini", + "family": "olive", + "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, + "limit": { + "context": 128000, + "output": 16384 + } + }, + "sarah": { + "id": "sarah", + "name": "Sarah 4.7", + "family": "sarah", + "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, + "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" + } + } + } + } + } + } + } + } +} diff --git a/ee/apps/inference/src/models/openwork-prod.json b/ee/apps/inference/src/models/openwork-prod.json new file mode 100644 index 000000000..191ce13fd --- /dev/null +++ b/ee/apps/inference/src/models/openwork-prod.json @@ -0,0 +1,74 @@ +{ + "openwork": { + "id": "openwork", + "env": ["OPENWORK_API_KEY"], + "npm": "@openrouter/ai-sdk-provider", + "name": "OpenWork Clarity", + "api": "https://inference.openworklabs.com/api/v1", + "models": { + "olive": { + "id": "olive", + "name": "Olive 40 Mini", + "family": "olive", + "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, + "limit": { + "context": 128000, + "output": 16384 + } + }, + "sarah": { + "id": "sarah", + "name": "Sarah 4.7", + "family": "sarah", + "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, + "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" + } + } + } + } + } + } + } + } +} diff --git a/packages/types/src/den/inference.ts b/packages/types/src/den/inference.ts index f67ee6097..84770c051 100644 --- a/packages/types/src/den/inference.ts +++ b/packages/types/src/den/inference.ts @@ -13,14 +13,14 @@ export const INFERENCE_TIER_LIMITS: Record< Record > = { tier1: { - five_hour: 10_000, - weekly: 50_000, - monthly: 200_000, + five_hour: 10_000_000, + weekly: 50_000_000, + monthly: 100_000_000, }, tier2: { - five_hour: 12_000, - weekly: 60_000, - monthly: 240_000, + five_hour: 15_000_000, + weekly: 75_000_000, + monthly: 150_000_000, }, } as const; @@ -50,32 +50,6 @@ export const INFERENCE_WINDOW_DURATIONS_MS: Record< } as const; export const INFERENCE_MODEL_ALIASES = { - model1: { - upstreamModel: "openai/gpt-4o-mini", - displayName: "OpenWork Model 1", - enabled: true, - limit: { - context: 200_000, - output: 65_536, - }, - usageUnitsPerMillionTokens: { - input: 150_000, - output: 600_000, - }, - }, - model2: { - upstreamModel: "anthropic/claude-opus-4-7", - displayName: "OpenWork Model 2", - enabled: true, - limit: { - context: 200_000, - output: 65_536, - }, - usageUnitsPerMillionTokens: { - input: 3_000_000, - output: 15_000_000, - }, - }, olive: { upstreamModel: "openai/gpt-4o-mini", displayName: "OpenWork OliveInf", From 15fede385b6ec2be93e8e26dcdacb79576dac44e Mon Sep 17 00:00:00 2001 From: src-opn Date: Wed, 13 May 2026 19:01:33 -0700 Subject: [PATCH 11/16] docs(inference): note upstream model source --- packages/types/src/den/inference.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/types/src/den/inference.ts b/packages/types/src/den/inference.ts index 84770c051..a12e3d80d 100644 --- a/packages/types/src/den/inference.ts +++ b/packages/types/src/den/inference.ts @@ -49,6 +49,8 @@ export const INFERENCE_WINDOW_DURATIONS_MS: Record< monthly: 30 * 24 * 60 * 60 * 1000, } as const; +// For upstreamModel values, please get from models.dev/api.json provider = openrouter.models.id + export const INFERENCE_MODEL_ALIASES = { olive: { upstreamModel: "openai/gpt-4o-mini", From 1792899c197780ab010587e51ac1f8b881de7055 Mon Sep 17 00:00:00 2001 From: src-opn Date: Wed, 13 May 2026 19:16:51 -0700 Subject: [PATCH 12/16] feat(inference): refine usage accounting --- .opencode/package-lock.json | 56 +++++++++-------- ee/apps/den-api/src/inference.ts | 30 ++------- ee/apps/inference/src/limits.ts | 63 ++++++++++++++++--- ee/apps/inference/src/model-catalog.ts | 12 +--- ee/apps/inference/src/webhooks.ts | 30 +++++---- .../den-db/drizzle/meta/0015_snapshot.json | 7 --- ee/packages/den-db/src/schema/inference.ts | 1 - packages/types/src/den/inference.ts | 34 ++++------ 8 files changed, 117 insertions(+), 116 deletions(-) diff --git a/.opencode/package-lock.json b/.opencode/package-lock.json index 46ddb1c8a..ae56ecd25 100644 --- a/.opencode/package-lock.json +++ b/.opencode/package-lock.json @@ -5,7 +5,7 @@ "packages": { "": { "dependencies": { - "@opencode-ai/plugin": "1.4.9" + "@opencode-ai/plugin": "1.14.48" } }, "node_modules/@msgpackr-extract/msgpackr-extract-darwin-arm64": { @@ -87,32 +87,36 @@ ] }, "node_modules/@opencode-ai/plugin": { - "version": "1.4.9", - "resolved": "https://registry.npmjs.org/@opencode-ai/plugin/-/plugin-1.4.9.tgz", - "integrity": "sha512-tUtPbPs5xP9wonwuz5d/2y8QTrqFR8HOtAVTXvZ6iG26NJfW0dnnw9oTusVOayEIemd5abytCESm7X9ZZOMftQ==", + "version": "1.14.48", + "resolved": "https://registry.npmjs.org/@opencode-ai/plugin/-/plugin-1.14.48.tgz", + "integrity": "sha512-pb2ywByzn4i35WWJquEYyb8lDC/ph1PLXT+heucJN6Y9U/oeSw98JQV93IG7M6BUBks6MKD3DGDJdQfyD6x0rA==", "license": "MIT", "dependencies": { - "@opencode-ai/sdk": "1.4.9", - "effect": "4.0.0-beta.48", + "@opencode-ai/sdk": "1.14.48", + "effect": "4.0.0-beta.59", "zod": "4.1.8" }, "peerDependencies": { - "@opentui/core": ">=0.1.100", - "@opentui/solid": ">=0.1.100" + "@opentui/core": ">=0.2.6", + "@opentui/keymap": ">=0.2.6", + "@opentui/solid": ">=0.2.6" }, "peerDependenciesMeta": { "@opentui/core": { "optional": true }, + "@opentui/keymap": { + "optional": true + }, "@opentui/solid": { "optional": true } } }, "node_modules/@opencode-ai/sdk": { - "version": "1.4.9", - "resolved": "https://registry.npmjs.org/@opencode-ai/sdk/-/sdk-1.4.9.tgz", - "integrity": "sha512-S8WQLuBFu2WwvSc1wupsV4qskniBA+JN1VaZZs52BPWwiN2zQFTD5/6dMh6oiYOMDtPjKsTFZ6qLFxDvVPNggQ==", + "version": "1.14.48", + "resolved": "https://registry.npmjs.org/@opencode-ai/sdk/-/sdk-1.14.48.tgz", + "integrity": "sha512-wKM86jCzV/ZApyWrdm3uP8XdWcS0LMbu3FV+OWz1ChiGGg1wiIWNGMJs5CY8/QX2/rUuZrd1Q1DqvdamZ0zLeg==", "license": "MIT", "dependencies": { "cross-spawn": "7.0.6" @@ -149,9 +153,9 @@ } }, "node_modules/effect": { - "version": "4.0.0-beta.48", - "resolved": "https://registry.npmjs.org/effect/-/effect-4.0.0-beta.48.tgz", - "integrity": "sha512-MMAM/ZabuNdNmgXiin+BAanQXK7qM8mlt7nfXDoJ/Gn9V8i89JlCq+2N0AiWmqFLXjGLA0u3FjiOjSOYQk5uMw==", + "version": "4.0.0-beta.59", + "resolved": "https://registry.npmjs.org/effect/-/effect-4.0.0-beta.59.tgz", + "integrity": "sha512-xyUDLeHSe8d6lWGOvR6Fgn2HL6gYeTZ/S4Jzk9uc4ZUxMPPsNZlNXrvk0C7/utQFzeX7uAWcVnG2BjbA0SRoAA==", "license": "MIT", "dependencies": { "@standard-schema/spec": "^1.1.0", @@ -167,9 +171,9 @@ } }, "node_modules/fast-check": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/fast-check/-/fast-check-4.7.0.tgz", - "integrity": "sha512-NsZRtqvSSoCP0HbNjUD+r1JH8zqZalyp6gLY9e7OYs7NK9b6AHOs2baBFeBG7bVNsuoukh89x2Yg3rPsul8ziQ==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/fast-check/-/fast-check-4.8.0.tgz", + "integrity": "sha512-GOJ158CUMnN6cSahsv4+ExARvIDuzzinFjkp0E9WtiBa5zcVeLozVkWaE4IzFcc+Y48Wp1EDlUZsXRyAztQcSg==", "funding": [ { "type": "individual", @@ -216,9 +220,9 @@ "license": "Apache-2.0" }, "node_modules/msgpackr": { - "version": "1.11.10", - "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.11.10.tgz", - "integrity": "sha512-iCZNq+HszvF+fC3anCm4nBmWEnbeIAfpDs6IStAEKhQ2YSgkjzVG2FF9XJqwwQh5bH3N9OUTUt4QwVN6MLMLtA==", + "version": "1.11.12", + "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.11.12.tgz", + "integrity": "sha512-RBdJ1Un7yGlXWajrkxcSa93nvQ0w4zBf60c0yYv7YtBelP8H2FA7XsfBbMHtXKXUMUxH7zV3Zuozh+kUQWhHvg==", "license": "MIT", "optionalDependencies": { "msgpackr-extract": "^3.0.2" @@ -323,9 +327,9 @@ } }, "node_modules/uuid": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-13.0.0.tgz", - "integrity": "sha512-XQegIaBTVUjSHliKqcnFqYypAd4S+WCYt5NIeRs6w/UAry7z8Y9j5ZwRRL4kzq9U3sD6v+85er9FvkEaBpji2w==", + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-13.0.2.tgz", + "integrity": "sha512-vzi9uRZ926x4XV73S/4qQaTwPXM2JBj6/6lI/byHH1jOpCzb0zDbfytgA9LcN/hzb2l7WQSQnxITOVx5un/wGw==", "funding": [ "https://github.com/sponsors/broofa", "https://github.com/sponsors/ctavan" @@ -351,9 +355,9 @@ } }, "node_modules/yaml": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.3.tgz", - "integrity": "sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", + "integrity": "sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==", "license": "ISC", "bin": { "yaml": "bin.mjs" diff --git a/ee/apps/den-api/src/inference.ts b/ee/apps/den-api/src/inference.ts index d4360de85..2eb36142c 100644 --- a/ee/apps/den-api/src/inference.ts +++ b/ee/apps/den-api/src/inference.ts @@ -13,7 +13,6 @@ import { } from "@openwork-ee/den-db/schema" import { createDenTypeId, type DenTypeId } from "@openwork-ee/utils/typeid" import { - INFERENCE_MODEL_ALIASES, INFERENCE_RESET_STRATEGY_BY_WINDOW_TYPE, INFERENCE_TIER_LIMITS, INFERENCE_WINDOW_DURATIONS_MS, @@ -108,23 +107,6 @@ function buildOpenWorkProviderConfig() { } } -function buildOpenWorkModelRows(llmProviderId: DenTypeId<"llmProvider">, now: Date) { - return Object.entries(INFERENCE_MODEL_ALIASES) - .filter(([, model]) => model.enabled) - .map(([alias, model]) => ({ - id: createDenTypeId("llmProviderModel"), - llmProviderId, - modelId: `${OPENWORK_PROVIDER_ID}/${alias}`, - name: model.displayName, - modelConfig: { - id: `${OPENWORK_PROVIDER_ID}/${alias}`, - name: model.displayName, - limit: model.limit, - }, - createdAt: now, - })) -} - async function revokeMemberInferenceKeys(memberId: MemberId) { await db .update(InferenceKeyTable) @@ -212,7 +194,6 @@ async function ensureOpenWorkLlmProviderForMember(input: { organizationId: OrgId }) } - await tx.insert(LlmProviderModelTable).values(buildOpenWorkModelRows(providerId, now)) await tx.insert(LlmProviderAccessTable).values({ id: createDenTypeId("llmProviderAccess"), llmProviderId: providerId, @@ -301,21 +282,18 @@ export async function syncInferenceAfterMemberChange(input: { async function syncInferenceLimitPolicies(input: { organizationId: OrgId; tier: InferenceTier; memberCount: number }) { const now = new Date() - for (const [windowType, baseLimit] of Object.entries(INFERENCE_TIER_LIMITS[input.tier])) { - const limit = baseLimit * input.memberCount + for (const windowType of Object.keys(INFERENCE_TIER_LIMITS[input.tier])) { await db .insert(InferenceOrgLimitPolicyTable) .values({ id: createDenTypeId("inferenceOrgLimitPolicy"), organization_id: input.organizationId, window_type: windowType as keyof typeof INFERENCE_TIER_LIMITS[InferenceTier], - limit_amount: limit, reset_strategy: INFERENCE_RESET_STRATEGY_BY_WINDOW_TYPE[windowType as keyof typeof INFERENCE_TIER_LIMITS[InferenceTier]], anchor_at: now, }) .onDuplicateKeyUpdate({ set: { - limit_amount: limit, reset_strategy: INFERENCE_RESET_STRATEGY_BY_WINDOW_TYPE[windowType as keyof typeof INFERENCE_TIER_LIMITS[InferenceTier]], }, }) @@ -328,12 +306,12 @@ async function syncInferenceLimitPolicies(input: { organizationId: OrgId; tier: resetStrategy: InferenceOrgLimitPolicyTable.reset_strategy, anchorAt: InferenceOrgLimitPolicyTable.anchor_at, currentBucketId: InferenceOrgLimitPolicyTable.current_bucket_id, - limitAmount: InferenceOrgLimitPolicyTable.limit_amount, }) .from(InferenceOrgLimitPolicyTable) .where(eq(InferenceOrgLimitPolicyTable.organization_id, input.organizationId)) for (const policy of policies) { + const limitAmount = INFERENCE_TIER_LIMITS[input.tier][policy.windowType] * input.memberCount const currentBucket = policy.currentBucketId ? (await db.select().from(InferenceOrgUsageBucketTable).where(eq(InferenceOrgUsageBucketTable.id, policy.currentBucketId)).limit(1))[0] : null @@ -341,7 +319,7 @@ async function syncInferenceLimitPolicies(input: { organizationId: OrgId; tier: if (currentBucket && currentBucket.window_start_at <= now && currentBucket.window_end_at > now) { await db .update(InferenceOrgUsageBucketTable) - .set({ limit_amount: policy.limitAmount }) + .set({ limit_amount: limitAmount }) .where(eq(InferenceOrgUsageBucketTable.id, currentBucket.id)) continue } @@ -361,7 +339,7 @@ async function syncInferenceLimitPolicies(input: { organizationId: OrgId; tier: policy_id: policy.id, window_start_at: window.start, window_end_at: window.end, - limit_amount: policy.limitAmount, + limit_amount: limitAmount, used_amount: 0, }) await db diff --git a/ee/apps/inference/src/limits.ts b/ee/apps/inference/src/limits.ts index 82d8a86c6..4791bca65 100644 --- a/ee/apps/inference/src/limits.ts +++ b/ee/apps/inference/src/limits.ts @@ -1,11 +1,12 @@ -import { eq } from "drizzle-orm" -import { InferenceOrgLimitPolicyTable, InferenceOrgUsageBucketTable } from "@openwork-ee/den-db" +import { eq, sql } from "drizzle-orm" +import { InferenceOrgLimitPolicyTable, InferenceOrgUsageBucketTable, MemberTable, OrganizationTable } from "@openwork-ee/den-db" import { createDenTypeId, normalizeDenTypeId, type DenTypeId } from "@openwork-ee/utils/typeid" -import { INFERENCE_WINDOW_DURATIONS_MS } from "@openwork/types/den/inference" -import type { InferenceWindowType } from "@openwork/types/den/inference" +import { INFERENCE_TIER_LIMITS, INFERENCE_WINDOW_DURATIONS_MS } from "@openwork/types/den/inference" +import type { InferenceTier, InferenceWindowType } from "@openwork/types/den/inference" import { db } from "./db.js" export type BucketMetadata = Partial>> +export type BucketLimitMetadata = Partial> function addWindow(start: Date, windowType: InferenceWindowType) { return new Date(start.getTime() + INFERENCE_WINDOW_DURATIONS_MS[windowType]) @@ -21,11 +22,45 @@ function nextAnchoredWindow(input: { anchorAt: Date | null; currentEnd: Date | n return { start, end } } -async function ensureBucket(policy: typeof InferenceOrgLimitPolicyTable.$inferSelect, now: Date) { +function isRecord(value: unknown): value is Record { + return typeof value === "object" && value !== null && !Array.isArray(value) +} + +function readInferenceTier(metadata: Record | null): InferenceTier | null { + if (!isRecord(metadata?.inference)) return null + const tier = metadata.inference.tier + return tier === "tier1" || tier === "tier2" ? tier : null +} + +async function getEffectiveLimits(organizationId: DenTypeId<"organization">) { + const [organization] = await db + .select({ metadata: OrganizationTable.metadata }) + .from(OrganizationTable) + .where(eq(OrganizationTable.id, organizationId)) + .limit(1) + const tier = readInferenceTier(organization?.metadata ?? null) + if (!tier) return null + + const [memberCountRow] = await db + .select({ count: sql`count(*)` }) + .from(MemberTable) + .where(eq(MemberTable.organizationId, organizationId)) + const memberCount = Math.max(0, Number(memberCountRow?.count ?? 0)) + + return Object.fromEntries( + Object.entries(INFERENCE_TIER_LIMITS[tier]).map(([windowType, limit]) => [windowType, limit * memberCount]), + ) as Record +} + +async function ensureBucket(policy: typeof InferenceOrgLimitPolicyTable.$inferSelect, now: Date, effectiveLimit: number) { const current = policy.current_bucket_id ? (await db.select().from(InferenceOrgUsageBucketTable).where(eq(InferenceOrgUsageBucketTable.id, policy.current_bucket_id)).limit(1))[0] : null if (current && current.window_start_at <= now && current.window_end_at > now) { + if (current.limit_amount !== effectiveLimit) { + await db.update(InferenceOrgUsageBucketTable).set({ limit_amount: effectiveLimit }).where(eq(InferenceOrgUsageBucketTable.id, current.id)) + current.limit_amount = effectiveLimit + } return current } @@ -45,7 +80,7 @@ async function ensureBucket(policy: typeof InferenceOrgLimitPolicyTable.$inferSe policy_id: policy.id, window_start_at: window.start, window_end_at: window.end, - limit_amount: policy.limit_amount, + limit_amount: effectiveLimit, used_amount: 0, }) await db.update(InferenceOrgLimitPolicyTable).set({ current_bucket_id: id }).where(eq(InferenceOrgLimitPolicyTable.id, policy.id)) @@ -55,20 +90,28 @@ async function ensureBucket(policy: typeof InferenceOrgLimitPolicyTable.$inferSe export async function ensureUsableBuckets(organizationId: string, now = new Date()) { const orgId = normalizeDenTypeId("organization", organizationId) + const effectiveLimits = await getEffectiveLimits(orgId) + if (!effectiveLimits) { + return { ok: false as const, bucketIds: {}, bucketLimits: {}, limitedBy: "inference_metadata", windowType: "monthly" as const } + } + const policies = await db.select().from(InferenceOrgLimitPolicyTable).where(eq(InferenceOrgLimitPolicyTable.organization_id, orgId)) const bucketIds: BucketMetadata = {} + const bucketLimits: BucketLimitMetadata = {} for (const policy of policies) { - const bucket = await ensureBucket(policy, now) + const effectiveLimit = effectiveLimits[policy.window_type] + const bucket = await ensureBucket(policy, now, effectiveLimit) if (!bucket) { continue } - const remaining = bucket.limit_amount - bucket.used_amount + const remaining = effectiveLimit - bucket.used_amount if (remaining <= 0) { - return { ok: false as const, bucketIds, limitedBy: bucket.id, windowType: policy.window_type } + return { ok: false as const, bucketIds, bucketLimits, limitedBy: bucket.id, windowType: policy.window_type } } bucketIds[policy.window_type] = bucket.id + bucketLimits[policy.window_type] = effectiveLimit } - return { ok: true as const, bucketIds } + return { ok: true as const, bucketIds, bucketLimits } } diff --git a/ee/apps/inference/src/model-catalog.ts b/ee/apps/inference/src/model-catalog.ts index f4821e95e..f3e425a10 100644 --- a/ee/apps/inference/src/model-catalog.ts +++ b/ee/apps/inference/src/model-catalog.ts @@ -7,14 +7,7 @@ export type ModelCatalogEntry = { upstreamModel: string displayName: string enabled: boolean - limit: { - context: number - output: number - } - usageUnitsPerMillionTokens: { - input: number - output: number - } + usageFactor: number } const models: ModelCatalogEntry[] = Object.entries(INFERENCE_MODEL_ALIASES).map(([alias, model]) => ({ @@ -22,8 +15,7 @@ const models: ModelCatalogEntry[] = Object.entries(INFERENCE_MODEL_ALIASES).map( upstreamModel: model.upstreamModel, displayName: model.displayName, enabled: model.enabled, - limit: model.limit, - usageUnitsPerMillionTokens: model.usageUnitsPerMillionTokens, + usageFactor: model.usageFactor, })) const enabledModels = models.filter((model) => model.enabled) diff --git a/ee/apps/inference/src/webhooks.ts b/ee/apps/inference/src/webhooks.ts index 47f43412c..422c7c4cd 100644 --- a/ee/apps/inference/src/webhooks.ts +++ b/ee/apps/inference/src/webhooks.ts @@ -3,6 +3,7 @@ import type { Hono } from "hono" import { InferenceKeyTable, InferenceUsageLedgerBucketChargeTable, InferenceUsageLedgerEntryTable, InferenceOrgUsageBucketTable } from "@openwork-ee/den-db" import { createDenTypeId, normalizeDenTypeId } from "@openwork-ee/utils/typeid" import type { DenTypeId } from "@openwork-ee/utils/typeid" +import { INFERENCE_USAGE_CONVERSION_FACTOR } from "@openwork/types/den/inference" import { db } from "./db.js" import { env } from "./env.js" import { constantTimeEquals } from "./keys.js" @@ -19,8 +20,8 @@ type ParsedSpan = { costAmount: number occurredAt: Date upstreamModel: string - inputTokens: number - outputTokens: number + inputCost: number + outputCost: number } function isRecord(value: unknown): value is JsonRecord { @@ -70,12 +71,10 @@ function numberAttr(attrs: JsonRecord, keys: string[]) { return null } -function usageUnitsForModel(input: { upstreamModel: string; inputTokens: number; outputTokens: number }) { +function usageUnitsForModel(input: { upstreamModel: string; inputCost: number; outputCost: number }) { const model = resolveModelByUpstreamModel(input.upstreamModel) if (!model) return null - const inputUnits = input.inputTokens * model.usageUnitsPerMillionTokens.input - const outputUnits = input.outputTokens * model.usageUnitsPerMillionTokens.output - return Math.max(1, Math.ceil((inputUnits + outputUnits) / 1_000_000)) + return Math.max(1, Math.ceil((input.inputCost + input.outputCost) * INFERENCE_USAGE_CONVERSION_FACTOR * model.usageFactor)) } function timeFromSpan(span: JsonRecord) { @@ -92,13 +91,13 @@ function parseSpan(span: JsonRecord, resourceAttrs: JsonRecord, scopeAttrs: Json const openworkRequestId = stringAttr(attrs, ["trace.metadata.openwork_request_id", "trace.openwork_request_id", "metadata.openwork_request_id", "openwork_request_id", "trace_id"]) ?? (typeof span.traceId === "string" ? span.traceId : null) const upstreamModel = stringAttr(attrs, ["gen_ai.request.model", "gen_ai.response.model"]) - const inputTokens = numberAttr(attrs, ["gen_ai.usage.input_tokens"]) - const outputTokens = numberAttr(attrs, ["gen_ai.usage.output_tokens"]) - if (!orgMembershipId || !inferenceKeyId || !openworkRequestId || !upstreamModel || inputTokens === null || outputTokens === null) { + const inputCost = numberAttr(attrs, ["gen_ai.usage.input_cost"]) + const outputCost = numberAttr(attrs, ["gen_ai.usage.output_cost"]) + if (!orgMembershipId || !inferenceKeyId || !openworkRequestId || !upstreamModel || inputCost === null || outputCost === null) { return null } - const costAmount = usageUnitsForModel({ upstreamModel, inputTokens, outputTokens }) + const costAmount = usageUnitsForModel({ upstreamModel, inputCost, outputCost }) if (costAmount === null) { console.warn("[openrouter-webhook] skipped span for unknown priced model", { upstreamModel }) return null @@ -112,8 +111,8 @@ function parseSpan(span: JsonRecord, resourceAttrs: JsonRecord, scopeAttrs: Json costAmount, occurredAt: timeFromSpan(span), upstreamModel, - inputTokens, - outputTokens, + inputCost, + outputCost, } } @@ -196,7 +195,11 @@ async function ingestSpan(span: ParsedSpan) { if (!entry) return await db.transaction(async (tx) => { - for (const bucketId of Object.values(limits.bucketIds).filter((id): id is DenTypeId<"inferenceOrgUsageBucket"> => Boolean(id))) { + const bucketLimits = limits.bucketLimits as Record + for (const [windowType, bucketId] of Object.entries(limits.bucketIds)) { + if (!bucketId) continue + const limitAmount = bucketLimits[windowType] + if (limitAmount === undefined) continue const [charge] = await tx.select({ id: InferenceUsageLedgerBucketChargeTable.id }) .from(InferenceUsageLedgerBucketChargeTable) .where(and( @@ -215,6 +218,7 @@ async function ingestSpan(span: ParsedSpan) { amount: span.costAmount, }) await tx.update(InferenceOrgUsageBucketTable).set({ + limit_amount: limitAmount, used_amount: sql`${InferenceOrgUsageBucketTable.used_amount} + ${span.costAmount}`, }).where(eq(InferenceOrgUsageBucketTable.id, bucketId)) } diff --git a/ee/packages/den-db/drizzle/meta/0015_snapshot.json b/ee/packages/den-db/drizzle/meta/0015_snapshot.json index 47975c20d..cf354bdcc 100644 --- a/ee/packages/den-db/drizzle/meta/0015_snapshot.json +++ b/ee/packages/den-db/drizzle/meta/0015_snapshot.json @@ -1371,13 +1371,6 @@ "notNull": true, "autoincrement": false }, - "limit_amount": { - "name": "limit_amount", - "type": "bigint", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, "reset_strategy": { "name": "reset_strategy", "type": "enum('anchored','activity_based')", diff --git a/ee/packages/den-db/src/schema/inference.ts b/ee/packages/den-db/src/schema/inference.ts index 5ac339efb..cd81143ce 100644 --- a/ee/packages/den-db/src/schema/inference.ts +++ b/ee/packages/den-db/src/schema/inference.ts @@ -42,7 +42,6 @@ export const InferenceOrgLimitPolicyTable = mysqlTable( id: denTypeIdColumn("inferenceOrgLimitPolicy", "id").notNull().primaryKey(), organization_id: denTypeIdColumn("organization", "organization_id").notNull(), window_type: mysqlEnum("window_type", INFERENCE_WINDOW_TYPES).notNull(), - limit_amount: bigint("limit_amount", { mode: "number" }).notNull(), reset_strategy: mysqlEnum("reset_strategy", INFERENCE_RESET_STRATEGIES).notNull(), anchor_at: timestamp("anchor_at", { fsp: 3 }), current_bucket_id: denTypeIdColumn("inferenceOrgUsageBucket", "current_bucket_id"), diff --git a/packages/types/src/den/inference.ts b/packages/types/src/den/inference.ts index a12e3d80d..99b1757ab 100644 --- a/packages/types/src/den/inference.ts +++ b/packages/types/src/den/inference.ts @@ -1,3 +1,5 @@ +export const INFERENCE_USAGE_CONVERSION_FACTOR = 100_000_000; + export const INFERENCE_WINDOW_TYPES = [ "five_hour", "weekly", @@ -13,14 +15,14 @@ export const INFERENCE_TIER_LIMITS: Record< Record > = { tier1: { - five_hour: 10_000_000, - weekly: 50_000_000, - monthly: 100_000_000, + five_hour: 100_000_000, + weekly: 500_000_000, + monthly: 1_000_000_000, }, tier2: { - five_hour: 15_000_000, - weekly: 75_000_000, - monthly: 150_000_000, + five_hour: 150_000_000, + weekly: 750_000_000, + monthly: 1_500_000_000, }, } as const; @@ -56,27 +58,13 @@ export const INFERENCE_MODEL_ALIASES = { upstreamModel: "openai/gpt-4o-mini", displayName: "OpenWork OliveInf", enabled: true, - limit: { - context: 200_000, - output: 65_536, - }, - usageUnitsPerMillionTokens: { - input: 150_000, - output: 600_000, - }, + usageFactor: 1, }, sarah: { - upstreamModel: "anthropic/claude-opus-4-7", + upstreamModel: "anthropic/claude-opus-4.7", displayName: "OpenWork Sarah", enabled: true, - limit: { - context: 200_000, - output: 65_536, - }, - usageUnitsPerMillionTokens: { - input: 3_000_000, - output: 15_000_000, - }, + usageFactor: 1, }, } as const; From cdaaf3be6e0831cdf8c857541be5c4534914f5c9 Mon Sep 17 00:00:00 2001 From: src-opn Date: Wed, 13 May 2026 21:38:00 -0700 Subject: [PATCH 13/16] feat(inference): split model catalog hosting --- .gitignore | 2 +- ee/apps/inference/models-site/README.md | 13 +++++++++++++ .../{public => models-site}/models/.gitkeep | 0 ee/apps/inference/scripts/build-models.mjs | 2 +- ee/apps/inference/src/app.ts | 5 +++-- 5 files changed, 18 insertions(+), 4 deletions(-) create mode 100644 ee/apps/inference/models-site/README.md rename ee/apps/inference/{public => models-site}/models/.gitkeep (100%) diff --git a/.gitignore b/.gitignore index 11395acbd..3dfbbab06 100644 --- a/.gitignore +++ b/.gitignore @@ -12,7 +12,7 @@ packages/*/dist/ apps/*/dist/ ee/apps/*/dist/ ee/packages/*/dist/ -ee/apps/inference/public/models/api.json +ee/apps/inference/models-site/models/api.json tmp/ # Local git worktrees diff --git a/ee/apps/inference/models-site/README.md b/ee/apps/inference/models-site/README.md new file mode 100644 index 000000000..e74576fab --- /dev/null +++ b/ee/apps/inference/models-site/README.md @@ -0,0 +1,13 @@ +# OpenWork Model Catalog + +This directory is the static publish root for the generated OpenWork model catalog. + +Cloudflare Pages can deploy this directory directly: + +- Build command: `pnpm --dir ee/apps/inference models:build` +- Build output directory: `ee/apps/inference/models-site` +- Catalog URL: `/models/api.json` + +The generated `models/api.json` file is ignored by git. It is rebuilt from `src/models/base.json` and the active OpenWork overlay by `scripts/build-models.mjs`. + +Local development still serves the generated catalog from the inference Hono app at `/models/api.json` so one local service can provide both the proxy API and model catalog during dev. diff --git a/ee/apps/inference/public/models/.gitkeep b/ee/apps/inference/models-site/models/.gitkeep similarity index 100% rename from ee/apps/inference/public/models/.gitkeep rename to ee/apps/inference/models-site/models/.gitkeep diff --git a/ee/apps/inference/scripts/build-models.mjs b/ee/apps/inference/scripts/build-models.mjs index b6fb9f89e..38540a693 100644 --- a/ee/apps/inference/scripts/build-models.mjs +++ b/ee/apps/inference/scripts/build-models.mjs @@ -5,7 +5,7 @@ import { fileURLToPath } from "node:url" const __dirname = path.dirname(fileURLToPath(import.meta.url)) const appDir = path.resolve(__dirname, "..") const sourceDir = path.join(appDir, "src", "models") -const outputPath = path.join(appDir, "public", "models", "api.json") +const outputPath = path.join(appDir, "models-site", "models", "api.json") async function readJson(filePath) { return JSON.parse(await readFile(filePath, "utf8")) diff --git a/ee/apps/inference/src/app.ts b/ee/apps/inference/src/app.ts index d3b7f7659..8a089a85a 100644 --- a/ee/apps/inference/src/app.ts +++ b/ee/apps/inference/src/app.ts @@ -11,8 +11,9 @@ import { registerProxyRoutes } from "./proxy.js"; import { registerWebhookRoutes } from "./webhooks.js"; const srcDir = path.dirname(fileURLToPath(import.meta.url)); -const modelsApiJsonPath = path.resolve(srcDir, "..", "public", "models", "api.json"); +const modelsApiJsonPath = path.resolve(srcDir, "..", "models-site", "models", "api.json"); const isVercelRuntime = Boolean(process.env.VERCEL || process.env.VERCEL_ENV || process.env.VERCEL_URL); +const shouldServeLocalModelCatalog = !isVercelRuntime && (process.env.NODE_ENV !== "production" || process.env.OPENWORK_DEV_MODE === "1"); const app = new Hono(); @@ -39,7 +40,7 @@ if (env.corsOrigins.length > 0) { app.get("/health", (c) => c.json({ ok: true, service: "inference" })); -if (!isVercelRuntime) { +if (shouldServeLocalModelCatalog) { app.get("/models/api.json", async (c) => { const body = await readFile(modelsApiJsonPath, "utf8"); c.header("Content-Type", "application/json; charset=utf-8"); From a9f109382c3228df9b5ce5c953b0366cab8c19af Mon Sep 17 00:00:00 2001 From: src-opn Date: Wed, 13 May 2026 21:39:09 -0700 Subject: [PATCH 14/16] chore(inference): log proxy issues as errors --- ee/apps/inference/src/app.ts | 8 +++++++- ee/apps/inference/src/webhooks.ts | 24 ++++++++++++++++++------ 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/ee/apps/inference/src/app.ts b/ee/apps/inference/src/app.ts index 8a089a85a..3c4350f34 100644 --- a/ee/apps/inference/src/app.ts +++ b/ee/apps/inference/src/app.ts @@ -17,7 +17,13 @@ const shouldServeLocalModelCatalog = !isVercelRuntime && (process.env.NODE_ENV ! const app = new Hono(); -app.use("*", logger()); +app.use("*", logger((message, ...rest) => { + if (/-->\s+\S+\s+\S+\s+[45]\d\d\b/.test(message)) { + console.error(message, ...rest); + return; + } + console.log(message, ...rest); +})); if (env.corsOrigins.length > 0) { app.use( diff --git a/ee/apps/inference/src/webhooks.ts b/ee/apps/inference/src/webhooks.ts index 422c7c4cd..2b4ced664 100644 --- a/ee/apps/inference/src/webhooks.ts +++ b/ee/apps/inference/src/webhooks.ts @@ -77,6 +77,10 @@ function usageUnitsForModel(input: { upstreamModel: string; inputCost: number; o return Math.max(1, Math.ceil((input.inputCost + input.outputCost) * INFERENCE_USAGE_CONVERSION_FACTOR * model.usageFactor)) } +function logWebhookError(message: string, details?: Record) { + console.error(`[openrouter-webhook] ${message}`, details ?? {}) +} + function timeFromSpan(span: JsonRecord) { const raw = stringAttr(span, ["endTimeUnixNano", "startTimeUnixNano", "timeUnixNano"]) if (!raw) return new Date() @@ -99,7 +103,7 @@ function parseSpan(span: JsonRecord, resourceAttrs: JsonRecord, scopeAttrs: Json const costAmount = usageUnitsForModel({ upstreamModel, inputCost, outputCost }) if (costAmount === null) { - console.warn("[openrouter-webhook] skipped span for unknown priced model", { upstreamModel }) + logWebhookError("skipped span for unknown priced model", { upstreamModel }) return null } @@ -148,11 +152,11 @@ async function ingestSpan(span: ParsedSpan) { .where(eq(InferenceKeyTable.id, normalizeDenTypeId("inferenceKey", span.inferenceKeyId))) .limit(1) if (!inferenceKey || inferenceKey.status !== "active") { - console.warn("[openrouter-webhook] skipped span for missing or inactive inference key", { inferenceKeyId: span.inferenceKeyId }) + logWebhookError("skipped span for missing or inactive inference key", { inferenceKeyId: span.inferenceKeyId }) return } if (inferenceKey.org_membership_id !== normalizeDenTypeId("member", span.orgMembershipId)) { - console.warn("[openrouter-webhook] skipped span for mismatched org membership", { + logWebhookError("skipped span for mismatched org membership", { inferenceKeyId: span.inferenceKeyId, spanOrgMembershipId: span.orgMembershipId, keyOrgMembershipId: inferenceKey.org_membership_id, @@ -162,7 +166,7 @@ async function ingestSpan(span: ParsedSpan) { const limits = await ensureUsableBuckets(inferenceKey.organization_id, span.occurredAt) if (!limits.ok) { - console.warn("[openrouter-webhook] settling usage after limit was exceeded", { + logWebhookError("settling usage after limit was exceeded", { inferenceKeyId: span.inferenceKeyId, limitedBy: limits.limitedBy, }) @@ -231,13 +235,21 @@ export function registerWebhookRoutes(app: Hono) { return c.body(null, 204) } if (!env.webhookSecret) { + logWebhookError("webhook secret is not configured") return c.json({ error: "webhook_disabled" }, 503) } if (!isAuthorized(c.req.raw)) { + logWebhookError("unauthorized webhook request", { + hasAuthorization: Boolean(c.req.header("authorization")), + hasSignature: Boolean(c.req.header("x-webhook-signature")), + }) return c.json({ error: "unauthorized" }, 401) } - const body = await c.req.json().catch(() => null) + const body = await c.req.json().catch((error) => { + logWebhookError("failed to parse webhook JSON", { error: error instanceof Error ? error.message : String(error) }) + return null + }) const spans = parseOtlpSpans(body) let ingested = 0 let skipped = 0 @@ -247,7 +259,7 @@ export function registerWebhookRoutes(app: Hono) { ingested += 1 } catch (error) { skipped += 1 - console.warn("failed to ingest OpenRouter usage span", error) + logWebhookError("failed to ingest OpenRouter usage span", { error: error instanceof Error ? error.message : String(error) }) } } return c.json({ ok: true, ingested, skipped }) From d74abb6aea5540c9b68425f563a0782ef9d04612 Mon Sep 17 00:00:00 2001 From: src-opn Date: Wed, 13 May 2026 23:05:55 -0700 Subject: [PATCH 15/16] feat(server): configure managed OpenCode models URL --- apps/server/src/embedded.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/apps/server/src/embedded.ts b/apps/server/src/embedded.ts index dbecf4019..32baae0be 100644 --- a/apps/server/src/embedded.ts +++ b/apps/server/src/embedded.ts @@ -34,6 +34,9 @@ export type EmbeddedServerHandle = { export async function startEmbeddedServer(options: EmbeddedServerOptions): Promise { const config = await resolveServerConfig(options); + const opencodeModelsUrl = process.env.OPENWORK_DEV_MODE === "1" + ? "http://localhost:8791/models" + : "https://models.openworklabs.com/"; // Spawn managed OpenCode if requested and no explicit base URL was provided. let managedOpencode: ManagedOpencodeServer | null = null; @@ -51,6 +54,7 @@ export async function startEmbeddedServer(options: EmbeddedServerOptions): Promi cwd, env: { ...(process.env.OPENWORK_DEV_MODE ? { OPENWORK_DEV_MODE: process.env.OPENWORK_DEV_MODE } : {}), + OPENCODE_MODELS_URL: opencodeModelsUrl, }, }); From 61b73e088bbbb635565cbf010ec3f8c7de9a6daa Mon Sep 17 00:00:00 2001 From: src-opn Date: Wed, 13 May 2026 23:34:28 -0700 Subject: [PATCH 16/16] feat(billing): add Stripe inference subscriptions --- docs/inference-stripe-billing.md | 54 + ee/apps/den-api/.env.example | 5 + ee/apps/den-api/package.json | 1 + ee/apps/den-api/src/env.ts | 12 + ee/apps/den-api/src/generated/app-version.ts | 2 +- .../den-api/src/organization-member-hooks.ts | 7 +- ee/apps/den-api/src/routes/org/billing.ts | 127 + ee/apps/den-api/src/routes/org/index.ts | 2 + ee/apps/den-api/src/routes/org/inference.ts | 41 +- ee/apps/den-api/src/routes/webhooks/index.ts | 2 + ee/apps/den-api/src/routes/webhooks/stripe.ts | 35 + ee/apps/den-api/src/stripe-billing.ts | 337 + .../billing/stripe/checking/page.tsx | 1 + .../_components/billing-dashboard-screen.tsx | 337 +- .../_components/inference-screen.tsx | 25 +- .../billing/stripe/checking/page.tsx | 73 + .../drizzle/0016_uneven_puppet_master.sql | 27 + .../den-db/drizzle/meta/0016_snapshot.json | 6444 +++++++++++++++++ ee/packages/den-db/drizzle/meta/_journal.json | 9 +- ee/packages/den-db/package.json | 5 + ee/packages/den-db/src/schema/index.ts | 1 + .../den-db/src/schema/subscriptions.ts | 60 + ee/packages/den-db/tsup.config.ts | 1 + ee/packages/utils/src/typeid.ts | 1 + pnpm-lock.yaml | 16 + 25 files changed, 7450 insertions(+), 175 deletions(-) create mode 100644 docs/inference-stripe-billing.md create mode 100644 ee/apps/den-api/src/routes/org/billing.ts create mode 100644 ee/apps/den-api/src/routes/webhooks/stripe.ts create mode 100644 ee/apps/den-api/src/stripe-billing.ts create mode 100644 ee/apps/den-web/app/(den)/dashboard/billing/stripe/checking/page.tsx create mode 100644 ee/apps/den-web/app/(den)/o/[orgSlug]/dashboard/billing/stripe/checking/page.tsx create mode 100644 ee/packages/den-db/drizzle/0016_uneven_puppet_master.sql create mode 100644 ee/packages/den-db/drizzle/meta/0016_snapshot.json create mode 100644 ee/packages/den-db/src/schema/subscriptions.ts diff --git a/docs/inference-stripe-billing.md b/docs/inference-stripe-billing.md new file mode 100644 index 000000000..c24bd0f4a --- /dev/null +++ b/docs/inference-stripe-billing.md @@ -0,0 +1,54 @@ +# OpenWork Models Stripe Billing + +## Test Mode Resources Created + +- Stripe account: `acct_1TUzKI2Ytt5tm5rQ` (`OpenWork`) +- Product: `prod_UVuIUSone1SPMb` (`OpenWork Models`) +- Monthly price: `price_1TWsTW2Ytt5tm5rQTgrMhiP8` +- Price amount: `$10/user/month` +- Billing portal configuration: `bpc_1TWshm2Ytt5tm5rQvZX4VQ5P` +- Portal configuration is default in test mode. + +## Production Setup Checklist + +1. Create the same `OpenWork Models` product in Stripe live mode. +2. Create a recurring monthly licensed price at `$10/user/month`. +3. Configure the billing portal with customer email/name updates, payment method updates, invoice history, and subscription cancellation at period end. +4. Set Den API environment variables: + - `STRIPE_SECRET_KEY` + - `STRIPE_WEBHOOK_SECRET` + - `STRIPE_INFERENCE_PRICE_ID` + - `STRIPE_BILLING_SUCCESS_URL` + - `STRIPE_BILLING_CANCEL_URL` +5. Configure a Stripe webhook endpoint to Den API `POST /v1/webhooks/stripe`. +6. Subscribe the webhook endpoint to: + - `checkout.session.completed` + - `customer.subscription.created` + - `customer.subscription.updated` + - `customer.subscription.deleted` + - `invoice.payment_failed` + +## Local Webhook Forwarding + +Run Den locally, then start Stripe CLI forwarding: + +```bash +pnpm run dev:web-local +stripe listen --forward-to localhost:8790/v1/webhooks/stripe +``` + +Copy the `whsec_...` value from Stripe CLI output into `ee/apps/den-api/.env.local` as `STRIPE_WEBHOOK_SECRET` and restart `pnpm run dev:web-local`. + +## Behavior + +- Checkout quantity is the active org member count when checkout is created. +- Checkout quantity is not adjustable in Stripe Checkout. +- Stripe customer and subscription metadata include: + - `org_id` + - `created_by_org_member_id` + - `openwork_product=openwork_models` + - `subscription_type=inference` on subscriptions +- `org_subscriptions` is a Stripe-driven local mirror used for entitlement checks. +- Adding or removing org members updates the Stripe subscription item quantity with `proration_behavior=always_invoice`. +- `invoice.payment_failed` immediately marks the local subscription as `expired` and disables inference, which revokes active inference keys. +- `customer.subscription.deleted` and expired subscription statuses also disable inference. diff --git a/ee/apps/den-api/.env.example b/ee/apps/den-api/.env.example index 418d02c6c..3b2333fc7 100644 --- a/ee/apps/den-api/.env.example +++ b/ee/apps/den-api/.env.example @@ -40,3 +40,8 @@ OPENWORK_DEV_MODE=1 OPENROUTER_MANAGEMENT_API_KEY= OPENROUTER_WORKSPACE_ID= +STRIPE_SECRET_KEY= +STRIPE_WEBHOOK_SECRET= +STRIPE_INFERENCE_PRICE_ID=price_1TWsTW2Ytt5tm5rQTgrMhiP8 +STRIPE_BILLING_SUCCESS_URL=http://localhost:3005/dashboard/billing/stripe/checking?session_id={CHECKOUT_SESSION_ID} +STRIPE_BILLING_CANCEL_URL=http://localhost:3005/dashboard/billing diff --git a/ee/apps/den-api/package.json b/ee/apps/den-api/package.json index 406dac89e..9530c956a 100644 --- a/ee/apps/den-api/package.json +++ b/ee/apps/den-api/package.json @@ -33,6 +33,7 @@ "hono": "^4.7.2", "hono-openapi": "^1.3.0", "openapi-types": "^12.1.3", + "stripe": "^22.1.1", "zod": "^4.3.6" }, "devDependencies": { diff --git a/ee/apps/den-api/src/env.ts b/ee/apps/den-api/src/env.ts index 1839226a4..3f74edbdd 100644 --- a/ee/apps/den-api/src/env.ts +++ b/ee/apps/den-api/src/env.ts @@ -94,6 +94,11 @@ const EnvSchema = z.object({ INFERENCE_PROXY_BASE_URL: z.string().optional(), OPENROUTER_MANAGEMENT_API_KEY: z.string().optional(), OPENROUTER_WORKSPACE_ID: z.string().optional(), + STRIPE_SECRET_KEY: z.string().optional(), + STRIPE_WEBHOOK_SECRET: z.string().optional(), + STRIPE_INFERENCE_PRICE_ID: z.string().optional(), + STRIPE_BILLING_SUCCESS_URL: z.string().optional(), + STRIPE_BILLING_CANCEL_URL: z.string().optional(), }).superRefine((value, ctx) => { const inferredMode = value.DB_MODE ?? (value.DATABASE_URL ? "mysql" : "planetscale") @@ -218,6 +223,13 @@ export const env = { inferenceProxyBaseUrl: optionalString(parsed.INFERENCE_PROXY_BASE_URL) ?? "http://127.0.0.1:8791", openRouterManagementApiKey: optionalString(parsed.OPENROUTER_MANAGEMENT_API_KEY), openRouterWorkspaceId: optionalString(parsed.OPENROUTER_WORKSPACE_ID), + stripe: { + secretKey: optionalString(parsed.STRIPE_SECRET_KEY), + webhookSecret: optionalString(parsed.STRIPE_WEBHOOK_SECRET), + inferencePriceId: optionalString(parsed.STRIPE_INFERENCE_PRICE_ID), + billingSuccessUrl: optionalString(parsed.STRIPE_BILLING_SUCCESS_URL), + billingCancelUrl: optionalString(parsed.STRIPE_BILLING_CANCEL_URL), + }, render: { apiBase: parsed.RENDER_API_BASE ?? "https://api.render.com/v1", apiKey: parsed.RENDER_API_KEY, diff --git a/ee/apps/den-api/src/generated/app-version.ts b/ee/apps/den-api/src/generated/app-version.ts index c834b4cb6..9a4e741ea 100644 --- a/ee/apps/den-api/src/generated/app-version.ts +++ b/ee/apps/den-api/src/generated/app-version.ts @@ -1 +1 @@ -export const BUILD_LATEST_APP_VERSION = "0.13.7" as const +export const BUILD_LATEST_APP_VERSION = "0.13.8" as const diff --git a/ee/apps/den-api/src/organization-member-hooks.ts b/ee/apps/den-api/src/organization-member-hooks.ts index 0de20073f..f29a36247 100644 --- a/ee/apps/den-api/src/organization-member-hooks.ts +++ b/ee/apps/den-api/src/organization-member-hooks.ts @@ -2,6 +2,7 @@ import { eq, sql } from "@openwork-ee/den-db/drizzle" import { MemberTable, OrganizationTable } from "@openwork-ee/den-db/schema" import { db } from "./db.js" import { syncInferenceAfterMemberChange } from "./inference.js" +import { syncInferenceSubscriptionQuantityAfterMemberChange } from "./stripe-billing.js" type OrgId = typeof OrganizationTable.$inferSelect.id type MemberId = typeof MemberTable.$inferSelect.id @@ -18,6 +19,7 @@ type OrganizationMemberChangeHookInput = { type OrganizationMemberChangeHook = (input: OrganizationMemberChangeHookInput) => Promise const organizationMemberChangeHooks: OrganizationMemberChangeHook[] = [ + syncInferenceSubscriptionQuantityAfterMemberChange, syncInferenceAfterMemberChange, ] @@ -38,9 +40,4 @@ export async function runPostOrganizationMemberChangeHooks(input: { for (const hook of organizationMemberChangeHooks) { await hook({ ...input, memberCount }) } - - // Future billing hook: - // await stripe.subscriptions.update(subscriptionId, { - // items: [{ id: seatItemId, quantity: memberCount }], - // }) } diff --git a/ee/apps/den-api/src/routes/org/billing.ts b/ee/apps/den-api/src/routes/org/billing.ts new file mode 100644 index 000000000..4acc0750b --- /dev/null +++ b/ee/apps/den-api/src/routes/org/billing.ts @@ -0,0 +1,127 @@ +import type { Hono } from "hono" +import { describeRoute } from "hono-openapi" +import { z } from "zod" +import { createInferenceCheckoutSession, createInferencePortalSession, getOrgBillingSummary } from "../../stripe-billing.js" +import { requireUserMiddleware, resolveOrganizationContextMiddleware } from "../../middleware/index.js" +import { forbiddenSchema, jsonResponse, unauthorizedSchema } from "../../openapi.js" +import { getRequiredUserEmail } from "../../user.js" +import { env } from "../../env.js" +import type { OrgRouteVariables } from "./shared.js" +import { ensureOwner } from "./shared.js" + +const stripeBillingResponseSchema = z.object({}).passthrough().meta({ ref: "OrgStripeBillingResponse" }) +const stripeCheckoutResponseSchema = z.object({ url: z.string() }).meta({ ref: "OrgStripeCheckoutResponse" }) +const stripePortalResponseSchema = z.object({ url: z.string() }).meta({ ref: "OrgStripePortalResponse" }) + +function getRequestOrigin(c: { req: { raw: Request } }) { + const url = new URL(c.req.raw.url) + const forwardedProto = c.req.raw.headers.get("x-forwarded-proto")?.split(",")[0]?.trim() + const forwardedHost = c.req.raw.headers.get("x-forwarded-host")?.split(",")[0]?.trim() + if (forwardedHost) { + return `${forwardedProto || url.protocol.replace(/:$/, "")}://${forwardedHost}` + } + return `${url.protocol}//${url.host}` +} + +function billingReturnUrl(c: { req: { raw: Request } }) { + return `${getRequestOrigin(c)}/dashboard/billing` +} + +function checkoutSuccessUrl(c: { req: { raw: Request } }) { + return env.stripe.billingSuccessUrl ?? `${getRequestOrigin(c)}/dashboard/billing/stripe/checking?session_id={CHECKOUT_SESSION_ID}` +} + +function checkoutCancelUrl(c: { req: { raw: Request } }) { + return env.stripe.billingCancelUrl ?? billingReturnUrl(c) +} + +export function registerOrgBillingRoutes(app: Hono) { + app.get( + "/v1/billing", + describeRoute({ + tags: ["Organizations"], + hide: true, + summary: "Get organization billing status", + responses: { + 200: jsonResponse("Organization billing status returned successfully.", stripeBillingResponseSchema), + 401: jsonResponse("The caller must be signed in to read billing settings.", unauthorizedSchema), + }, + }), + requireUserMiddleware, + resolveOrganizationContextMiddleware, + async (c) => { + const payload = c.get("organizationContext") + const billing = await getOrgBillingSummary({ + organizationId: payload.organization.id, + includePortalUrl: true, + returnUrl: billingReturnUrl(c), + }) + return c.json({ billing }) + }, + ) + + app.post( + "/v1/billing/stripe/checkout", + describeRoute({ + tags: ["Organizations"], + hide: true, + summary: "Create Stripe Checkout session for OpenWork Models", + responses: { + 200: jsonResponse("Stripe Checkout session created successfully.", stripeCheckoutResponseSchema), + 401: jsonResponse("The caller must be signed in to start billing.", unauthorizedSchema), + 403: jsonResponse("Only workspace owners can start billing.", forbiddenSchema), + }, + }), + requireUserMiddleware, + resolveOrganizationContextMiddleware, + async (c) => { + const permission = ensureOwner(c) + if (!permission.ok) { + return c.json(permission.response, 403) + } + const user = c.get("user") + const email = getRequiredUserEmail(user) + if (!email) { + return c.json({ error: "user_email_required" }, 400) + } + const payload = c.get("organizationContext") + const session = await createInferenceCheckoutSession({ + organizationId: payload.organization.id, + orgMemberId: payload.currentMember.id, + email, + name: user.name ?? email, + successUrl: checkoutSuccessUrl(c), + cancelUrl: checkoutCancelUrl(c), + }) + return c.json({ url: session.url }) + }, + ) + + app.post( + "/v1/billing/stripe/portal", + describeRoute({ + tags: ["Organizations"], + hide: true, + summary: "Create Stripe billing portal session for OpenWork Models", + responses: { + 200: jsonResponse("Stripe billing portal session created successfully.", stripePortalResponseSchema), + 401: jsonResponse("The caller must be signed in to manage billing.", unauthorizedSchema), + 403: jsonResponse("Only workspace owners can manage billing.", forbiddenSchema), + }, + }), + requireUserMiddleware, + resolveOrganizationContextMiddleware, + async (c) => { + const permission = ensureOwner(c) + if (!permission.ok) { + return c.json(permission.response, 403) + } + const payload = c.get("organizationContext") + const session = await createInferencePortalSession({ + organizationId: payload.organization.id, + returnUrl: billingReturnUrl(c), + }) + return c.json({ url: session.url }) + }, + ) +} diff --git a/ee/apps/den-api/src/routes/org/index.ts b/ee/apps/den-api/src/routes/org/index.ts index 93d5595fb..9a544174c 100644 --- a/ee/apps/den-api/src/routes/org/index.ts +++ b/ee/apps/den-api/src/routes/org/index.ts @@ -1,5 +1,6 @@ import type { Hono } from "hono" import { registerOrgApiKeyRoutes } from "./api-keys.js" +import { registerOrgBillingRoutes } from "./billing.js" import { LEGACY_ORG_PROXY_HEADER } from "../../middleware/user-organizations.js" import type { OrgRouteVariables } from "./shared.js" import { registerOrgCoreRoutes } from "./core.js" @@ -41,6 +42,7 @@ function extractLegacyOrgProxyTarget(pathname: string) { export function registerOrgRoutes(app: Hono) { registerOrgCoreRoutes(app) registerOrgApiKeyRoutes(app) + registerOrgBillingRoutes(app) registerOrgInferenceRoutes(app) registerOrgInvitationRoutes(app) registerOrgLlmProviderRoutes(app) diff --git a/ee/apps/den-api/src/routes/org/inference.ts b/ee/apps/den-api/src/routes/org/inference.ts index 0ce100798..c7b3b296b 100644 --- a/ee/apps/den-api/src/routes/org/inference.ts +++ b/ee/apps/den-api/src/routes/org/inference.ts @@ -2,6 +2,9 @@ import type { Hono } from "hono" import { describeRoute } from "hono-openapi" import { z } from "zod" import { getInferenceStatus, setInferenceEnabled } from "../../inference.js" +import { createInferenceCheckoutSession, organizationHasActiveInferenceSubscription } from "../../stripe-billing.js" +import { getRequiredUserEmail } from "../../user.js" +import { env } from "../../env.js" import { jsonValidator, requireUserMiddleware, resolveOrganizationContextMiddleware } from "../../middleware/index.js" import { forbiddenSchema, invalidRequestSchema, jsonResponse, unauthorizedSchema } from "../../openapi.js" import type { OrgRouteVariables } from "./shared.js" @@ -18,10 +21,12 @@ const inferenceStatusSchema = z.object({ memberCount: z.number(), proxyBaseUrl: z.string(), upstreamProviderConfigured: z.boolean(), + subscribed: z.boolean().optional(), }).meta({ ref: "InferenceStatus" }) const inferenceStatusResponseSchema = z.object({ inference: inferenceStatusSchema, + checkoutUrl: z.string().nullable().optional(), }).meta({ ref: "InferenceStatusResponse" }) const inferenceProviderMissingSchema = z.object({ @@ -45,7 +50,12 @@ export function registerOrgInferenceRoutes { const payload = c.get("organizationContext") - return c.json({ inference: await getInferenceStatus(payload.organization.id) }) + return c.json({ + inference: { + ...await getInferenceStatus(payload.organization.id), + subscribed: await organizationHasActiveInferenceSubscription(payload.organization.id), + }, + }) }, ) @@ -74,13 +84,40 @@ export function registerOrgInferenceRoutes(app: Hono) { registerGithubWebhookRoutes(app) + registerStripeWebhookRoutes(app) } diff --git a/ee/apps/den-api/src/routes/webhooks/stripe.ts b/ee/apps/den-api/src/routes/webhooks/stripe.ts new file mode 100644 index 000000000..0c455c430 --- /dev/null +++ b/ee/apps/den-api/src/routes/webhooks/stripe.ts @@ -0,0 +1,35 @@ +import type { Env, Hono } from "hono" +import { describeRoute } from "hono-openapi" +import { z } from "zod" +import { handleStripeWebhook } from "../../stripe-billing.js" +import { jsonResponse } from "../../openapi.js" + +const stripeWebhookResponseSchema = z.object({ + received: z.literal(true), + type: z.string(), +}).meta({ ref: "StripeWebhookResponse" }) + +export function registerStripeWebhookRoutes(app: Hono) { + app.post( + "/v1/webhooks/stripe", + describeRoute({ + tags: ["Webhooks"], + hide: true, + summary: "Stripe webhook ingress", + responses: { + 200: jsonResponse("Stripe webhook processed successfully.", stripeWebhookResponseSchema), + }, + }), + async (c) => { + const payload = await c.req.raw.text() + const signature = c.req.raw.headers.get("stripe-signature") + try { + return c.json(await handleStripeWebhook({ payload, signature })) + } catch (error) { + const message = error instanceof Error ? error.message : "stripe_webhook_failed" + const status = message.includes("missing") || message.includes("signature") ? 400 : 500 + return c.json({ error: message }, status) + } + }, + ) +} diff --git a/ee/apps/den-api/src/stripe-billing.ts b/ee/apps/den-api/src/stripe-billing.ts new file mode 100644 index 000000000..8fe1790af --- /dev/null +++ b/ee/apps/den-api/src/stripe-billing.ts @@ -0,0 +1,337 @@ +import Stripe from "stripe" +import { and, eq, sql } from "@openwork-ee/den-db/drizzle" +import { + MemberTable, + OrgSubscriptionStatus, + OrgSubscriptionTable, + OrganizationTable, +} from "@openwork-ee/den-db/schema" +import { createDenTypeId } from "@openwork-ee/utils/typeid" +import { db } from "./db.js" +import { env } from "./env.js" +import { setInferenceEnabled } from "./inference.js" + +type OrgId = typeof OrganizationTable.$inferSelect.id +type MemberId = typeof MemberTable.$inferSelect.id +type OrgSubscriptionStatusValue = (typeof OrgSubscriptionStatus)[number] + +const STRIPE_API_VERSION = "2026-04-22.dahlia" +const INFERENCE_SUBSCRIPTION_TYPE = "inference" as const +const ACTIVE_STATUSES = new Set(["active", "trialing"]) +const EXPIRED_STATUSES = new Set(["past_due", "canceled", "unpaid", "incomplete_expired", "expired"]) + +let stripeClient: Stripe | null = null + +function stripe() { + if (!env.stripe.secretKey) { + throw new Error("stripe_secret_key_missing") + } + if (!stripeClient) { + stripeClient = new Stripe(env.stripe.secretKey, { + apiVersion: STRIPE_API_VERSION as any, + }) + } + return stripeClient +} + +function requireInferencePriceId() { + if (!env.stripe.inferencePriceId) { + throw new Error("stripe_inference_price_id_missing") + } + return env.stripe.inferencePriceId +} + +function fromUnixSeconds(value: number | null | undefined) { + return typeof value === "number" ? new Date(value * 1000) : null +} + +function subscriptionStatus(value: string | null | undefined): OrgSubscriptionStatusValue { + switch (value) { + case "incomplete": + case "incomplete_expired": + case "trialing": + case "active": + case "past_due": + case "canceled": + case "unpaid": + case "paused": + return value + default: + return "expired" + } +} + +function customerIdFromSubscription(subscription: Stripe.Subscription) { + return typeof subscription.customer === "string" ? subscription.customer : subscription.customer.id +} + +function firstSubscriptionItem(subscription: Stripe.Subscription) { + return subscription.items.data[0] ?? null +} + +function getSubscriptionMetadata(subscription: Stripe.Subscription) { + const orgId = subscription.metadata.org_id?.trim() ?? "" + const orgMemberId = subscription.metadata.created_by_org_member_id?.trim() ?? "" + return { + organizationId: orgId || null, + orgMemberId: orgMemberId || null, + } +} + +async function activeMemberCount(organizationId: OrgId) { + const [row] = await db + .select({ count: sql`count(*)` }) + .from(MemberTable) + .where(eq(MemberTable.organizationId, organizationId)) + return Math.max(0, Number(row?.count ?? 0)) +} + +export async function getActiveMemberCountForBilling(organizationId: OrgId) { + return activeMemberCount(organizationId) +} + +async function findInferenceSubscriptionByOrg(organizationId: OrgId) { + return db + .select() + .from(OrgSubscriptionTable) + .where(and( + eq(OrgSubscriptionTable.organization_id, organizationId), + eq(OrgSubscriptionTable.type, INFERENCE_SUBSCRIPTION_TYPE), + )) + .limit(1) + .then((rows) => rows[0] ?? null) +} + +async function findInferenceSubscriptionByStripeId(stripeSubscriptionId: string) { + return db + .select() + .from(OrgSubscriptionTable) + .where(eq(OrgSubscriptionTable.stripe_subscription_id, stripeSubscriptionId)) + .limit(1) + .then((rows) => rows[0] ?? null) +} + +export async function organizationHasActiveInferenceSubscription(organizationId: OrgId) { + const row = await findInferenceSubscriptionByOrg(organizationId) + return Boolean(row && ACTIVE_STATUSES.has(row.status)) +} + +export async function upsertInferenceSubscriptionFromStripe(subscription: Stripe.Subscription, eventId?: string | null) { + const item = firstSubscriptionItem(subscription) + const metadata = getSubscriptionMetadata(subscription) + if (!metadata.organizationId) { + return null + } + + const status = subscriptionStatus(subscription.status) + const quantity = item?.quantity ?? 0 + const priceId = typeof item?.price?.id === "string" ? item.price.id : null + const now = new Date() + const values = { + id: createDenTypeId("orgSubscription"), + organization_id: metadata.organizationId as OrgId, + created_by_org_membership_id: metadata.orgMemberId as MemberId | null, + type: INFERENCE_SUBSCRIPTION_TYPE, + status, + stripe_customer_id: customerIdFromSubscription(subscription), + stripe_subscription_id: subscription.id, + stripe_price_id: priceId, + stripe_subscription_item_id: item?.id ?? null, + quantity, + current_period_start: fromUnixSeconds((subscription as Stripe.Subscription & { current_period_start?: number }).current_period_start), + current_period_end: fromUnixSeconds((subscription as Stripe.Subscription & { current_period_end?: number }).current_period_end), + cancel_at_period_end: subscription.cancel_at_period_end, + canceled_at: fromUnixSeconds(subscription.canceled_at), + ended_at: fromUnixSeconds(subscription.ended_at), + last_event_id: eventId ?? null, + created_at: now, + updated_at: now, + } + + await db.insert(OrgSubscriptionTable).values(values).onDuplicateKeyUpdate({ + set: { + created_by_org_membership_id: values.created_by_org_membership_id, + status: values.status, + stripe_customer_id: values.stripe_customer_id, + stripe_price_id: values.stripe_price_id, + stripe_subscription_item_id: values.stripe_subscription_item_id, + quantity: values.quantity, + current_period_start: values.current_period_start, + current_period_end: values.current_period_end, + cancel_at_period_end: values.cancel_at_period_end, + canceled_at: values.canceled_at, + ended_at: values.ended_at, + last_event_id: values.last_event_id, + updated_at: now, + }, + }) + + if (EXPIRED_STATUSES.has(status)) { + await setInferenceEnabled({ organizationId: metadata.organizationId as OrgId, enabled: false }) + } + + return findInferenceSubscriptionByStripeId(subscription.id) +} + +async function ensureStripeCustomer(input: { organizationId: OrgId; orgMemberId: MemberId; email: string; name: string }) { + const existing = await findInferenceSubscriptionByOrg(input.organizationId) + if (existing?.stripe_customer_id) { + return existing.stripe_customer_id + } + + const customer = await stripe().customers.create({ + email: input.email, + name: input.name, + metadata: { + org_id: input.organizationId, + created_by_org_member_id: input.orgMemberId, + openwork_product: "openwork_models", + }, + }) + return customer.id +} + +export async function createInferenceCheckoutSession(input: { + organizationId: OrgId + orgMemberId: MemberId + email: string + name: string + successUrl: string + cancelUrl: string +}) { + const priceId = requireInferencePriceId() + const quantity = Math.max(1, await activeMemberCount(input.organizationId)) + const customer = await ensureStripeCustomer(input) + return stripe().checkout.sessions.create({ + mode: "subscription", + customer, + line_items: [{ price: priceId, quantity }], + success_url: input.successUrl, + cancel_url: input.cancelUrl, + client_reference_id: input.organizationId, + metadata: { + org_id: input.organizationId, + created_by_org_member_id: input.orgMemberId, + openwork_product: "openwork_models", + }, + subscription_data: { + metadata: { + org_id: input.organizationId, + created_by_org_member_id: input.orgMemberId, + openwork_product: "openwork_models", + subscription_type: INFERENCE_SUBSCRIPTION_TYPE, + }, + }, + }) +} + +export async function createInferencePortalSession(input: { organizationId: OrgId; returnUrl: string }) { + const row = await findInferenceSubscriptionByOrg(input.organizationId) + if (!row?.stripe_customer_id) { + throw new Error("stripe_customer_missing") + } + return stripe().billingPortal.sessions.create({ + customer: row.stripe_customer_id, + return_url: input.returnUrl, + }) +} + +export async function getOrgBillingSummary(input: { organizationId: OrgId; includePortalUrl?: boolean; returnUrl: string }) { + const row = await findInferenceSubscriptionByOrg(input.organizationId) + const memberCount = await activeMemberCount(input.organizationId) + const hasActiveSubscription = Boolean(row && ACTIVE_STATUSES.has(row.status)) + let portalUrl: string | null = null + if (input.includePortalUrl && row?.stripe_customer_id) { + try { + portalUrl = (await createInferencePortalSession({ organizationId: input.organizationId, returnUrl: input.returnUrl })).url + } catch (error) { + console.warn("[stripe-billing] failed to create billing portal session", error) + } + } + + return { + stripe: { + configured: Boolean(env.stripe.secretKey && env.stripe.inferencePriceId), + priceId: env.stripe.inferencePriceId ?? null, + unitAmount: 1000, + currency: "usd", + interval: "month", + memberCount, + hasActiveSubscription, + portalUrl, + subscription: row ? { + id: row.id, + status: row.status, + stripeCustomerId: row.stripe_customer_id, + stripeSubscriptionId: row.stripe_subscription_id, + quantity: row.quantity, + currentPeriodStart: row.current_period_start?.toISOString() ?? null, + currentPeriodEnd: row.current_period_end?.toISOString() ?? null, + cancelAtPeriodEnd: row.cancel_at_period_end, + } : null, + }, + } +} + +export async function syncInferenceSubscriptionQuantityAfterMemberChange(input: { organizationId: OrgId; memberCount: number }) { + const row = await findInferenceSubscriptionByOrg(input.organizationId) + if (!row || !ACTIVE_STATUSES.has(row.status) || !row.stripe_subscription_item_id) { + return + } + + const quantity = Math.max(1, input.memberCount) + await stripe().subscriptionItems.update(row.stripe_subscription_item_id, { + quantity, + proration_behavior: "always_invoice", + }) +} + +export async function handleStripeWebhook(input: { payload: string; signature: string | null }) { + if (!env.stripe.webhookSecret) { + throw new Error("stripe_webhook_secret_missing") + } + if (!input.signature) { + throw new Error("stripe_signature_missing") + } + + const event = stripe().webhooks.constructEvent(input.payload, input.signature, env.stripe.webhookSecret) + switch (event.type) { + case "checkout.session.completed": { + const session = event.data.object as Stripe.Checkout.Session + if (typeof session.subscription === "string") { + const subscription = await stripe().subscriptions.retrieve(session.subscription) + await upsertInferenceSubscriptionFromStripe(subscription, event.id) + const metadata = getSubscriptionMetadata(subscription) + if (metadata.organizationId && ACTIVE_STATUSES.has(subscriptionStatus(subscription.status))) { + await setInferenceEnabled({ organizationId: metadata.organizationId as OrgId, enabled: true }) + } + } + break + } + case "customer.subscription.created": + case "customer.subscription.updated": + case "customer.subscription.deleted": { + await upsertInferenceSubscriptionFromStripe(event.data.object as Stripe.Subscription, event.id) + break + } + case "invoice.payment_failed": { + const invoice = event.data.object as Stripe.Invoice + const subscriptionId = typeof (invoice as Stripe.Invoice & { subscription?: unknown }).subscription === "string" + ? (invoice as Stripe.Invoice & { subscription: string }).subscription + : null + if (subscriptionId) { + const row = await findInferenceSubscriptionByStripeId(subscriptionId) + if (row) { + await db + .update(OrgSubscriptionTable) + .set({ status: "expired", last_event_id: event.id, updated_at: new Date() }) + .where(eq(OrgSubscriptionTable.id, row.id)) + await setInferenceEnabled({ organizationId: row.organization_id, enabled: false }) + } + } + break + } + } + + return { received: true, type: event.type } +} diff --git a/ee/apps/den-web/app/(den)/dashboard/billing/stripe/checking/page.tsx b/ee/apps/den-web/app/(den)/dashboard/billing/stripe/checking/page.tsx new file mode 100644 index 000000000..879f87aff --- /dev/null +++ b/ee/apps/den-web/app/(den)/dashboard/billing/stripe/checking/page.tsx @@ -0,0 +1 @@ +export { default } from "../../../../o/[orgSlug]/dashboard/billing/stripe/checking/page"; diff --git a/ee/apps/den-web/app/(den)/o/[orgSlug]/dashboard/_components/billing-dashboard-screen.tsx b/ee/apps/den-web/app/(den)/o/[orgSlug]/dashboard/_components/billing-dashboard-screen.tsx index 442a4a77f..fbfce1627 100644 --- a/ee/apps/den-web/app/(den)/o/[orgSlug]/dashboard/_components/billing-dashboard-screen.tsx +++ b/ee/apps/den-web/app/(den)/o/[orgSlug]/dashboard/_components/billing-dashboard-screen.tsx @@ -1,16 +1,56 @@ "use client"; -import { useEffect } from "react"; +import { useEffect, useState } from "react"; import { CreditCard } from "lucide-react"; import { DenButton, buttonVariants } from "../../../../_components/ui/button"; -import { - formatIsoDate, - formatMoneyMinor, - formatRecurringInterval, - formatSubscriptionStatus, -} from "../../../../_lib/den-flow"; +import { formatIsoDate, formatMoneyMinor, formatSubscriptionStatus, getErrorMessage, requestJson } from "../../../../_lib/den-flow"; import { DashboardPageTemplate } from "../../../../_components/ui/dashboard-page-template"; import { useDenFlow } from "../../../../_providers/den-flow-provider"; +import { useOrgDashboard } from "../_providers/org-dashboard-provider"; + +type StripeBilling = { + configured: boolean; + priceId: string | null; + unitAmount: number; + currency: string; + interval: string; + memberCount: number; + hasActiveSubscription: boolean; + portalUrl: string | null; + subscription: { + status: string; + quantity: number; + currentPeriodEnd: string | null; + cancelAtPeriodEnd: boolean; + } | null; +}; + +function parseStripeBilling(payload: unknown): StripeBilling | null { + if (!payload || typeof payload !== "object" || !("billing" in payload)) return null; + const billing = (payload as { billing?: unknown }).billing; + if (!billing || typeof billing !== "object" || !("stripe" in billing)) return null; + const stripe = (billing as { stripe?: unknown }).stripe; + if (!stripe || typeof stripe !== "object") return null; + const value = stripe as Partial; + return { + configured: value.configured === true, + priceId: typeof value.priceId === "string" ? value.priceId : null, + unitAmount: typeof value.unitAmount === "number" ? value.unitAmount : 1000, + currency: typeof value.currency === "string" ? value.currency : "usd", + interval: typeof value.interval === "string" ? value.interval : "month", + memberCount: typeof value.memberCount === "number" ? value.memberCount : 0, + hasActiveSubscription: value.hasActiveSubscription === true, + portalUrl: typeof value.portalUrl === "string" ? value.portalUrl : null, + subscription: value.subscription && typeof value.subscription === "object" + ? { + status: typeof value.subscription.status === "string" ? value.subscription.status : "unknown", + quantity: typeof value.subscription.quantity === "number" ? value.subscription.quantity : 0, + currentPeriodEnd: typeof value.subscription.currentPeriodEnd === "string" ? value.subscription.currentPeriodEnd : null, + cancelAtPeriodEnd: value.subscription.cancelAtPeriodEnd === true, + } + : null, + }; +} export function BillingDashboardScreen() { const { @@ -19,197 +59,174 @@ export function BillingDashboardScreen() { billingSummary, billingBusy, billingCheckoutBusy, - billingSubscriptionBusy, billingError, effectiveCheckoutUrl, refreshBilling, - handleSubscriptionCancellation, } = useDenFlow(); + const { orgContext } = useOrgDashboard(); + const [stripeBilling, setStripeBilling] = useState(null); + const [stripeBusy, setStripeBusy] = useState(false); + const [stripeActionBusy, setStripeActionBusy] = useState<"checkout" | "portal" | null>(null); + const [stripeError, setStripeError] = useState(null); + + const isOwner = orgContext?.currentMember.isOwner === true; + + async function refreshStripeBilling(quiet = false) { + setStripeBusy(true); + if (!quiet) setStripeError(null); + try { + const { response, payload } = await requestJson("/v1/billing", { method: "GET" }, 12000); + if (!response.ok) throw new Error(getErrorMessage(payload, `Stripe billing lookup failed (${response.status}).`)); + const parsed = parseStripeBilling(payload); + if (!parsed) throw new Error("Stripe billing response was incomplete."); + setStripeBilling(parsed); + return parsed; + } catch (error) { + if (!quiet) setStripeError(error instanceof Error ? error.message : "Could not load Stripe billing."); + return null; + } finally { + setStripeBusy(false); + } + } useEffect(() => { - if (!sessionHydrated || !user || billingSummary || billingBusy || billingCheckoutBusy) { - return; + if (!sessionHydrated || !user || billingSummary || billingBusy || billingCheckoutBusy) return; + void refreshBilling({ includeCheckout: true, quiet: true }); + }, [billingBusy, billingCheckoutBusy, billingSummary, refreshBilling, sessionHydrated, user]); + + useEffect(() => { + if (!sessionHydrated || !user) return; + void refreshStripeBilling(true); + }, [sessionHydrated, user, orgContext?.organization.id]); + + async function startStripeCheckout() { + setStripeActionBusy("checkout"); + setStripeError(null); + try { + const { response, payload } = await requestJson("/v1/billing/stripe/checkout", { method: "POST" }, 12000); + if (!response.ok) throw new Error(getErrorMessage(payload, `Checkout failed (${response.status}).`)); + const url = payload && typeof payload === "object" && "url" in payload && typeof payload.url === "string" ? payload.url : null; + if (!url) throw new Error("Checkout response did not include a URL."); + window.location.href = url; + } catch (error) { + setStripeError(error instanceof Error ? error.message : "Could not start Stripe checkout."); + } finally { + setStripeActionBusy(null); } + } - void refreshBilling({ includeCheckout: true, quiet: true }); - }, [ - billingBusy, - billingCheckoutBusy, - billingSummary, - refreshBilling, - sessionHydrated, - user, - ]); - - if (!sessionHydrated) { - return ( - -
- Checking billing details… -
-
- ); + async function openStripePortal() { + setStripeActionBusy("portal"); + setStripeError(null); + try { + const { response, payload } = await requestJson("/v1/billing/stripe/portal", { method: "POST" }, 12000); + if (!response.ok) throw new Error(getErrorMessage(payload, `Billing portal failed (${response.status}).`)); + const url = payload && typeof payload === "object" && "url" in payload && typeof payload.url === "string" ? payload.url : null; + if (!url) throw new Error("Billing portal response did not include a URL."); + window.location.href = url; + } catch (error) { + setStripeError(error instanceof Error ? error.message : "Could not open Stripe billing portal."); + } finally { + setStripeActionBusy(null); + } } - const billingPrice = billingSummary?.price ?? null; - const subscription = billingSummary?.subscription ?? null; - const planAmountLabel = billingPrice - ? `${formatMoneyMinor(billingPrice.amount, billingPrice.currency)} · ${formatRecurringInterval( - billingPrice.recurringInterval, - billingPrice.recurringIntervalCount, - )}` - : "Not available"; - const statusLabel = subscription - ? formatSubscriptionStatus(subscription.status) - : billingSummary?.hasActivePlan - ? "Active" - : "Purchase required"; - const nextBillingDate = subscription?.currentPeriodEnd - ? formatIsoDate(subscription.currentPeriodEnd) - : "Not available"; - const nextPaymentAmount = subscription?.amount - ? formatMoneyMinor(subscription.amount, subscription.currency) - : billingPrice - ? formatMoneyMinor(billingPrice.amount, billingPrice.currency) - : "Not available"; + const showPolar = billingSummary?.hasActivePlan === true; + const stripePrice = formatMoneyMinor(stripeBilling?.unitAmount ?? 1000, stripeBilling?.currency ?? "usd"); return ( - {billingError ? ( + {billingError || stripeError ? (
- {billingError} + {stripeError ?? billingError}
) : null} -
-
-

- {billingSummary?.hasActivePlan - ? `This workspace's plan is currently ${statusLabel.toLowerCase()} and renews on ${nextBillingDate}.` - : "Workspace plans are $50/month and include up to 5 members plus 1 hosted worker."} -

-
- -
-
-

Current plan

-
{statusLabel}
-
- -
-

Plan cost

-
{planAmountLabel}
-
- -
-

Next billing date

-
{nextBillingDate}
-
- -
-

Next payment amount

-
{nextPaymentAmount}
-
+
+ Only workspace owners can start checkout or open billing portals. Other members can view the current billing state. +
-
-

Billing period

- - {billingPrice - ? formatRecurringInterval( - billingPrice.recurringInterval, - billingPrice.recurringIntervalCount, - ) - : "Not available"} - + {showPolar ? ( +
+
+
+

Polar

+

Cloud worker plan

+

+ Your existing Polar subscription is {formatSubscriptionStatus(billingSummary?.subscription?.status ?? "active").toLowerCase()}. +

+
+ {billingSummary?.portalUrl ? ( + + Open Polar portal + + ) : effectiveCheckoutUrl ? ( + + Manage Polar plan + + ) : null}
+
+ ) : null} +
+
-

Invoices

- - {billingSummary?.invoices.length ?? 0} - +

Stripe

+

OpenWork Models

+

+ Hosted OpenWork model access is billed at {stripePrice}/user/month for active workspace members. Annual billing is not discounted or offered here. +

+ void refreshStripeBilling(false)}> + Refresh +
-
- {effectiveCheckoutUrl && !billingSummary?.hasActivePlan ? ( - - Purchase plan - - ) : null} - - {billingSummary?.portalUrl ? ( - - Open billing portal - - ) : null} - - {billingSummary?.hasActivePlan ? ( - void handleSubscriptionCancellation(!Boolean(subscription?.cancelAtPeriodEnd))} - > - {subscription?.cancelAtPeriodEnd ? "Resume plan" : "Cancel plan"} - - ) : null} -
-
- -
-

Pricing

-
+
-

Solo

-

$0

-

Free forever · open source

+

Price

+

{stripePrice}/user/month

-

Workspace plan

-

$50/month

-

5 members included · 1 hosted worker

+

Active members

+

{stripeBilling?.memberCount ?? orgContext?.members.length ?? 0}

-

Enterprise

-

Custom

-

Windows included · talk to us

+

Status

+

+ {stripeBilling?.hasActiveSubscription ? formatSubscriptionStatus(stripeBilling.subscription?.status ?? "active") : "Not subscribed"} +

-
-
-
-

Invoices

-

- View and download your past billing invoices. -

-
- - {billingSummary?.portalUrl ? ( - - View invoices - + {stripeBilling?.hasActiveSubscription ? ( +
+ + Subscription quantity is {stripeBilling.subscription?.quantity ?? stripeBilling.memberCount} seats + {stripeBilling.subscription?.currentPeriodEnd ? ` and renews on ${formatIsoDate(stripeBilling.subscription.currentPeriodEnd)}.` : "."} + + + Manage subscription + +
) : ( - void refreshBilling({ includeCheckout: true, quiet: false })} - > - Refresh billing - +
+
+

Subscribe to enable OpenWork Models

+

Checkout will use {stripeBilling?.memberCount ?? orgContext?.members.length ?? 0} active members as the fixed quantity.

+
+ + Subscribe with Stripe + +
)} -
+ ); } diff --git a/ee/apps/den-web/app/(den)/o/[orgSlug]/dashboard/_components/inference-screen.tsx b/ee/apps/den-web/app/(den)/o/[orgSlug]/dashboard/_components/inference-screen.tsx index 80399dc5e..374256b9d 100644 --- a/ee/apps/den-web/app/(den)/o/[orgSlug]/dashboard/_components/inference-screen.tsx +++ b/ee/apps/den-web/app/(den)/o/[orgSlug]/dashboard/_components/inference-screen.tsx @@ -13,9 +13,10 @@ type InferenceStatus = { memberCount: number; proxyBaseUrl: string; upstreamProviderConfigured: boolean; + subscribed: boolean; }; -function parseInferenceStatus(payload: unknown): InferenceStatus | null { +function parseInferencePayload(payload: unknown): { inference: InferenceStatus; checkoutUrl: string | null } | null { if (!payload || typeof payload !== "object" || !("inference" in payload)) { return null; } @@ -28,11 +29,15 @@ function parseInferenceStatus(payload: unknown): InferenceStatus | null { return null; } return { + inference: { enabled: value.enabled, tier: value.tier, memberCount: typeof value.memberCount === "number" ? value.memberCount : 0, proxyBaseUrl: typeof value.proxyBaseUrl === "string" ? value.proxyBaseUrl : "", upstreamProviderConfigured: value.upstreamProviderConfigured === true, + subscribed: value.subscribed === true, + }, + checkoutUrl: "checkoutUrl" in payload && typeof payload.checkoutUrl === "string" ? payload.checkoutUrl : null, }; } @@ -51,11 +56,11 @@ export function InferenceScreen() { if (!response.ok) { throw new Error(getErrorMessage(payload, `Failed to load inference settings (${response.status}).`)); } - const parsed = parseInferenceStatus(payload); + const parsed = parseInferencePayload(payload); if (!parsed) { throw new Error("Inference settings response was incomplete."); } - setStatus(parsed); + setStatus(parsed.inference); } catch (loadError) { setError(loadError instanceof Error ? loadError.message : "Failed to load inference settings."); } finally { @@ -83,11 +88,15 @@ export function InferenceScreen() { if (!response.ok) { throw new Error(getErrorMessage(payload, `Failed to update inference settings (${response.status}).`)); } - const parsed = parseInferenceStatus(payload); + const parsed = parseInferencePayload(payload); if (!parsed) { throw new Error("Inference settings response was incomplete."); } - setStatus(parsed); + if (parsed.checkoutUrl) { + window.location.href = parsed.checkoutUrl; + return; + } + setStatus(parsed.inference); await refreshOrgData(); } catch (saveError) { setError(saveError instanceof Error ? saveError.message : "Failed to update inference settings."); @@ -123,7 +132,7 @@ export function InferenceScreen() { Enable OpenWork Models

- Adds the OpenWork provider to each member with models like openwork/model1 and openwork/model2. Disabling removes org metadata and revokes active inference keys. + Adds the OpenWork provider to each active member. Enabling starts Stripe Checkout first when the workspace does not have an active OpenWork Models subscription.

@@ -145,6 +154,10 @@ export function InferenceScreen() {

Upstream key

{status?.upstreamProviderConfigured ? "Configured" : "Missing"}

+
+

Subscription

+

{status?.subscribed ? "Active" : "Required"}

+
diff --git a/ee/apps/den-web/app/(den)/o/[orgSlug]/dashboard/billing/stripe/checking/page.tsx b/ee/apps/den-web/app/(den)/o/[orgSlug]/dashboard/billing/stripe/checking/page.tsx new file mode 100644 index 000000000..5e68e6d5d --- /dev/null +++ b/ee/apps/den-web/app/(den)/o/[orgSlug]/dashboard/billing/stripe/checking/page.tsx @@ -0,0 +1,73 @@ +"use client"; + +import { useEffect, useState } from "react"; +import Link from "next/link"; +import { CreditCard } from "lucide-react"; +import { DashboardPageTemplate } from "../../../../../../_components/ui/dashboard-page-template"; +import { DenButton } from "../../../../../../_components/ui/button"; +import { getBillingRoute } from "../../../../../../_lib/den-org"; +import { getErrorMessage, requestJson } from "../../../../../../_lib/den-flow"; +import { useOrgDashboard } from "../../../_providers/org-dashboard-provider"; + +function hasActiveStripeSubscription(payload: unknown) { + if (!payload || typeof payload !== "object" || !("billing" in payload)) return false; + const billing = (payload as { billing?: unknown }).billing; + if (!billing || typeof billing !== "object" || !("stripe" in billing)) return false; + const stripe = (billing as { stripe?: unknown }).stripe; + return Boolean(stripe && typeof stripe === "object" && "hasActiveSubscription" in stripe && stripe.hasActiveSubscription === true); +} + +export default function StripeCheckingPage() { + const { activeOrg } = useOrgDashboard(); + const [attempts, setAttempts] = useState(0); + const [status, setStatus] = useState("Checking subscription with Stripe..."); + const [error, setError] = useState(null); + const [active, setActive] = useState(false); + + async function checkSubscription() { + setAttempts((current) => current + 1); + setError(null); + try { + const { response, payload } = await requestJson("/v1/billing", { method: "GET" }, 12000); + if (!response.ok) throw new Error(getErrorMessage(payload, `Billing lookup failed (${response.status}).`)); + if (hasActiveStripeSubscription(payload)) { + setActive(true); + setStatus("Subscription is active. You can enable OpenWork Models now."); + return; + } + setStatus("Stripe is still finalizing the subscription. We'll check again in 5 seconds."); + } catch (checkError) { + setError(checkError instanceof Error ? checkError.message : "Could not check subscription."); + } + } + + useEffect(() => { + void checkSubscription(); + const interval = window.setInterval(() => void checkSubscription(), 5000); + return () => window.clearInterval(interval); + }, []); + + return ( + +
+
+ {active ? "Active" : "Polling"} +
+

{status}

+

Checks run every 5 seconds. Attempts: {attempts}

+ {error ?

{error}

: null} +
+ + Back to billing + + void checkSubscription()}>Check now +
+
+
+ ); +} diff --git a/ee/packages/den-db/drizzle/0016_uneven_puppet_master.sql b/ee/packages/den-db/drizzle/0016_uneven_puppet_master.sql new file mode 100644 index 000000000..7c9a659c2 --- /dev/null +++ b/ee/packages/den-db/drizzle/0016_uneven_puppet_master.sql @@ -0,0 +1,27 @@ +CREATE TABLE `org_subscriptions` ( + `id` varchar(64) NOT NULL, + `organization_id` varchar(64) NOT NULL, + `created_by_org_membership_id` varchar(64), + `type` enum('inference') NOT NULL, + `status` enum('incomplete','incomplete_expired','trialing','active','past_due','canceled','unpaid','paused','expired') NOT NULL DEFAULT 'incomplete', + `stripe_customer_id` varchar(255) NOT NULL, + `stripe_subscription_id` varchar(255) NOT NULL, + `stripe_price_id` varchar(255), + `stripe_subscription_item_id` varchar(255), + `quantity` int NOT NULL DEFAULT 0, + `current_period_start` timestamp(3), + `current_period_end` timestamp(3), + `cancel_at_period_end` boolean NOT NULL DEFAULT false, + `canceled_at` timestamp(3), + `ended_at` timestamp(3), + `last_event_id` varchar(255), + `created_at` timestamp(3) NOT NULL DEFAULT (now()), + `updated_at` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3), + CONSTRAINT `org_subscriptions_id` PRIMARY KEY(`id`), + CONSTRAINT `org_subscriptions_subscription_id` UNIQUE(`stripe_subscription_id`), + CONSTRAINT `org_subscriptions_org_type` UNIQUE(`organization_id`,`type`) +); +--> statement-breakpoint +CREATE INDEX `org_subscriptions_organization_id` ON `org_subscriptions` (`organization_id`);--> statement-breakpoint +CREATE INDEX `org_subscriptions_customer_id` ON `org_subscriptions` (`stripe_customer_id`);--> statement-breakpoint +CREATE INDEX `org_subscriptions_status` ON `org_subscriptions` (`status`); \ No newline at end of file diff --git a/ee/packages/den-db/drizzle/meta/0016_snapshot.json b/ee/packages/den-db/drizzle/meta/0016_snapshot.json new file mode 100644 index 000000000..92964c7ad --- /dev/null +++ b/ee/packages/den-db/drizzle/meta/0016_snapshot.json @@ -0,0 +1,6444 @@ +{ + "version": "5", + "dialect": "mysql", + "id": "9db3fd5a-305a-4de4-abae-3805a35e3661", + "prevId": "188b03c1-d4a1-4a63-bb6f-fa1d8c16fac0", + "tables": { + "account": { + "name": "account", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "account_id": { + "name": "account_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "provider_id": { + "name": "provider_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "access_token": { + "name": "access_token", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "refresh_token": { + "name": "refresh_token", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "access_token_expires_at": { + "name": "access_token_expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "refresh_token_expires_at": { + "name": "refresh_token_expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "scope": { + "name": "scope", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "id_token": { + "name": "id_token", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "password": { + "name": "password", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "account_user_id": { + "name": "account_user_id", + "columns": [ + "user_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "account_id": { + "name": "account_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "apikey": { + "name": "apikey", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "config_id": { + "name": "config_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'default'" + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "start": { + "name": "start", + "type": "varchar(32)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "prefix": { + "name": "prefix", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "key": { + "name": "key", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "reference_id": { + "name": "reference_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "refill_interval": { + "name": "refill_interval", + "type": "bigint", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "refill_amount": { + "name": "refill_amount", + "type": "int", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_refill_at": { + "name": "last_refill_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "enabled": { + "name": "enabled", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": true + }, + "rate_limit_enabled": { + "name": "rate_limit_enabled", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": true + }, + "rate_limit_time_window": { + "name": "rate_limit_time_window", + "type": "bigint", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "rate_limit_max": { + "name": "rate_limit_max", + "type": "int", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "request_count": { + "name": "request_count", + "type": "int", + "primaryKey": false, + "notNull": false, + "autoincrement": false, + "default": 0 + }, + "remaining": { + "name": "remaining", + "type": "int", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_request": { + "name": "last_request", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + }, + "permissions": { + "name": "permissions", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "metadata": { + "name": "metadata", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "apikey_config_id": { + "name": "apikey_config_id", + "columns": [ + "config_id" + ], + "isUnique": false + }, + "apikey_reference_id": { + "name": "apikey_reference_id", + "columns": [ + "reference_id" + ], + "isUnique": false + }, + "apikey_key": { + "name": "apikey_key", + "columns": [ + "key" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "apikey_id": { + "name": "apikey_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "jwks": { + "name": "jwks", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "public_key": { + "name": "public_key", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "private_key": { + "name": "private_key", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "alg": { + "name": "alg", + "type": "varchar(32)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "crv": { + "name": "crv", + "type": "varchar(32)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": { + "jwks_id": { + "name": "jwks_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "session": { + "name": "session", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "active_organization_id": { + "name": "active_organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "active_team_id": { + "name": "active_team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "token": { + "name": "token", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "ip_address": { + "name": "ip_address", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "user_agent": { + "name": "user_agent", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "session_token": { + "name": "session_token", + "columns": [ + "token" + ], + "isUnique": true + }, + "session_user_id": { + "name": "session_user_id", + "columns": [ + "user_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "session_id": { + "name": "session_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "user": { + "name": "user", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "email": { + "name": "email", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "email_verified": { + "name": "email_verified", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "image": { + "name": "image", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "user_email": { + "name": "user_email", + "columns": [ + "email" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "user_id": { + "name": "user_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "verification": { + "name": "verification", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "identifier": { + "name": "identifier", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "value": { + "name": "value", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "verification_identifier": { + "name": "verification_identifier", + "columns": [ + "identifier" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "verification_id": { + "name": "verification_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "oauthAccessToken": { + "name": "oauthAccessToken", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "token": { + "name": "token", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "client_id": { + "name": "client_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "session_id": { + "name": "session_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "reference_id": { + "name": "reference_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "refresh_id": { + "name": "refresh_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "scopes": { + "name": "scopes", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "oauth_access_token_client_id": { + "name": "oauth_access_token_client_id", + "columns": [ + "client_id" + ], + "isUnique": false + }, + "oauth_access_token_session_id": { + "name": "oauth_access_token_session_id", + "columns": [ + "session_id" + ], + "isUnique": false + }, + "oauth_access_token_user_id": { + "name": "oauth_access_token_user_id", + "columns": [ + "user_id" + ], + "isUnique": false + }, + "oauth_access_token_reference_id": { + "name": "oauth_access_token_reference_id", + "columns": [ + "reference_id" + ], + "isUnique": false + }, + "oauth_access_token_refresh_id": { + "name": "oauth_access_token_refresh_id", + "columns": [ + "refresh_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "oauthAccessToken_id": { + "name": "oauthAccessToken_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "oauthClient": { + "name": "oauthClient", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "client_id": { + "name": "client_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "client_secret": { + "name": "client_secret", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "disabled": { + "name": "disabled", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "autoincrement": false, + "default": false + }, + "skip_consent": { + "name": "skip_consent", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "enable_end_session": { + "name": "enable_end_session", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "subject_type": { + "name": "subject_type", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "scopes": { + "name": "scopes", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "uri": { + "name": "uri", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "icon": { + "name": "icon", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "contacts": { + "name": "contacts", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "tos": { + "name": "tos", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "policy": { + "name": "policy", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "software_id": { + "name": "software_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "software_version": { + "name": "software_version", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "software_statement": { + "name": "software_statement", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "redirect_uris": { + "name": "redirect_uris", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "post_logout_redirect_uris": { + "name": "post_logout_redirect_uris", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "token_endpoint_auth_method": { + "name": "token_endpoint_auth_method", + "type": "varchar(128)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "grant_types": { + "name": "grant_types", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "response_types": { + "name": "response_types", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "public": { + "name": "public", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "type": { + "name": "type", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "require_pkce": { + "name": "require_pkce", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "reference_id": { + "name": "reference_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "metadata": { + "name": "metadata", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "oauth_client_client_id": { + "name": "oauth_client_client_id", + "columns": [ + "client_id" + ], + "isUnique": true + }, + "oauth_client_user_id": { + "name": "oauth_client_user_id", + "columns": [ + "user_id" + ], + "isUnique": false + }, + "oauth_client_reference_id": { + "name": "oauth_client_reference_id", + "columns": [ + "reference_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "oauthClient_id": { + "name": "oauthClient_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "oauthConsent": { + "name": "oauthConsent", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "client_id": { + "name": "client_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "reference_id": { + "name": "reference_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "scopes": { + "name": "scopes", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "oauth_consent_client_id": { + "name": "oauth_consent_client_id", + "columns": [ + "client_id" + ], + "isUnique": false + }, + "oauth_consent_user_id": { + "name": "oauth_consent_user_id", + "columns": [ + "user_id" + ], + "isUnique": false + }, + "oauth_consent_reference_id": { + "name": "oauth_consent_reference_id", + "columns": [ + "reference_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "oauthConsent_id": { + "name": "oauthConsent_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "oauthRefreshToken": { + "name": "oauthRefreshToken", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "token": { + "name": "token", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "client_id": { + "name": "client_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "session_id": { + "name": "session_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "reference_id": { + "name": "reference_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "revoked": { + "name": "revoked", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "auth_time": { + "name": "auth_time", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "scopes": { + "name": "scopes", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "oauth_refresh_token_client_id": { + "name": "oauth_refresh_token_client_id", + "columns": [ + "client_id" + ], + "isUnique": false + }, + "oauth_refresh_token_session_id": { + "name": "oauth_refresh_token_session_id", + "columns": [ + "session_id" + ], + "isUnique": false + }, + "oauth_refresh_token_user_id": { + "name": "oauth_refresh_token_user_id", + "columns": [ + "user_id" + ], + "isUnique": false + }, + "oauth_refresh_token_reference_id": { + "name": "oauth_refresh_token_reference_id", + "columns": [ + "reference_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "oauthRefreshToken_id": { + "name": "oauthRefreshToken_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "inference_keys": { + "name": "inference_keys", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "key_hash": { + "name": "key_hash", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "key_prefix": { + "name": "key_prefix", + "type": "varchar(32)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('active','revoked')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'active'" + }, + "revoked_at": { + "name": "revoked_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "inference_keys_key_hash": { + "name": "inference_keys_key_hash", + "columns": [ + "key_hash" + ], + "isUnique": true + }, + "inference_keys_organization_id": { + "name": "inference_keys_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "inference_keys_org_membership_id": { + "name": "inference_keys_org_membership_id", + "columns": [ + "org_membership_id" + ], + "isUnique": false + }, + "inference_keys_status": { + "name": "inference_keys_status", + "columns": [ + "status" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "inference_keys_id": { + "name": "inference_keys_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "inference_org_limit_policies": { + "name": "inference_org_limit_policies", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "window_type": { + "name": "window_type", + "type": "enum('five_hour','weekly','monthly')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "reset_strategy": { + "name": "reset_strategy", + "type": "enum('anchored','activity_based')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "anchor_at": { + "name": "anchor_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "current_bucket_id": { + "name": "current_bucket_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "inference_org_limit_policies_organization_id": { + "name": "inference_org_limit_policies_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "inference_org_limit_policies_org_window_type": { + "name": "inference_org_limit_policies_org_window_type", + "columns": [ + "organization_id", + "window_type" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "inference_org_limit_policies_id": { + "name": "inference_org_limit_policies_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "inference_org_upstream_provider_keys": { + "name": "inference_org_upstream_provider_keys", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "provider": { + "name": "provider", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'openrouter'" + }, + "external_key_hash": { + "name": "external_key_hash", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "external_workspace_id": { + "name": "external_workspace_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "encrypted_api_key": { + "name": "encrypted_api_key", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "key_prefix": { + "name": "key_prefix", + "type": "varchar(32)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('active','revoked')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'active'" + }, + "revoked_at": { + "name": "revoked_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "inference_org_upstream_provider_keys_organization_id": { + "name": "inference_org_upstream_provider_keys_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "inference_org_upstream_provider_keys_external_key_hash": { + "name": "inference_org_upstream_provider_keys_external_key_hash", + "columns": [ + "external_key_hash" + ], + "isUnique": false + }, + "inference_org_upstream_provider_keys_org_provider": { + "name": "inference_org_upstream_provider_keys_org_provider", + "columns": [ + "organization_id", + "provider" + ], + "isUnique": true + }, + "inference_org_upstream_provider_keys_status": { + "name": "inference_org_upstream_provider_keys_status", + "columns": [ + "status" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "inference_org_upstream_provider_keys_id": { + "name": "inference_org_upstream_provider_keys_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "inference_org_usage_buckets": { + "name": "inference_org_usage_buckets", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "policy_id": { + "name": "policy_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "window_start_at": { + "name": "window_start_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "window_end_at": { + "name": "window_end_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "limit_amount": { + "name": "limit_amount", + "type": "bigint", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "used_amount": { + "name": "used_amount", + "type": "bigint", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": 0 + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "inference_org_usage_buckets_org_window": { + "name": "inference_org_usage_buckets_org_window", + "columns": [ + "organization_id", + "window_start_at", + "window_end_at" + ], + "isUnique": false + }, + "inference_org_usage_buckets_policy_id": { + "name": "inference_org_usage_buckets_policy_id", + "columns": [ + "policy_id" + ], + "isUnique": false + }, + "inference_org_usage_buckets_policy_window": { + "name": "inference_org_usage_buckets_policy_window", + "columns": [ + "policy_id", + "window_start_at", + "window_end_at" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "inference_org_usage_buckets_id": { + "name": "inference_org_usage_buckets_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "inference_usage_ledger_bucket_charges": { + "name": "inference_usage_ledger_bucket_charges", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "ledger_entry_id": { + "name": "ledger_entry_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "bucket_id": { + "name": "bucket_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "amount": { + "name": "amount", + "type": "bigint", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "inference_usage_ledger_bucket_charges_bucket_id": { + "name": "inference_usage_ledger_bucket_charges_bucket_id", + "columns": [ + "bucket_id" + ], + "isUnique": false + }, + "inference_usage_ledger_bucket_charges_entry_bucket": { + "name": "inference_usage_ledger_bucket_charges_entry_bucket", + "columns": [ + "ledger_entry_id", + "bucket_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "inference_usage_ledger_bucket_charges_id": { + "name": "inference_usage_ledger_bucket_charges_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "inference_usage_ledger_entries": { + "name": "inference_usage_ledger_entries", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "inference_key_id": { + "name": "inference_key_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "external_job_id": { + "name": "external_job_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "external_event_id": { + "name": "external_event_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "cost_amount": { + "name": "cost_amount", + "type": "bigint", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "event_type": { + "name": "event_type", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "occurred_at": { + "name": "occurred_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "inference_usage_ledger_entries_organization_id": { + "name": "inference_usage_ledger_entries_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "inference_usage_ledger_entries_org_membership_id": { + "name": "inference_usage_ledger_entries_org_membership_id", + "columns": [ + "org_membership_id" + ], + "isUnique": false + }, + "inference_usage_ledger_entries_inference_key_id": { + "name": "inference_usage_ledger_entries_inference_key_id", + "columns": [ + "inference_key_id" + ], + "isUnique": false + }, + "inference_usage_ledger_entries_external_event_id": { + "name": "inference_usage_ledger_entries_external_event_id", + "columns": [ + "external_event_id" + ], + "isUnique": true + }, + "inference_usage_ledger_entries_job_event_type": { + "name": "inference_usage_ledger_entries_job_event_type", + "columns": [ + "external_job_id", + "event_type" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "inference_usage_ledger_entries_id": { + "name": "inference_usage_ledger_entries_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "desktop_handoff_grant": { + "name": "desktop_handoff_grant", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "session_token": { + "name": "session_token", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "consumed_at": { + "name": "consumed_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "desktop_handoff_grant_user_id": { + "name": "desktop_handoff_grant_user_id", + "columns": [ + "user_id" + ], + "isUnique": false + }, + "desktop_handoff_grant_expires_at": { + "name": "desktop_handoff_grant_expires_at", + "columns": [ + "expires_at" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "desktop_handoff_grant_id": { + "name": "desktop_handoff_grant_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "invitation": { + "name": "invitation", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "email": { + "name": "email", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "role": { + "name": "role", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "varchar(32)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'pending'" + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "inviter_id": { + "name": "inviter_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "invitation_organization_id": { + "name": "invitation_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "invitation_email": { + "name": "invitation_email", + "columns": [ + "email" + ], + "isUnique": false + }, + "invitation_status": { + "name": "invitation_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "invitation_team_id": { + "name": "invitation_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "invitation_id": { + "name": "invitation_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "member": { + "name": "member", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "role": { + "name": "role", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'member'" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "member_organization_id": { + "name": "member_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "member_user_id": { + "name": "member_user_id", + "columns": [ + "user_id" + ], + "isUnique": false + }, + "member_organization_user": { + "name": "member_organization_user", + "columns": [ + "organization_id", + "user_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "member_id": { + "name": "member_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "organization_role": { + "name": "organization_role", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "role": { + "name": "role", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "permission": { + "name": "permission", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "organization_role_organization_id": { + "name": "organization_role_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "organization_role_name": { + "name": "organization_role_name", + "columns": [ + "organization_id", + "role" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "organization_role_id": { + "name": "organization_role_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "organization": { + "name": "organization", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "slug": { + "name": "slug", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "logo": { + "name": "logo", + "type": "varchar(2048)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "allowed_email_domains": { + "name": "allowed_email_domains", + "type": "json", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "desktop_app_restrictions": { + "name": "desktop_app_restrictions", + "type": "json", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(json_object())" + }, + "metadata": { + "name": "metadata", + "type": "json", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "organization_slug": { + "name": "organization_slug", + "columns": [ + "slug" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "organization_id": { + "name": "organization_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "llm_provider_access": { + "name": "llm_provider_access", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "llm_provider_id": { + "name": "llm_provider_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "llm_provider_access_llm_provider_id": { + "name": "llm_provider_access_llm_provider_id", + "columns": [ + "llm_provider_id" + ], + "isUnique": false + }, + "llm_provider_access_org_membership_id": { + "name": "llm_provider_access_org_membership_id", + "columns": [ + "org_membership_id" + ], + "isUnique": false + }, + "llm_provider_access_team_id": { + "name": "llm_provider_access_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + }, + "llm_provider_access_provider_org_membership": { + "name": "llm_provider_access_provider_org_membership", + "columns": [ + "llm_provider_id", + "org_membership_id" + ], + "isUnique": true + }, + "llm_provider_access_provider_team": { + "name": "llm_provider_access_provider_team", + "columns": [ + "llm_provider_id", + "team_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "llm_provider_access_id": { + "name": "llm_provider_access_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "llm_provider_model": { + "name": "llm_provider_model", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "llm_provider_id": { + "name": "llm_provider_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "model_id": { + "name": "model_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "model_config": { + "name": "model_config", + "type": "json", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "llm_provider_model_llm_provider_id": { + "name": "llm_provider_model_llm_provider_id", + "columns": [ + "llm_provider_id" + ], + "isUnique": false + }, + "llm_provider_model_model_id": { + "name": "llm_provider_model_model_id", + "columns": [ + "model_id" + ], + "isUnique": false + }, + "llm_provider_model_provider_model": { + "name": "llm_provider_model_provider_model", + "columns": [ + "llm_provider_id", + "model_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "llm_provider_model_id": { + "name": "llm_provider_model_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "llm_provider": { + "name": "llm_provider", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "source": { + "name": "source", + "type": "enum('models_dev','custom','openwork')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "provider_id": { + "name": "provider_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "provider_config": { + "name": "provider_config", + "type": "json", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "api_key": { + "name": "api_key", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "llm_provider_organization_id": { + "name": "llm_provider_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "llm_provider_created_by_org_membership_id": { + "name": "llm_provider_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + }, + "llm_provider_source": { + "name": "llm_provider_source", + "columns": [ + "source" + ], + "isUnique": false + }, + "llm_provider_provider_id": { + "name": "llm_provider_provider_id", + "columns": [ + "provider_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "llm_provider_id": { + "name": "llm_provider_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "config_object_access_grant": { + "name": "config_object_access_grant", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "config_object_id": { + "name": "config_object_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "org_wide": { + "name": "org_wide", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "role": { + "name": "role", + "type": "enum('viewer','editor','manager')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "removed_at": { + "name": "removed_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "config_object_access_grant_organization_id": { + "name": "config_object_access_grant_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "config_object_access_grant_config_object_id": { + "name": "config_object_access_grant_config_object_id", + "columns": [ + "config_object_id" + ], + "isUnique": false + }, + "config_object_access_grant_org_membership_id": { + "name": "config_object_access_grant_org_membership_id", + "columns": [ + "org_membership_id" + ], + "isUnique": false + }, + "config_object_access_grant_team_id": { + "name": "config_object_access_grant_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + }, + "config_object_access_grant_org_wide": { + "name": "config_object_access_grant_org_wide", + "columns": [ + "org_wide" + ], + "isUnique": false + }, + "config_object_access_grant_object_org_membership": { + "name": "config_object_access_grant_object_org_membership", + "columns": [ + "config_object_id", + "org_membership_id" + ], + "isUnique": true + }, + "config_object_access_grant_object_team": { + "name": "config_object_access_grant_object_team", + "columns": [ + "config_object_id", + "team_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "config_object_access_grant_id": { + "name": "config_object_access_grant_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "config_object": { + "name": "config_object", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "object_type": { + "name": "object_type", + "type": "enum('skill','agent','command','tool','mcp','hook','context','custom')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "source_mode": { + "name": "source_mode", + "type": "enum('cloud','import','connector')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "title": { + "name": "title", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "search_text": { + "name": "search_text", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "current_file_name": { + "name": "current_file_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "current_file_extension": { + "name": "current_file_extension", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "current_relative_path": { + "name": "current_relative_path", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('active','inactive','deleted','archived','ingestion_error')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'active'" + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_instance_id": { + "name": "connector_instance_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + }, + "deleted_at": { + "name": "deleted_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "config_object_organization_id": { + "name": "config_object_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "config_object_type": { + "name": "config_object_type", + "columns": [ + "object_type" + ], + "isUnique": false + }, + "config_object_source_mode": { + "name": "config_object_source_mode", + "columns": [ + "source_mode" + ], + "isUnique": false + }, + "config_object_status": { + "name": "config_object_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "config_object_created_by_org_membership_id": { + "name": "config_object_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + }, + "config_object_connector_instance_id": { + "name": "config_object_connector_instance_id", + "columns": [ + "connector_instance_id" + ], + "isUnique": false + }, + "config_object_current_relative_path": { + "name": "config_object_current_relative_path", + "columns": [ + "current_relative_path" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "config_object_id": { + "name": "config_object_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "config_object_version": { + "name": "config_object_version", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "config_object_id": { + "name": "config_object_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "normalized_payload_json": { + "name": "normalized_payload_json", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "raw_source_text": { + "name": "raw_source_text", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "schema_version": { + "name": "schema_version", + "type": "varchar(100)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_via": { + "name": "created_via", + "type": "enum('cloud','import','connector','system')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "connector_sync_event_id": { + "name": "connector_sync_event_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "source_revision_ref": { + "name": "source_revision_ref", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "is_deleted_version": { + "name": "is_deleted_version", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "config_object_version_organization_id": { + "name": "config_object_version_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "config_object_version_config_object_id": { + "name": "config_object_version_config_object_id", + "columns": [ + "config_object_id" + ], + "isUnique": false + }, + "config_object_version_created_by_org_membership_id": { + "name": "config_object_version_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + }, + "config_object_version_connector_sync_event_id": { + "name": "config_object_version_connector_sync_event_id", + "columns": [ + "connector_sync_event_id" + ], + "isUnique": false + }, + "config_object_version_source_revision_ref": { + "name": "config_object_version_source_revision_ref", + "columns": [ + "source_revision_ref" + ], + "isUnique": false + }, + "config_object_version_lookup_latest": { + "name": "config_object_version_lookup_latest", + "columns": [ + "config_object_id", + "created_at", + "id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "config_object_version_id": { + "name": "config_object_version_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "connector_account": { + "name": "connector_account", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_type": { + "name": "connector_type", + "type": "enum('github')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "remote_id": { + "name": "remote_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "external_account_ref": { + "name": "external_account_ref", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "display_name": { + "name": "display_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('active','inactive','disconnected','error')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'active'" + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "metadata_json": { + "name": "metadata_json", + "type": "json", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "connector_account_organization_id": { + "name": "connector_account_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "connector_account_created_by_org_membership_id": { + "name": "connector_account_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + }, + "connector_account_connector_type": { + "name": "connector_account_connector_type", + "columns": [ + "connector_type" + ], + "isUnique": false + }, + "connector_account_status": { + "name": "connector_account_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "connector_account_org_type_remote_id": { + "name": "connector_account_org_type_remote_id", + "columns": [ + "organization_id", + "connector_type", + "remote_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "connector_account_id": { + "name": "connector_account_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "connector_instance_access_grant": { + "name": "connector_instance_access_grant", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_instance_id": { + "name": "connector_instance_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "org_wide": { + "name": "org_wide", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "role": { + "name": "role", + "type": "enum('viewer','editor','manager')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "removed_at": { + "name": "removed_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "connector_instance_access_grant_organization_id": { + "name": "connector_instance_access_grant_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "connector_instance_access_grant_instance_id": { + "name": "connector_instance_access_grant_instance_id", + "columns": [ + "connector_instance_id" + ], + "isUnique": false + }, + "connector_instance_access_grant_org_membership_id": { + "name": "connector_instance_access_grant_org_membership_id", + "columns": [ + "org_membership_id" + ], + "isUnique": false + }, + "connector_instance_access_grant_team_id": { + "name": "connector_instance_access_grant_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + }, + "connector_instance_access_grant_org_wide": { + "name": "connector_instance_access_grant_org_wide", + "columns": [ + "org_wide" + ], + "isUnique": false + }, + "connector_instance_access_grant_instance_org_membership": { + "name": "connector_instance_access_grant_instance_org_membership", + "columns": [ + "connector_instance_id", + "org_membership_id" + ], + "isUnique": true + }, + "connector_instance_access_grant_instance_team": { + "name": "connector_instance_access_grant_instance_team", + "columns": [ + "connector_instance_id", + "team_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "connector_instance_access_grant_id": { + "name": "connector_instance_access_grant_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "connector_instance": { + "name": "connector_instance", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_account_id": { + "name": "connector_account_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_type": { + "name": "connector_type", + "type": "enum('github')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "remote_id": { + "name": "remote_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('active','disabled','archived','error')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'active'" + }, + "instance_config_json": { + "name": "instance_config_json", + "type": "json", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_synced_at": { + "name": "last_synced_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_sync_status": { + "name": "last_sync_status", + "type": "enum('pending','queued','running','completed','failed','partial','ignored')", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_sync_cursor": { + "name": "last_sync_cursor", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "connector_instance_organization_id": { + "name": "connector_instance_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "connector_instance_connector_account_id": { + "name": "connector_instance_connector_account_id", + "columns": [ + "connector_account_id" + ], + "isUnique": false + }, + "connector_instance_created_by_org_membership_id": { + "name": "connector_instance_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + }, + "connector_instance_connector_type": { + "name": "connector_instance_connector_type", + "columns": [ + "connector_type" + ], + "isUnique": false + }, + "connector_instance_status": { + "name": "connector_instance_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "connector_instance_org_name": { + "name": "connector_instance_org_name", + "columns": [ + "organization_id", + "name" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "connector_instance_id": { + "name": "connector_instance_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "connector_mapping": { + "name": "connector_mapping", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_instance_id": { + "name": "connector_instance_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_target_id": { + "name": "connector_target_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_type": { + "name": "connector_type", + "type": "enum('github')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "remote_id": { + "name": "remote_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "mapping_kind": { + "name": "mapping_kind", + "type": "enum('path','api','custom')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "selector": { + "name": "selector", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "object_type": { + "name": "object_type", + "type": "enum('skill','agent','command','tool','mcp','hook','context','custom')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "plugin_id": { + "name": "plugin_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "auto_add_to_plugin": { + "name": "auto_add_to_plugin", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "mapping_config_json": { + "name": "mapping_config_json", + "type": "json", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "connector_mapping_organization_id": { + "name": "connector_mapping_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "connector_mapping_connector_instance_id": { + "name": "connector_mapping_connector_instance_id", + "columns": [ + "connector_instance_id" + ], + "isUnique": false + }, + "connector_mapping_connector_target_id": { + "name": "connector_mapping_connector_target_id", + "columns": [ + "connector_target_id" + ], + "isUnique": false + }, + "connector_mapping_object_type": { + "name": "connector_mapping_object_type", + "columns": [ + "object_type" + ], + "isUnique": false + }, + "connector_mapping_plugin_id": { + "name": "connector_mapping_plugin_id", + "columns": [ + "plugin_id" + ], + "isUnique": false + }, + "connector_mapping_target_selector_object_type": { + "name": "connector_mapping_target_selector_object_type", + "columns": [ + "connector_target_id", + "selector", + "object_type" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "connector_mapping_id": { + "name": "connector_mapping_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "connector_source_binding": { + "name": "connector_source_binding", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "config_object_id": { + "name": "config_object_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_instance_id": { + "name": "connector_instance_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_target_id": { + "name": "connector_target_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_mapping_id": { + "name": "connector_mapping_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_type": { + "name": "connector_type", + "type": "enum('github')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "remote_id": { + "name": "remote_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "external_locator": { + "name": "external_locator", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "external_stable_ref": { + "name": "external_stable_ref", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_seen_source_revision_ref": { + "name": "last_seen_source_revision_ref", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('active','inactive','deleted','archived','ingestion_error')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'active'" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + }, + "deleted_at": { + "name": "deleted_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "connector_source_binding_organization_id": { + "name": "connector_source_binding_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "connector_source_binding_config_object_id": { + "name": "connector_source_binding_config_object_id", + "columns": [ + "config_object_id" + ], + "isUnique": false + }, + "connector_source_binding_connector_instance_id": { + "name": "connector_source_binding_connector_instance_id", + "columns": [ + "connector_instance_id" + ], + "isUnique": false + }, + "connector_source_binding_connector_target_id": { + "name": "connector_source_binding_connector_target_id", + "columns": [ + "connector_target_id" + ], + "isUnique": false + }, + "connector_source_binding_connector_mapping_id": { + "name": "connector_source_binding_connector_mapping_id", + "columns": [ + "connector_mapping_id" + ], + "isUnique": false + }, + "connector_source_binding_external_locator": { + "name": "connector_source_binding_external_locator", + "columns": [ + "external_locator" + ], + "isUnique": false + }, + "connector_source_binding_config_object": { + "name": "connector_source_binding_config_object", + "columns": [ + "config_object_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "connector_source_binding_id": { + "name": "connector_source_binding_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "connector_source_tombstone": { + "name": "connector_source_tombstone", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_instance_id": { + "name": "connector_instance_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_target_id": { + "name": "connector_target_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_mapping_id": { + "name": "connector_mapping_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_type": { + "name": "connector_type", + "type": "enum('github')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "remote_id": { + "name": "remote_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "external_locator": { + "name": "external_locator", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "former_config_object_id": { + "name": "former_config_object_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "deleted_in_sync_event_id": { + "name": "deleted_in_sync_event_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "deleted_source_revision_ref": { + "name": "deleted_source_revision_ref", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "connector_source_tombstone_organization_id": { + "name": "connector_source_tombstone_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "connector_source_tombstone_connector_instance_id": { + "name": "connector_source_tombstone_connector_instance_id", + "columns": [ + "connector_instance_id" + ], + "isUnique": false + }, + "connector_source_tombstone_connector_target_id": { + "name": "connector_source_tombstone_connector_target_id", + "columns": [ + "connector_target_id" + ], + "isUnique": false + }, + "connector_source_tombstone_connector_mapping_id": { + "name": "connector_source_tombstone_connector_mapping_id", + "columns": [ + "connector_mapping_id" + ], + "isUnique": false + }, + "connector_source_tombstone_external_locator": { + "name": "connector_source_tombstone_external_locator", + "columns": [ + "external_locator" + ], + "isUnique": false + }, + "connector_source_tombstone_former_config_object_id": { + "name": "connector_source_tombstone_former_config_object_id", + "columns": [ + "former_config_object_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "connector_source_tombstone_id": { + "name": "connector_source_tombstone_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "connector_sync_event": { + "name": "connector_sync_event", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_instance_id": { + "name": "connector_instance_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_target_id": { + "name": "connector_target_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "connector_type": { + "name": "connector_type", + "type": "enum('github')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "remote_id": { + "name": "remote_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "event_type": { + "name": "event_type", + "type": "enum('push','installation','installation_repositories','repository','manual_resync')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "external_event_ref": { + "name": "external_event_ref", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "source_revision_ref": { + "name": "source_revision_ref", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('pending','queued','running','completed','failed','partial','ignored')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'pending'" + }, + "summary_json": { + "name": "summary_json", + "type": "json", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "started_at": { + "name": "started_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "completed_at": { + "name": "completed_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "connector_sync_event_organization_id": { + "name": "connector_sync_event_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "connector_sync_event_connector_instance_id": { + "name": "connector_sync_event_connector_instance_id", + "columns": [ + "connector_instance_id" + ], + "isUnique": false + }, + "connector_sync_event_connector_target_id": { + "name": "connector_sync_event_connector_target_id", + "columns": [ + "connector_target_id" + ], + "isUnique": false + }, + "connector_sync_event_event_type": { + "name": "connector_sync_event_event_type", + "columns": [ + "event_type" + ], + "isUnique": false + }, + "connector_sync_event_status": { + "name": "connector_sync_event_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "connector_sync_event_source_revision_ref": { + "name": "connector_sync_event_source_revision_ref", + "columns": [ + "source_revision_ref" + ], + "isUnique": false + }, + "connector_sync_event_external_event_ref": { + "name": "connector_sync_event_external_event_ref", + "columns": [ + "external_event_ref" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "connector_sync_event_id": { + "name": "connector_sync_event_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "connector_target": { + "name": "connector_target", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_instance_id": { + "name": "connector_instance_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "connector_type": { + "name": "connector_type", + "type": "enum('github')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "remote_id": { + "name": "remote_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "target_kind": { + "name": "target_kind", + "type": "enum('repository_branch')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "external_target_ref": { + "name": "external_target_ref", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "target_config_json": { + "name": "target_config_json", + "type": "json", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "connector_target_organization_id": { + "name": "connector_target_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "connector_target_connector_instance_id": { + "name": "connector_target_connector_instance_id", + "columns": [ + "connector_instance_id" + ], + "isUnique": false + }, + "connector_target_connector_type": { + "name": "connector_target_connector_type", + "columns": [ + "connector_type" + ], + "isUnique": false + }, + "connector_target_target_kind": { + "name": "connector_target_target_kind", + "columns": [ + "target_kind" + ], + "isUnique": false + }, + "connector_target_instance_remote_id": { + "name": "connector_target_instance_remote_id", + "columns": [ + "connector_instance_id", + "remote_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "connector_target_id": { + "name": "connector_target_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "marketplace_access_grant": { + "name": "marketplace_access_grant", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "marketplace_id": { + "name": "marketplace_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "org_wide": { + "name": "org_wide", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "role": { + "name": "role", + "type": "enum('viewer','editor','manager')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "removed_at": { + "name": "removed_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "marketplace_access_grant_organization_id": { + "name": "marketplace_access_grant_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "marketplace_access_grant_marketplace_id": { + "name": "marketplace_access_grant_marketplace_id", + "columns": [ + "marketplace_id" + ], + "isUnique": false + }, + "marketplace_access_grant_org_membership_id": { + "name": "marketplace_access_grant_org_membership_id", + "columns": [ + "org_membership_id" + ], + "isUnique": false + }, + "marketplace_access_grant_team_id": { + "name": "marketplace_access_grant_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + }, + "marketplace_access_grant_org_wide": { + "name": "marketplace_access_grant_org_wide", + "columns": [ + "org_wide" + ], + "isUnique": false + }, + "marketplace_access_grant_marketplace_org_membership": { + "name": "marketplace_access_grant_marketplace_org_membership", + "columns": [ + "marketplace_id", + "org_membership_id" + ], + "isUnique": true + }, + "marketplace_access_grant_marketplace_team": { + "name": "marketplace_access_grant_marketplace_team", + "columns": [ + "marketplace_id", + "team_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "marketplace_access_grant_id": { + "name": "marketplace_access_grant_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "marketplace_plugin": { + "name": "marketplace_plugin", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "marketplace_id": { + "name": "marketplace_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "plugin_id": { + "name": "plugin_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "membership_source": { + "name": "membership_source", + "type": "enum('manual','connector','api','system')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'manual'" + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "removed_at": { + "name": "removed_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "marketplace_plugin_organization_id": { + "name": "marketplace_plugin_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "marketplace_plugin_marketplace_id": { + "name": "marketplace_plugin_marketplace_id", + "columns": [ + "marketplace_id" + ], + "isUnique": false + }, + "marketplace_plugin_plugin_id": { + "name": "marketplace_plugin_plugin_id", + "columns": [ + "plugin_id" + ], + "isUnique": false + }, + "marketplace_plugin_marketplace_plugin": { + "name": "marketplace_plugin_marketplace_plugin", + "columns": [ + "marketplace_id", + "plugin_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "marketplace_plugin_id": { + "name": "marketplace_plugin_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "marketplace": { + "name": "marketplace", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('active','inactive','deleted','archived')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'active'" + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + }, + "deleted_at": { + "name": "deleted_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "marketplace_organization_id": { + "name": "marketplace_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "marketplace_created_by_org_membership_id": { + "name": "marketplace_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + }, + "marketplace_status": { + "name": "marketplace_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "marketplace_name": { + "name": "marketplace_name", + "columns": [ + "name" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "marketplace_id": { + "name": "marketplace_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "plugin_access_grant": { + "name": "plugin_access_grant", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "plugin_id": { + "name": "plugin_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "org_wide": { + "name": "org_wide", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "role": { + "name": "role", + "type": "enum('viewer','editor','manager')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "removed_at": { + "name": "removed_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "plugin_access_grant_organization_id": { + "name": "plugin_access_grant_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "plugin_access_grant_plugin_id": { + "name": "plugin_access_grant_plugin_id", + "columns": [ + "plugin_id" + ], + "isUnique": false + }, + "plugin_access_grant_org_membership_id": { + "name": "plugin_access_grant_org_membership_id", + "columns": [ + "org_membership_id" + ], + "isUnique": false + }, + "plugin_access_grant_team_id": { + "name": "plugin_access_grant_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + }, + "plugin_access_grant_org_wide": { + "name": "plugin_access_grant_org_wide", + "columns": [ + "org_wide" + ], + "isUnique": false + }, + "plugin_access_grant_plugin_org_membership": { + "name": "plugin_access_grant_plugin_org_membership", + "columns": [ + "plugin_id", + "org_membership_id" + ], + "isUnique": true + }, + "plugin_access_grant_plugin_team": { + "name": "plugin_access_grant_plugin_team", + "columns": [ + "plugin_id", + "team_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "plugin_access_grant_id": { + "name": "plugin_access_grant_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "plugin_config_object": { + "name": "plugin_config_object", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "plugin_id": { + "name": "plugin_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "config_object_id": { + "name": "config_object_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "membership_source": { + "name": "membership_source", + "type": "enum('manual','connector','api','system')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'manual'" + }, + "connector_mapping_id": { + "name": "connector_mapping_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "removed_at": { + "name": "removed_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "plugin_config_object_organization_id": { + "name": "plugin_config_object_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "plugin_config_object_plugin_id": { + "name": "plugin_config_object_plugin_id", + "columns": [ + "plugin_id" + ], + "isUnique": false + }, + "plugin_config_object_config_object_id": { + "name": "plugin_config_object_config_object_id", + "columns": [ + "config_object_id" + ], + "isUnique": false + }, + "plugin_config_object_connector_mapping_id": { + "name": "plugin_config_object_connector_mapping_id", + "columns": [ + "connector_mapping_id" + ], + "isUnique": false + }, + "plugin_config_object_plugin_config_object": { + "name": "plugin_config_object_plugin_config_object", + "columns": [ + "plugin_id", + "config_object_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "plugin_config_object_id": { + "name": "plugin_config_object_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "plugin": { + "name": "plugin", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('active','inactive','deleted','archived')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'active'" + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + }, + "deleted_at": { + "name": "deleted_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "plugin_organization_id": { + "name": "plugin_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "plugin_created_by_org_membership_id": { + "name": "plugin_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + }, + "plugin_status": { + "name": "plugin_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "plugin_name": { + "name": "plugin_name", + "columns": [ + "name" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "plugin_id": { + "name": "plugin_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "skill_hub_member": { + "name": "skill_hub_member", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "skill_hub_id": { + "name": "skill_hub_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "skill_hub_member_skill_hub_id": { + "name": "skill_hub_member_skill_hub_id", + "columns": [ + "skill_hub_id" + ], + "isUnique": false + }, + "skill_hub_member_org_membership_id": { + "name": "skill_hub_member_org_membership_id", + "columns": [ + "org_membership_id" + ], + "isUnique": false + }, + "skill_hub_member_team_id": { + "name": "skill_hub_member_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + }, + "skill_hub_member_hub_org_membership": { + "name": "skill_hub_member_hub_org_membership", + "columns": [ + "skill_hub_id", + "org_membership_id" + ], + "isUnique": true + }, + "skill_hub_member_hub_team": { + "name": "skill_hub_member_hub_team", + "columns": [ + "skill_hub_id", + "team_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "skill_hub_member_id": { + "name": "skill_hub_member_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "skill_hub_skill": { + "name": "skill_hub_skill", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "skill_hub_id": { + "name": "skill_hub_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "skill_id": { + "name": "skill_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "skill_hub_skill_skill_hub_id": { + "name": "skill_hub_skill_skill_hub_id", + "columns": [ + "skill_hub_id" + ], + "isUnique": false + }, + "skill_hub_skill_skill_id": { + "name": "skill_hub_skill_skill_id", + "columns": [ + "skill_id" + ], + "isUnique": false + }, + "skill_hub_skill_hub_skill": { + "name": "skill_hub_skill_hub_skill", + "columns": [ + "skill_hub_id", + "skill_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "skill_hub_skill_id": { + "name": "skill_hub_skill_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "skill_hub": { + "name": "skill_hub", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "skill_hub_organization_id": { + "name": "skill_hub_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "skill_hub_created_by_org_membership_id": { + "name": "skill_hub_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "skill_hub_id": { + "name": "skill_hub_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "skill": { + "name": "skill", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "title": { + "name": "title", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "skill_text": { + "name": "skill_text", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "shared": { + "name": "shared", + "type": "enum('org','public')", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "skill_organization_id": { + "name": "skill_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "skill_created_by_org_membership_id": { + "name": "skill_created_by_org_membership_id", + "columns": [ + "created_by_org_membership_id" + ], + "isUnique": false + }, + "skill_shared": { + "name": "skill_shared", + "columns": [ + "shared" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "skill_id": { + "name": "skill_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "org_subscriptions": { + "name": "org_subscriptions", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_org_membership_id": { + "name": "created_by_org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "type": { + "name": "type", + "type": "enum('inference')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('incomplete','incomplete_expired','trialing','active','past_due','canceled','unpaid','paused','expired')", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'incomplete'" + }, + "stripe_customer_id": { + "name": "stripe_customer_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "stripe_subscription_id": { + "name": "stripe_subscription_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "stripe_price_id": { + "name": "stripe_price_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "stripe_subscription_item_id": { + "name": "stripe_subscription_item_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "quantity": { + "name": "quantity", + "type": "int", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": 0 + }, + "current_period_start": { + "name": "current_period_start", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "current_period_end": { + "name": "current_period_end", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "cancel_at_period_end": { + "name": "cancel_at_period_end", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "canceled_at": { + "name": "canceled_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "ended_at": { + "name": "ended_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_event_id": { + "name": "last_event_id", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "org_subscriptions_organization_id": { + "name": "org_subscriptions_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "org_subscriptions_customer_id": { + "name": "org_subscriptions_customer_id", + "columns": [ + "stripe_customer_id" + ], + "isUnique": false + }, + "org_subscriptions_subscription_id": { + "name": "org_subscriptions_subscription_id", + "columns": [ + "stripe_subscription_id" + ], + "isUnique": true + }, + "org_subscriptions_org_type": { + "name": "org_subscriptions_org_type", + "columns": [ + "organization_id", + "type" + ], + "isUnique": true + }, + "org_subscriptions_status": { + "name": "org_subscriptions_status", + "columns": [ + "status" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "org_subscriptions_id": { + "name": "org_subscriptions_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "team_member": { + "name": "team_member", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "team_id": { + "name": "team_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_membership_id": { + "name": "org_membership_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "team_member_team_id": { + "name": "team_member_team_id", + "columns": [ + "team_id" + ], + "isUnique": false + }, + "team_member_org_membership_id": { + "name": "team_member_org_membership_id", + "columns": [ + "org_membership_id" + ], + "isUnique": false + }, + "team_member_team_org_membership": { + "name": "team_member_team_org_membership", + "columns": [ + "team_id", + "org_membership_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "team_member_id": { + "name": "team_member_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "team": { + "name": "team", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "organization_id": { + "name": "organization_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "team_organization_id": { + "name": "team_organization_id", + "columns": [ + "organization_id" + ], + "isUnique": false + }, + "team_organization_name": { + "name": "team_organization_name", + "columns": [ + "organization_id", + "name" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "team_id": { + "name": "team_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "audit_event": { + "name": "audit_event", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_id": { + "name": "org_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "worker_id": { + "name": "worker_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "actor_user_id": { + "name": "actor_user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "action": { + "name": "action", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "payload": { + "name": "payload", + "type": "json", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "audit_event_org_id": { + "name": "audit_event_org_id", + "columns": [ + "org_id" + ], + "isUnique": false + }, + "audit_event_worker_id": { + "name": "audit_event_worker_id", + "columns": [ + "worker_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "audit_event_id": { + "name": "audit_event_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "daytona_sandbox": { + "name": "daytona_sandbox", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "worker_id": { + "name": "worker_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "sandbox_id": { + "name": "sandbox_id", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "workspace_volume_id": { + "name": "workspace_volume_id", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "data_volume_id": { + "name": "data_volume_id", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "signed_preview_url": { + "name": "signed_preview_url", + "type": "varchar(2048)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "signed_preview_url_expires_at": { + "name": "signed_preview_url_expires_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "region": { + "name": "region", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "daytona_sandbox_worker_id": { + "name": "daytona_sandbox_worker_id", + "columns": [ + "worker_id" + ], + "isUnique": true + }, + "daytona_sandbox_sandbox_id": { + "name": "daytona_sandbox_sandbox_id", + "columns": [ + "sandbox_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "daytona_sandbox_id": { + "name": "daytona_sandbox_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "worker_bundle": { + "name": "worker_bundle", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "worker_id": { + "name": "worker_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "storage_url": { + "name": "storage_url", + "type": "varchar(2048)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "worker_bundle_worker_id": { + "name": "worker_bundle_worker_id", + "columns": [ + "worker_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "worker_bundle_id": { + "name": "worker_bundle_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "worker_instance": { + "name": "worker_instance", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "worker_id": { + "name": "worker_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "provider": { + "name": "provider", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "region": { + "name": "region", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "url": { + "name": "url", + "type": "varchar(2048)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('provisioning','healthy','failed','stopped')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "worker_instance_worker_id": { + "name": "worker_instance_worker_id", + "columns": [ + "worker_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "worker_instance_id": { + "name": "worker_instance_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "worker": { + "name": "worker", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_id": { + "name": "org_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_by_user_id": { + "name": "created_by_user_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "varchar(1024)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "destination": { + "name": "destination", + "type": "enum('local','cloud')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "enum('provisioning','healthy','failed','stopped')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "image_version": { + "name": "image_version", + "type": "varchar(128)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "workspace_path": { + "name": "workspace_path", + "type": "varchar(1024)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "sandbox_backend": { + "name": "sandbox_backend", + "type": "varchar(64)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_heartbeat_at": { + "name": "last_heartbeat_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "last_active_at": { + "name": "last_active_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "worker_org_id": { + "name": "worker_org_id", + "columns": [ + "org_id" + ], + "isUnique": false + }, + "worker_created_by_user_id": { + "name": "worker_created_by_user_id", + "columns": [ + "created_by_user_id" + ], + "isUnique": false + }, + "worker_status": { + "name": "worker_status", + "columns": [ + "status" + ], + "isUnique": false + }, + "worker_last_heartbeat_at": { + "name": "worker_last_heartbeat_at", + "columns": [ + "last_heartbeat_at" + ], + "isUnique": false + }, + "worker_last_active_at": { + "name": "worker_last_active_at", + "columns": [ + "last_active_at" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "worker_id": { + "name": "worker_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "worker_token": { + "name": "worker_token", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "worker_id": { + "name": "worker_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "scope": { + "name": "scope", + "type": "enum('client','host','activity')", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "token": { + "name": "token", + "type": "varchar(128)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "revoked_at": { + "name": "revoked_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "worker_token_worker_id": { + "name": "worker_token_worker_id", + "columns": [ + "worker_id" + ], + "isUnique": false + }, + "worker_token_token": { + "name": "worker_token_token", + "columns": [ + "token" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "worker_token_id": { + "name": "worker_token_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "admin_allowlist": { + "name": "admin_allowlist", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "email": { + "name": "email", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "note": { + "name": "note", + "type": "varchar(255)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" + } + }, + "indexes": { + "admin_allowlist_email": { + "name": "admin_allowlist_email", + "columns": [ + "email" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "admin_allowlist_id": { + "name": "admin_allowlist_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "rate_limit": { + "name": "rate_limit", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "key": { + "name": "key", + "type": "varchar(512)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "count": { + "name": "count", + "type": "int", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": 0 + }, + "last_request": { + "name": "last_request", + "type": "bigint", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "rate_limit_key": { + "name": "rate_limit_key", + "columns": [ + "key" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "rate_limit_id": { + "name": "rate_limit_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + }, + "telemetry_event": { + "name": "telemetry_event", + "columns": { + "id": { + "name": "id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "org_id": { + "name": "org_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "member_id": { + "name": "member_id", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "event_type": { + "name": "event_type", + "type": "varchar(64)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "event_timestamp": { + "name": "event_timestamp", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(now())" + } + }, + "indexes": { + "telemetry_event_org_id_type_ts": { + "name": "telemetry_event_org_id_type_ts", + "columns": [ + "org_id", + "event_type", + "event_timestamp" + ], + "isUnique": false + }, + "telemetry_event_org_id_member_id": { + "name": "telemetry_event_org_id_member_id", + "columns": [ + "org_id", + "member_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "telemetry_event_id": { + "name": "telemetry_event_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {}, + "checkConstraint": {} + } + }, + "views": {}, + "_meta": { + "schemas": {}, + "tables": {}, + "columns": {} + }, + "internal": { + "tables": {}, + "indexes": {} + } +} \ No newline at end of file diff --git a/ee/packages/den-db/drizzle/meta/_journal.json b/ee/packages/den-db/drizzle/meta/_journal.json index 928ea2311..857e16db0 100644 --- a/ee/packages/den-db/drizzle/meta/_journal.json +++ b/ee/packages/den-db/drizzle/meta/_journal.json @@ -106,6 +106,13 @@ "when": 1778613784603, "tag": "0015_inference_proxy", "breakpoints": true + }, + { + "idx": 16, + "version": "5", + "when": 1778739941884, + "tag": "0016_uneven_puppet_master", + "breakpoints": true } ] -} +} \ No newline at end of file diff --git a/ee/packages/den-db/package.json b/ee/packages/den-db/package.json index 5b2d8046a..65d81346a 100644 --- a/ee/packages/den-db/package.json +++ b/ee/packages/den-db/package.json @@ -41,6 +41,11 @@ "development": "./src/schema/sharables/skills.ts", "default": "./dist/schema/sharables/skills.js" }, + "./schema/subscriptions": { + "types": "./src/schema/subscriptions.ts", + "development": "./src/schema/subscriptions.ts", + "default": "./dist/schema/subscriptions.js" + }, "./schema/workers": { "types": "./src/schema/workers.ts", "development": "./src/schema/workers.ts", diff --git a/ee/packages/den-db/src/schema/index.ts b/ee/packages/den-db/src/schema/index.ts index a8b49fd5e..77effebce 100644 --- a/ee/packages/den-db/src/schema/index.ts +++ b/ee/packages/den-db/src/schema/index.ts @@ -4,6 +4,7 @@ export * from "./org" export * from "./sharables/llm-providers" export * from "./sharables/plugin-arch" export * from "./sharables/skills" +export * from "./subscriptions" export * from "./teams" export * from "./workers" export * from "./system" diff --git a/ee/packages/den-db/src/schema/subscriptions.ts b/ee/packages/den-db/src/schema/subscriptions.ts new file mode 100644 index 000000000..0928427b6 --- /dev/null +++ b/ee/packages/den-db/src/schema/subscriptions.ts @@ -0,0 +1,60 @@ +import { relations } from "drizzle-orm" +import { boolean, index, int, mysqlEnum, mysqlTable, timestamp, uniqueIndex, varchar } from "drizzle-orm/mysql-core" +import { denTypeIdColumn, timestamps } from "../columns" +import { MemberTable, OrganizationTable } from "./org" + +export const OrgSubscriptionType = ["inference"] as const +export const OrgSubscriptionStatus = [ + "incomplete", + "incomplete_expired", + "trialing", + "active", + "past_due", + "canceled", + "unpaid", + "paused", + "expired", +] as const + +export const OrgSubscriptionTable = mysqlTable( + "org_subscriptions", + { + id: denTypeIdColumn("orgSubscription", "id").notNull().primaryKey(), + organization_id: denTypeIdColumn("organization", "organization_id").notNull(), + created_by_org_membership_id: denTypeIdColumn("member", "created_by_org_membership_id"), + type: mysqlEnum("type", OrgSubscriptionType).notNull(), + status: mysqlEnum("status", OrgSubscriptionStatus).notNull().default("incomplete"), + stripe_customer_id: varchar("stripe_customer_id", { length: 255 }).notNull(), + stripe_subscription_id: varchar("stripe_subscription_id", { length: 255 }).notNull(), + stripe_price_id: varchar("stripe_price_id", { length: 255 }), + stripe_subscription_item_id: varchar("stripe_subscription_item_id", { length: 255 }), + quantity: int("quantity").notNull().default(0), + current_period_start: timestamp("current_period_start", { fsp: 3 }), + current_period_end: timestamp("current_period_end", { fsp: 3 }), + cancel_at_period_end: boolean("cancel_at_period_end").notNull().default(false), + canceled_at: timestamp("canceled_at", { fsp: 3 }), + ended_at: timestamp("ended_at", { fsp: 3 }), + last_event_id: varchar("last_event_id", { length: 255 }), + ...timestamps, + }, + (table) => [ + index("org_subscriptions_organization_id").on(table.organization_id), + index("org_subscriptions_customer_id").on(table.stripe_customer_id), + uniqueIndex("org_subscriptions_subscription_id").on(table.stripe_subscription_id), + uniqueIndex("org_subscriptions_org_type").on(table.organization_id, table.type), + index("org_subscriptions_status").on(table.status), + ], +) + +export const orgSubscriptionRelations = relations(OrgSubscriptionTable, ({ one }) => ({ + organization: one(OrganizationTable, { + fields: [OrgSubscriptionTable.organization_id], + references: [OrganizationTable.id], + }), + createdByOrgMembership: one(MemberTable, { + fields: [OrgSubscriptionTable.created_by_org_membership_id], + references: [MemberTable.id], + }), +})) + +export const orgSubscription = OrgSubscriptionTable diff --git a/ee/packages/den-db/tsup.config.ts b/ee/packages/den-db/tsup.config.ts index df58f602e..5316a9a62 100644 --- a/ee/packages/den-db/tsup.config.ts +++ b/ee/packages/den-db/tsup.config.ts @@ -8,6 +8,7 @@ export default defineConfig({ "schema/inference": "src/schema/inference.ts", "schema/org": "src/schema/org.ts", "schema/sharables/skills": "src/schema/sharables/skills.ts", + "schema/subscriptions": "src/schema/subscriptions.ts", "schema/teams": "src/schema/teams.ts", "schema/workers": "src/schema/workers.ts", "schema/system": "src/schema/system.ts", diff --git a/ee/packages/utils/src/typeid.ts b/ee/packages/utils/src/typeid.ts index bc96affbf..ff872a86e 100644 --- a/ee/packages/utils/src/typeid.ts +++ b/ee/packages/utils/src/typeid.ts @@ -67,6 +67,7 @@ export const idTypesMapNameToPrefix = { inferenceUsageLedgerBucketCharge: "iulc", inferenceModelAlias: "ima", inferenceOrgProviderKey: "iopk", + orgSubscription: "osub", } as const export const denTypeIdPrefixes = idTypesMapNameToPrefix diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 712a26040..1cd0a0e32 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -529,6 +529,9 @@ importers: openapi-types: specifier: ^12.1.3 version: 12.1.3 + stripe: + specifier: ^22.1.1 + version: 22.1.1(@types/node@20.12.12) zod: specifier: ^4.3.6 version: 4.3.6 @@ -8482,6 +8485,15 @@ packages: resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} engines: {node: '>=0.10.0'} + stripe@22.1.1: + resolution: {integrity: sha512-cmodIYP27tBkJ8G7DuGgWw0PFuemlFZbuF3Wwr1TrjFjUa3T7NIgCe6TVwX8BO2ynu+xtTuDGfHafNDCPt9lXA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + strnum@2.2.0: resolution: {integrity: sha512-Y7Bj8XyJxnPAORMZj/xltsfo55uOiyHcU2tnAVzHUnSJR/KsEX+9RoDeXEnsXtl/CX4fAcrt64gZ13aGaWPeBg==} @@ -17760,6 +17772,10 @@ snapshots: strip-json-comments@2.0.1: {} + stripe@22.1.1(@types/node@20.12.12): + optionalDependencies: + '@types/node': 20.12.12 + strnum@2.2.0: {} strtok3@6.3.0: