Merge branch 'dev' into feature/new_gpt_5.3_codex_and_missing_structured_output_attr

This commit is contained in:
Aiden Cline
2026-03-09 19:37:40 -05:00
288 changed files with 4126 additions and 264 deletions
+1
View File
@@ -1,5 +1,6 @@
.env
.sst
.idea
dist
.DS_Store
node_modules
@@ -48,7 +48,6 @@ const familyPatterns: [RegExp, string][] = [
[/llama-4/i, "llama-4"],
[/qwen3/i, "qwen3"],
[/deepseek-r1/i, "deepseek-r1"],
[/exaone/i, "exaone"],
[/glm-4/i, "glm-4"],
[/glm-5/i, "glm"],
];
+54 -4
View File
@@ -35,6 +35,31 @@ type OllamaModel = Omit<Model, "id"> & {
limit: Model["limit"] & { output?: number };
};
type ComparableModel = Pick<Model,
| "name"
| "attachment"
| "reasoning"
| "tool_call"
| "knowledge"
| "open_weights"
| "modalities"
> & {
limit: Pick<Model["limit"], "context">;
};
function normalizeForComparison(model: Omit<Model, "id">): ComparableModel {
return {
name: model.name,
attachment: model.attachment,
reasoning: model.reasoning,
tool_call: model.tool_call,
knowledge: model.knowledge,
open_weights: model.open_weights,
limit: { context: model.limit.context },
modalities: model.modalities,
};
}
const OllamaTagsResponse = z.object({
models: z.array(
z.object({
@@ -137,20 +162,34 @@ for (const modelName of modelNames) {
modelsData.push({ name: modelName, data: showParsed.data });
}
console.log(`Fetched all models. Writing new files...`);
console.log(`Fetched all models. Syncing files...`);
const existingFiles = Array.from(new Bun.Glob("*.toml").scanSync(modelsDir));
const existingModelNames = new Set(existingFiles.map((f) => f.replace(/\.toml$/, "")));
const apiModelNames = new Set(modelNames);
let deleted = 0;
for (const existingName of existingModelNames) {
if (!apiModelNames.has(existingName)) {
const filePath = path.join(modelsDir, modelFileName(existingName));
await Bun.file(filePath).delete();
console.log(`Deleted: ${modelFileName(existingName)}`);
deleted++;
}
}
let created = 0;
let skipped = 0;
for (const { name, data } of modelsData) {
const fileName = modelFileName(name);
const filePath = path.join(modelsDir, fileName);
let existingData: Omit<Model, "id"> | null;
let existingData: Omit<Model, "id"> | null = null;
try {
const existingToml = await Bun.file(filePath).text();
existingData = Bun.TOML.parse(existingToml) as Omit<Model, "id">;
} catch {
// File doesn't exist
existingData = null;
}
const family = existingData?.family ?? (data.details.family as ModelFamily);
@@ -179,9 +218,20 @@ for (const { name, data } of modelsData) {
},
};
if (existingData) {
const normalizedExisting = normalizeForComparison(existingData);
const normalizedIncoming = normalizeForComparison(ollamaModel);
if (Bun.deepEquals(normalizedExisting, normalizedIncoming)) {
console.log(`Skipped (no changes): ${fileName}`);
skipped++;
continue;
}
}
await Bun.write(filePath, generateToml(name, ollamaModel));
console.log(`Created: ${fileName}`);
created++;
}
console.log(`\nDone. Created ${created}`);
console.log(`\nDone. Created: ${created}, Skipped: ${skipped}, Deleted: ${deleted}`);
+3 -30
View File
@@ -3,30 +3,11 @@
import { z } from "zod";
import path from "node:path";
import { readdir } from "node:fs/promises";
import * as readline from "node:readline";
import { ModelFamilyValues } from "../src/family.js";
// Venice API endpoint
const API_ENDPOINT = "https://api.venice.ai/api/v1/models?type=text";
async function promptForApiKey(): Promise<string | null> {
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
return new Promise((resolve) => {
rl.question(
"Enter Venice API key to include alpha models (or press Enter to skip): ",
(answer) => {
rl.close();
const trimmed = answer.trim();
resolve(trimmed.length > 0 ? trimmed : null);
},
);
});
}
// Zod schemas for API response validation
const Capabilities = z
.object({
@@ -69,6 +50,7 @@ const ModelSpec = z
.object({
pricing: Pricing.optional(),
availableContextTokens: z.number(),
maxCompletionTokens: z.number().optional(),
capabilities: Capabilities,
constraints: z.any().optional(),
name: z.string(),
@@ -257,11 +239,7 @@ function mergeModel(
const caps = spec.capabilities;
const contextTokens = spec.availableContextTokens;
const proposedOutputTokens = Math.floor(contextTokens / 4);
const outputTokens =
existing?.limit?.output !== undefined && existing.limit.output < proposedOutputTokens
? existing.limit.output
: proposedOutputTokens
const outputTokens = spec.maxCompletionTokens ?? Math.floor(contextTokens / 4);
const openWeights = spec.modelSource
? spec.modelSource.toLowerCase().includes("huggingface")
@@ -487,7 +465,7 @@ async function main() {
"models",
);
// Check for API key from CLI argument, environment, or prompt
// Check for API key from CLI argument or environment variable
let apiKey: string | null = null;
// Check CLI args for --api-key=xxx or --api-key xxx
@@ -506,11 +484,6 @@ async function main() {
apiKey = process.env.VENICE_API_KEY ?? null;
}
// Prompt if still no key
if (!apiKey) {
apiKey = await promptForApiKey();
}
const includeAlpha = apiKey !== null;
if (dryRun) {
+6 -3
View File
@@ -128,9 +128,6 @@ export const ModelFamilyValues = [
"solar-mini",
"solar-pro",
// Exaone
"exaone",
// Step (StepFun)
"step",
@@ -197,6 +194,9 @@ export const ModelFamilyValues = [
// Mimo
"mimo",
// Clarifai
"mm-poly",
// Longcat
"longcat",
@@ -284,6 +284,9 @@ export const ModelFamilyValues = [
// Parakeet
"parakeet",
// MiMo
"mimo-flash-free",
// NeMo
"nemoretriever",
@@ -0,0 +1,22 @@
name = "Claude Opus 4.6"
family = "claude-opus"
release_date = "2026-02-05"
last_updated = "2026-02-05"
attachment = true
reasoning = true
temperature = true
tool_call = true
knowledge = "2025-05"
open_weights = false
[cost]
input = 5.00
output = 25.00
[limit]
context = 200_000
output = 128_000
[modalities]
input = ["text", "image", "pdf"]
output = ["text"]
@@ -0,0 +1,22 @@
name = "Claude Sonnet 4.6"
family = "claude-sonnet"
release_date = "2026-02-17"
last_updated = "2026-02-17"
attachment = true
reasoning = true
temperature = true
tool_call = true
knowledge = "2025-08"
open_weights = false
[cost]
input = 3.00
output = 15.00
[limit]
context = 200_000
output = 64_000
[modalities]
input = ["text", "image", "pdf"]
output = ["text"]
@@ -9,8 +9,8 @@ tool_call = true
open_weights = true
[cost]
input = 0.14
output = 0.28
input = 0.55
output = 1.66
[limit]
context = 128_000
@@ -1,21 +0,0 @@
name = "Gemini 2.0 Flash"
family = "gemini-flash"
release_date = "2025-02-05"
last_updated = "2025-02-05"
attachment = true
reasoning = false
temperature = true
tool_call = true
open_weights = false
[cost]
input = 0.10
output = 0.40
[limit]
context = 1_000_000
output = 8_192
[modalities]
input = ["text", "image", "audio", "video"]
output = ["text"]
@@ -1,17 +0,0 @@
name = "Gemini 2.0 Pro Exp"
family = "gemini-pro"
release_date = "2025-02-05"
last_updated = "2025-02-05"
attachment = true
reasoning = false
temperature = true
tool_call = true
open_weights = false
[limit]
context = 2_000_000
output = 8_192
[modalities]
input = ["text", "image", "audio", "video"]
output = ["text"]
@@ -0,0 +1,22 @@
name = "Gemini 3.1 Flash Lite Preview"
family = "gemini-flash"
release_date = "2026-03-01"
last_updated = "2026-03-01"
attachment = true
reasoning = true
temperature = true
tool_call = true
structured_output = true
open_weights = false
[cost]
input = 0.25
output = 1.50
[limit]
context = 1_048_576
output = 65_536
[modalities]
input = ["text", "image", "audio", "video", "pdf"]
output = ["text"]
@@ -0,0 +1,23 @@
name = "Gemini 3.1 Pro Preview"
family = "gemini-pro"
release_date = "2026-02-19"
last_updated = "2026-02-19"
attachment = true
reasoning = true
temperature = true
tool_call = true
structured_output = true
knowledge = "2025-01"
open_weights = false
[cost]
input = 2.00
output = 12.00
[limit]
context = 1_048_576
output = 65_536
[modalities]
input = ["text", "image", "video", "audio", "pdf"]
output = ["text"]
+24
View File
@@ -0,0 +1,24 @@
name = "GPT-5 Codex"
family = "gpt"
release_date = "2025-09-15"
last_updated = "2025-09-15"
attachment = false
reasoning = true
temperature = false
knowledge = "2024-09-30"
tool_call = true
structured_output = true
open_weights = false
[cost]
input = 1.25
output = 10.00
[limit]
context = 400_000
input = 272_000
output = 128_000
[modalities]
input = ["text", "image"]
output = ["text"]
@@ -1,7 +1,7 @@
name = "GPT-5"
name = "GPT-5.1 Codex Max"
family = "gpt"
release_date = "2025-08-07"
last_updated = "2025-08-07"
release_date = "2025-11-13"
last_updated = "2025-11-13"
attachment = true
reasoning = true
temperature = false
@@ -12,11 +12,11 @@ open_weights = false
[cost]
input = 1.25
output = 10
cache_read = 0.13
output = 10.00
[limit]
context = 400_000
input = 272_000
output = 128_000
[modalities]
@@ -0,0 +1,24 @@
name = "GPT-5.1 Codex"
family = "gpt"
release_date = "2025-11-13"
last_updated = "2025-11-13"
attachment = true
reasoning = true
temperature = false
knowledge = "2024-09-30"
tool_call = true
structured_output = true
open_weights = false
[cost]
input = 1.25
output = 10.00
[limit]
context = 400_000
input = 272_000
output = 128_000
[modalities]
input = ["text", "image"]
output = ["text"]
@@ -10,8 +10,8 @@ tool_call = true
open_weights = false
[cost]
input = 1.50
output = 12.00
input = 1.75
output = 14.00
[limit]
context = 400_000
@@ -0,0 +1,24 @@
name = "GPT-5.2 Codex"
family = "gpt"
release_date = "2025-12-11"
last_updated = "2025-12-11"
attachment = true
reasoning = true
temperature = false
knowledge = "2025-08-31"
tool_call = true
structured_output = true
open_weights = false
[cost]
input = 1.75
output = 14.00
[limit]
context = 400_000
input = 272_000
output = 128_000
[modalities]
input = ["text", "image", "pdf"]
output = ["text"]
@@ -0,0 +1,21 @@
name = "GPT-5.3 Chat Latest"
family = "gpt"
release_date = "2026-03-01"
last_updated = "2026-03-01"
attachment = true
reasoning = true
temperature = true
tool_call = true
open_weights = false
[cost]
input = 1.75
output = 14.00
[limit]
context = 400_000
output = 128_000
[modalities]
input = ["text", "image"]
output = ["text"]
@@ -0,0 +1,24 @@
name = "GPT-5.3 Codex XHigh"
family = "gpt"
release_date = "2026-02-05"
last_updated = "2026-02-05"
attachment = true
reasoning = true
temperature = false
knowledge = "2025-08-31"
tool_call = true
structured_output = true
open_weights = false
[cost]
input = 1.75
output = 14.00
[limit]
context = 400_000
input = 272_000
output = 128_000
[modalities]
input = ["text", "image", "pdf"]
output = ["text"]
@@ -0,0 +1,24 @@
name = "GPT-5.3 Codex"
family = "gpt"
release_date = "2026-02-05"
last_updated = "2026-02-05"
attachment = true
reasoning = true
temperature = false
knowledge = "2025-08-31"
tool_call = true
structured_output = true
open_weights = false
[cost]
input = 1.75
output = 14.00
[limit]
context = 400_000
input = 272_000
output = 128_000
[modalities]
input = ["text", "image", "pdf"]
output = ["text"]
+23
View File
@@ -0,0 +1,23 @@
name = "Kimi K2.5"
family = "kimi"
release_date = "2026-01"
last_updated = "2026-01"
attachment = false
reasoning = true
structured_output = true
temperature = true
tool_call = true
knowledge = "2025-01"
open_weights = true
[cost]
input = 0.60
output = 3.00
[limit]
context = 262_144
output = 32_768
[modalities]
input = ["text", "image", "video"]
output = ["text"]
@@ -1,21 +0,0 @@
name = "Llama 3.1 70B Instruct"
family = "llama"
release_date = "2024-07-23"
last_updated = "2024-07-23"
attachment = false
reasoning = false
temperature = true
tool_call = true
open_weights = true
[cost]
input = 0.40
output = 0.40
[limit]
context = 128_000
output = 4_096
[modalities]
input = ["text"]
output = ["text"]
+1 -1
View File
@@ -11,7 +11,7 @@ open_weights = false
[cost]
input = 20.00
output = 80.00
output = 40.00
[limit]
context = 200_000
+2 -2
View File
@@ -10,8 +10,8 @@ tool_call = true
open_weights = false
[cost]
input = 0.50
output = 1.50
input = 3.00
output = 15.00
[limit]
context = 128_000
+2 -2
View File
@@ -9,8 +9,8 @@ tool_call = true
open_weights = true
[cost]
input = 0.70
output = 2.50
input = 0.60
output = 2.20
[limit]
context = 128_000
@@ -0,0 +1,21 @@
name = "GLM-5"
family = "glm"
release_date = "2026-02-11"
last_updated = "2026-02-11"
attachment = false
reasoning = true
temperature = true
tool_call = true
open_weights = true
[cost]
input = 1.00
output = 3.20
[limit]
context = 204800
output = 131072
[modalities]
input = ["text"]
output = ["text"]
@@ -0,0 +1,24 @@
name = "Coding-GLM-5-Free"
family = "glm"
release_date = "2026-02-11"
last_updated = "2026-02-11"
attachment = false
reasoning = true
temperature = true
tool_call = true
open_weights = false
[interleaved]
field = "reasoning_content"
[cost]
input = 0.0
output = 0.0
[limit]
context = 204800
output = 131072
[modalities]
input = ["text"]
output = ["text"]
+24
View File
@@ -0,0 +1,24 @@
name = "GLM-5"
family = "glm"
release_date = "2026-02-11"
last_updated = "2026-02-11"
attachment = false
reasoning = true
temperature = true
tool_call = true
open_weights = false
[interleaved]
field = "reasoning_content"
[cost]
input = 0.88
output = 2.82
[limit]
context = 204800
output = 131072
[modalities]
input = ["text"]
output = ["text"]
@@ -0,0 +1,21 @@
name = "MiniMax-M2.5"
family = "minimax"
release_date = "2026-02-12"
last_updated = "2026-02-12"
attachment = false
reasoning = true
temperature = true
tool_call = true
open_weights = true
[cost]
input = 0.29
output = 1.15
[limit]
context = 204_800
output = 131_072
[modalities]
input = ["text"]
output = ["text"]
@@ -0,0 +1,23 @@
name = "Qwen3 Coder Next"
family = "qwen"
attachment = false
reasoning = false
tool_call = true
structured_output = false
temperature = true
release_date = "2026-02-04"
last_updated = "2026-02-04"
open_weights = true
[cost]
input = 0.14
output = 0.55
[limit]
context = 262_144
input = 262_144
output = 65_536
[modalities]
input = ["text"]
output = ["text"]
@@ -0,0 +1,22 @@
name = "Qwen 3.5 Plus"
family = "qwen"
release_date = "2026-02-16"
last_updated = "2026-02-16"
attachment = false
reasoning = true
temperature = true
knowledge = "2025-04"
tool_call = true
open_weights = false
[cost]
input = 0.11
output = 0.66
[limit]
context = 1_000_000
output = 65_536
[modalities]
input = ["text", "image", "video"]
output = ["text"]
@@ -0,0 +1,21 @@
name = "MiniMax M2.5"
family = "minimax"
release_date = "2026-02-12"
last_updated = "2026-02-12"
attachment = false
reasoning = true
temperature = true
tool_call = true
open_weights = true
[cost]
input = 0.301
output = 1.205
[limit]
context = 204_800
output = 131_072
[modalities]
input = ["text"]
output = ["text"]
+24
View File
@@ -0,0 +1,24 @@
name = "GLM-5"
family = "glm"
release_date = "2026-02-11"
last_updated = "2026-02-11"
attachment = false
reasoning = true
temperature = true
tool_call = true
open_weights = false
[interleaved]
field = "reasoning_content"
[cost]
input = 0.86
output = 3.15
[limit]
context = 202_752
output = 16_384
[modalities]
input = ["text"]
output = ["text"]
+4 -3
View File
@@ -1,12 +1,13 @@
name = "Moonshot Kimi K2.5"
family = "kimi"
release_date = "2025-01-27"
last_updated = "2025-01-27"
release_date = "2026-01-27"
last_updated = "2026-01-27"
attachment = false
reasoning = true
temperature = true
tool_call = true
open_weights = true
knowledge = "2025-01"
structured_output = false
[interleaved]
@@ -21,5 +22,5 @@ context = 262_144
output = 32_768
[modalities]
input = ["text", "image"]
input = ["text", "image", "video"]
output = ["text"]
@@ -0,0 +1,27 @@
name = "kimi/kimi-k2.5"
family = "kimi"
release_date = "2026-01-27"
last_updated = "2026-01-27"
attachment = false
reasoning = true
structured_output = true
temperature = false
tool_call = true
knowledge = "2025-01"
open_weights = true
[interleaved]
field = "reasoning_content"
[cost]
input = 0.6
output = 3.0
cache_read = 0.1
[limit]
context = 262_144
output = 262_144
[modalities]
input = ["text", "image", "video"]
output = ["text"]
@@ -0,0 +1,24 @@
name = "MiniMax-M2.5"
family = "minimax"
release_date = "2026-02-12"
last_updated = "2026-02-12"
attachment = false
reasoning = true
temperature = true
tool_call = true
open_weights = true
[cost]
input = 0.30
output = 1.20
[interleaved]
field = "reasoning_content"
[limit]
context = 204_800
output = 131_072
[modalities]
input = ["text"]
output = ["text"]
@@ -0,0 +1,24 @@
name = "Qwen3.5 Flash"
family = "qwen"
release_date = "2026-02-23"
last_updated = "2026-02-23"
attachment = true
reasoning = true
structured_output = true
temperature = true
knowledge = "2025-04"
tool_call = true
open_weights = false
[cost]
input = 0.172
output = 1.72
reasoning = 1.72
[limit]
context = 1_000_000
output = 65_536
[modalities]
input = ["text", "image", "video"]
output = ["text"]
@@ -0,0 +1,22 @@
name = "siliconflow/deepseek-r1-0528"
family = "deepseek-thinking"
release_date = "2025-05-28"
last_updated = "2025-11-25"
attachment = false
reasoning = true
temperature = true
tool_call = true
structured_output = true
open_weights = false
[cost]
input = 0.5
output = 2.18
[limit]
context = 163_840
output = 32_768
[modalities]
input = ["text"]
output = ["text"]
@@ -0,0 +1,22 @@
name = "siliconflow/deepseek-v3-0324"
family = "deepseek"
release_date = "2024-12-26"
last_updated = "2025-11-25"
attachment = false
reasoning = false
temperature = true
tool_call = true
structured_output = true
open_weights = false
[cost]
input = 0.25
output = 1.0
[limit]
context = 163_840
output = 163_840
[modalities]
input = ["text"]
output = ["text"]
@@ -0,0 +1,22 @@
name = "siliconflow/deepseek-v3.1-terminus"
family = "deepseek"
release_date = "2025-09-29"
last_updated = "2025-11-25"
attachment = false
reasoning = true
temperature = true
tool_call = true
structured_output = true
open_weights = false
[cost]
input = 0.27
output = 1.0
[limit]
context = 163_840
output = 65_536
[modalities]
input = ["text"]
output = ["text"]
@@ -0,0 +1,22 @@
name = "siliconflow/deepseek-v3.2"
family = "deepseek"
release_date = "2025-12-03"
last_updated = "2025-12-03"
attachment = false
reasoning = true
temperature = true
tool_call = true
structured_output = true
open_weights = false
[cost]
input = 0.27
output = 0.42
[limit]
context = 163_840
output = 65_536
[modalities]
input = ["text"]
output = ["text"]
@@ -0,0 +1,3 @@
<svg width="24" height="24" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg">
<path d="M37.9998 23.021C33.7998 25.2889 29.5698 27.3649 24.8614 28.3069C23.8114 28.5154 22.6474 28.5154 21.5809 28.3714C20.5639 28.2439 20.0554 27.3484 20.4169 26.4064C20.7619 25.5289 21.2209 24.635 21.8119 23.9C23.0899 22.3025 24.5329 20.849 25.8289 19.268C26.6203 18.2991 27.3335 17.2689 27.9618 16.187C28.4208 15.4205 28.2078 14.4935 27.4038 14.111C26.0584 13.4556 24.6154 12.9936 23.1889 12.4986C23.0239 12.4341 22.7779 12.6096 22.4509 12.7221C22.8604 13.0881 23.1559 13.3596 23.5654 13.727C19.3339 14.447 15.3305 15.467 11.4455 16.874C11.4275 16.9535 11.396 17.0165 11.411 17.0495C11.9855 17.927 11.723 18.5975 10.886 19.1405C10.5611 19.3531 10.2732 19.6176 10.034 19.9235C12.593 20.6735 14.873 20.243 17.0539 18.821C16.9234 18.6305 16.7914 18.455 16.6609 18.263C17.4799 18.407 17.9719 18.854 18.0379 19.556C18.0544 19.7165 17.9569 19.8755 17.9074 20.036C17.7919 19.907 17.6449 19.781 17.5474 19.6355C17.4799 19.5395 17.4634 19.4285 17.4154 19.268C14.8235 20.993 12.035 21.425 8.96751 20.531C8.96751 21.137 8.93451 21.6485 8.98401 22.1435C9.01701 22.574 8.83701 22.766 8.44401 22.9895C7.55752 23.5325 6.63803 24.092 5.90003 24.8105C5.01504 25.6879 5.34354 26.7589 6.54053 27.2059C7.90102 27.7159 9.329 27.7309 10.7555 27.5569C12.4445 27.3484 14.1005 27.0769 15.9394 26.8219C13.79 27.8269 11.6735 28.5319 9.4445 28.8169C7.88452 29.0269 6.32753 29.1379 4.78554 28.6909C2.57156 28.0684 1.58607 26.4394 2.16057 24.251C2.70206 22.2065 4.01455 20.5775 5.42454 19.076C10.133 14.078 16.0864 11.5401 22.9744 11.0286C24.5824 10.9176 26.2069 11.1246 27.7143 11.7951C29.8308 12.7536 30.7173 14.78 29.6838 16.826C29.0118 18.1835 28.0758 19.4285 27.1413 20.6585C26.2234 21.872 25.1899 22.9895 24.2224 24.155C23.9434 24.506 23.6809 24.875 23.4679 25.2724C23.0569 26.0224 23.3359 26.5174 24.2059 26.4394C26.0254 26.2624 27.8808 26.1199 29.6358 25.6729C32.2098 25.0174 34.7193 24.092 37.2618 23.2775C37.5243 23.213 37.7703 23.117 37.9998 23.0225V23.021Z" fill="currentColor"/>
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

@@ -0,0 +1,27 @@
name = "GLM-4.7"
family = "glm"
release_date = "2025-12-22"
last_updated = "2025-12-22"
attachment = false
reasoning = true
temperature = true
tool_call = true
knowledge = "2025-04"
open_weights = true
[interleaved]
field = "reasoning_content"
[cost]
input = 0
output = 0
cache_read = 0
cache_write = 0
[limit]
context = 202_752
output = 16_384
[modalities]
input = ["text"]
output = ["text"]
@@ -0,0 +1,26 @@
name = "GLM-5"
family = "glm"
release_date = "2026-02-11"
last_updated = "2026-02-11"
attachment = false
reasoning = true
temperature = true
tool_call = true
open_weights = false
[interleaved]
field = "reasoning_content"
[cost]
input = 0
output = 0
cache_read = 0
cache_write = 0
[limit]
context = 202_752
output = 16_384
[modalities]
input = ["text"]
output = ["text"]
@@ -0,0 +1,27 @@
name = "Kimi K2.5"
family = "kimi"
release_date = "2026-01-27"
last_updated = "2026-01-27"
attachment = true
reasoning = true
temperature = true
tool_call = true
knowledge = "2025-01"
open_weights = true
[interleaved]
field = "reasoning_content"
[cost]
input = 0
output = 0
cache_read = 0
cache_write = 0
[limit]
context = 262_144
output = 32_768
[modalities]
input = ["text", "image"]
output = ["text"]
@@ -0,0 +1,24 @@
name = "Qwen3 Coder Next"
family = "qwen"
release_date = "2026-02-03"
last_updated = "2026-02-03"
attachment = false
reasoning = false
temperature = true
tool_call = true
structured_output = true
open_weights = true
[cost]
input = 0
output = 0
cache_read = 0
cache_write = 0
[limit]
context = 262_144
output = 65_536
[modalities]
input = ["text"]
output = ["text"]
@@ -0,0 +1,24 @@
name = "Qwen3 Coder Plus"
family = "qwen"
release_date = "2025-07-23"
last_updated = "2025-07-23"
attachment = false
reasoning = false
temperature = true
knowledge = "2025-04"
tool_call = true
open_weights = true
[cost]
input = 0
output = 0
cache_read = 0
cache_write = 0
[limit]
context = 1_000_000
output = 65_536
[modalities]
input = ["text"]
output = ["text"]
@@ -0,0 +1,24 @@
name = "Qwen3 Max"
family = "qwen"
release_date = "2026-01-23"
last_updated = "2026-01-23"
attachment = false
reasoning = false
temperature = true
knowledge = "2025-04"
tool_call = true
open_weights = false
[cost]
input = 0
output = 0
cache_read = 0
cache_write = 0
[limit]
context = 262_144
output = 65_536
[modalities]
input = ["text"]
output = ["text"]
@@ -0,0 +1,24 @@
name = "Qwen3.5 Plus"
family = "qwen"
release_date = "2026-02-16"
last_updated = "2026-02-16"
attachment = false
reasoning = true
temperature = true
knowledge = "2025-04"
tool_call = true
open_weights = false
[cost]
input = 0
output = 0
cache_read = 0
cache_write = 0
[limit]
context = 1_000_000
output = 65_536
[modalities]
input = ["text", "image"]
output = ["text"]
@@ -0,0 +1,5 @@
name = "Alibaba Coding Plan (China)"
env = ["ALIBABA_CODING_PLAN_API_KEY"]
npm = "@ai-sdk/openai-compatible"
doc = "https://help.aliyun.com/zh/model-studio/coding-plan"
api = "https://coding.dashscope.aliyuncs.com/v1"
+3
View File
@@ -0,0 +1,3 @@
<svg width="24" height="24" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg">
<path d="M37.9998 23.021C33.7998 25.2889 29.5698 27.3649 24.8614 28.3069C23.8114 28.5154 22.6474 28.5154 21.5809 28.3714C20.5639 28.2439 20.0554 27.3484 20.4169 26.4064C20.7619 25.5289 21.2209 24.635 21.8119 23.9C23.0899 22.3025 24.5329 20.849 25.8289 19.268C26.6203 18.2991 27.3335 17.2689 27.9618 16.187C28.4208 15.4205 28.2078 14.4935 27.4038 14.111C26.0584 13.4556 24.6154 12.9936 23.1889 12.4986C23.0239 12.4341 22.7779 12.6096 22.4509 12.7221C22.8604 13.0881 23.1559 13.3596 23.5654 13.727C19.3339 14.447 15.3305 15.467 11.4455 16.874C11.4275 16.9535 11.396 17.0165 11.411 17.0495C11.9855 17.927 11.723 18.5975 10.886 19.1405C10.5611 19.3531 10.2732 19.6176 10.034 19.9235C12.593 20.6735 14.873 20.243 17.0539 18.821C16.9234 18.6305 16.7914 18.455 16.6609 18.263C17.4799 18.407 17.9719 18.854 18.0379 19.556C18.0544 19.7165 17.9569 19.8755 17.9074 20.036C17.7919 19.907 17.6449 19.781 17.5474 19.6355C17.4799 19.5395 17.4634 19.4285 17.4154 19.268C14.8235 20.993 12.035 21.425 8.96751 20.531C8.96751 21.137 8.93451 21.6485 8.98401 22.1435C9.01701 22.574 8.83701 22.766 8.44401 22.9895C7.55752 23.5325 6.63803 24.092 5.90003 24.8105C5.01504 25.6879 5.34354 26.7589 6.54053 27.2059C7.90102 27.7159 9.329 27.7309 10.7555 27.5569C12.4445 27.3484 14.1005 27.0769 15.9394 26.8219C13.79 27.8269 11.6735 28.5319 9.4445 28.8169C7.88452 29.0269 6.32753 29.1379 4.78554 28.6909C2.57156 28.0684 1.58607 26.4394 2.16057 24.251C2.70206 22.2065 4.01455 20.5775 5.42454 19.076C10.133 14.078 16.0864 11.5401 22.9744 11.0286C24.5824 10.9176 26.2069 11.1246 27.7143 11.7951C29.8308 12.7536 30.7173 14.78 29.6838 16.826C29.0118 18.1835 28.0758 19.4285 27.1413 20.6585C26.2234 21.872 25.1899 22.9895 24.2224 24.155C23.9434 24.506 23.6809 24.875 23.4679 25.2724C23.0569 26.0224 23.3359 26.5174 24.2059 26.4394C26.0254 26.2624 27.8808 26.1199 29.6358 25.6729C32.2098 25.0174 34.7193 24.092 37.2618 23.2775C37.5243 23.213 37.7703 23.117 37.9998 23.0225V23.021Z" fill="currentColor"/>
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

@@ -0,0 +1,26 @@
name = "MiniMax-M2.5"
family = "minimax"
release_date = "2026-02-12"
last_updated = "2026-02-12"
attachment = false
reasoning = true
temperature = true
tool_call = true
open_weights = true
[interleaved]
field = "reasoning_content"
[cost]
input = 0
output = 0
cache_read = 0
cache_write = 0
[limit]
context = 204_800
output = 32_768
[modalities]
input = ["text"]
output = ["text"]
@@ -0,0 +1,27 @@
name = "GLM-4.7"
family = "glm"
release_date = "2025-12-22"
last_updated = "2025-12-22"
attachment = false
reasoning = true
temperature = true
tool_call = true
knowledge = "2025-04"
open_weights = true
[interleaved]
field = "reasoning_content"
[cost]
input = 0
output = 0
cache_read = 0
cache_write = 0
[limit]
context = 202_752
output = 16_384
[modalities]
input = ["text"]
output = ["text"]
@@ -0,0 +1,26 @@
name = "GLM-5"
family = "glm"
release_date = "2026-02-11"
last_updated = "2026-02-11"
attachment = false
reasoning = true
temperature = true
tool_call = true
open_weights = false
[interleaved]
field = "reasoning_content"
[cost]
input = 0
output = 0
cache_read = 0
cache_write = 0
[limit]
context = 202_752
output = 16_384
[modalities]
input = ["text"]
output = ["text"]
@@ -0,0 +1,27 @@
name = "Kimi K2.5"
family = "kimi"
release_date = "2026-01-27"
last_updated = "2026-01-27"
attachment = true
reasoning = true
temperature = true
tool_call = true
knowledge = "2025-01"
open_weights = true
[interleaved]
field = "reasoning_content"
[cost]
input = 0
output = 0
cache_read = 0
cache_write = 0
[limit]
context = 262_144
output = 32_768
[modalities]
input = ["text", "image", "video"]
output = ["text"]
@@ -0,0 +1,24 @@
name = "Qwen3 Coder Next"
family = "qwen"
release_date = "2026-02-03"
last_updated = "2026-02-03"
attachment = false
reasoning = false
temperature = true
tool_call = true
structured_output = true
open_weights = true
[cost]
input = 0
output = 0
cache_read = 0
cache_write = 0
[limit]
context = 262_144
output = 65_536
[modalities]
input = ["text"]
output = ["text"]
@@ -0,0 +1,24 @@
name = "Qwen3 Coder Plus"
family = "qwen"
release_date = "2025-07-23"
last_updated = "2025-07-23"
attachment = false
reasoning = false
temperature = true
knowledge = "2025-04"
tool_call = true
open_weights = true
[cost]
input = 0
output = 0
cache_read = 0
cache_write = 0
[limit]
context = 1_048_576
output = 65_536
[modalities]
input = ["text"]
output = ["text"]
@@ -0,0 +1,24 @@
name = "Qwen3 Max"
family = "qwen"
release_date = "2026-01-23"
last_updated = "2026-01-23"
attachment = false
reasoning = false
temperature = true
knowledge = "2025-04"
tool_call = true
open_weights = false
[cost]
input = 0
output = 0
cache_read = 0
cache_write = 0
[limit]
context = 262_144
output = 65_536
[modalities]
input = ["text"]
output = ["text"]
@@ -0,0 +1,24 @@
name = "Qwen3.5 Plus"
family = "qwen"
release_date = "2026-02-16"
last_updated = "2026-02-16"
attachment = false
reasoning = true
temperature = true
knowledge = "2025-04"
tool_call = true
open_weights = false
[cost]
input = 0
output = 0
cache_read = 0
cache_write = 0
[limit]
context = 1_000_000
output = 65_536
[modalities]
input = ["text", "image", "video"]
output = ["text"]
@@ -0,0 +1,5 @@
name = "Alibaba Coding Plan"
env = ["ALIBABA_CODING_PLAN_API_KEY"]
npm = "@ai-sdk/openai-compatible"
doc = "https://www.alibabacloud.com/help/en/model-studio/coding-plan"
api = "https://coding-intl.dashscope.aliyuncs.com/v1"
@@ -22,7 +22,7 @@ cache_read = 1.00
cache_write = 12.50
[limit]
context = 1_000_000
context = 200_000
output = 128_000
[modalities]
@@ -22,7 +22,7 @@ cache_read = 1.00
cache_write = 12.50
[limit]
context = 1_000_000
context = 200_000
output = 128_000
[modalities]
@@ -22,7 +22,7 @@ cache_read = 1.00
cache_write = 12.50
[limit]
context = 1_000_000
context = 200_000
output = 128_000
[modalities]
@@ -0,0 +1,21 @@
name = "Devstral 2 135B"
family = "mistral"
release_date = "2026-02-17"
last_updated = "2026-02-17"
attachment = false
reasoning = false
temperature = true
tool_call = true
open_weights = false
[cost]
input = 0.40
output = 2.00
[limit]
context = 256_000
output = 8_192
[modalities]
input = ["text"]
output = ["text"]
@@ -22,7 +22,7 @@ cache_read = 1.00
cache_write = 12.50
[limit]
context = 1_000_000
context = 200_000
output = 128_000
[modalities]
+1 -1
View File
@@ -1,4 +1,4 @@
name = "Amazon Bedrock"
env = ["AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY", "AWS_REGION"]
env = ["AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY", "AWS_REGION", "AWS_BEARER_TOKEN_BEDROCK"]
npm = "@ai-sdk/amazon-bedrock"
doc = "https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html"
@@ -0,0 +1,23 @@
name = "GPT-5.3 Codex"
family = "gpt-codex"
release_date = "2026-02-24"
last_updated = "2026-02-24"
attachment = false
reasoning = true
temperature = false
knowledge = "2025-08-31"
tool_call = true
open_weights = false
[cost]
input = 1.75
output = 14.00
cache_read = 0.175
[limit]
context = 400_000
output = 128_000
[modalities]
input = ["text", "image"]
output = ["text"]
@@ -0,0 +1 @@
../../azure/models/gpt-5.4-pro.toml
@@ -0,0 +1 @@
../../azure/models/gpt-5.4.toml
+24
View File
@@ -0,0 +1,24 @@
name = "GPT-5.3 Chat"
family = "gpt-codex"
release_date = "2026-03-03"
last_updated = "2026-03-03"
attachment = true
reasoning = true
temperature = false
knowledge = "2025-08-31"
tool_call = true
structured_output = true
open_weights = false
[cost]
input = 1.75
output = 14.00
cache_read = 0.175
[limit]
context = 128_000
output = 16_384
[modalities]
input = ["text", "image"]
output = ["text"]
+23
View File
@@ -0,0 +1,23 @@
name = "GPT-5.4 Pro"
release_date = "2026-03-05"
last_updated = "2026-03-05"
attachment = true
reasoning = true
temperature = false
knowledge = "2025-08-31"
tool_call = true
structured_output = false
open_weights = false
[cost]
input = 30.00
output = 180.00
[limit]
context = 400_000
input = 272_000
output = 128_000
[modalities]
input = ["text", "image"]
output = ["text"]
+24
View File
@@ -0,0 +1,24 @@
name = "GPT-5.4"
release_date = "2026-03-05"
last_updated = "2026-03-05"
attachment = true
reasoning = true
temperature = false
knowledge = "2025-08-31"
tool_call = true
structured_output = true
open_weights = false
[cost]
input = 2.50
output = 15.00
cache_read = 0.25
[limit]
context = 400_000
input = 272_000
output = 128_000
[modalities]
input = ["text", "image"]
output = ["text"]
@@ -3,9 +3,9 @@ family = "mimo"
release_date = "2025-12-29"
last_updated = "2026-01-27"
attachment = false
reasoning = false
reasoning = true
temperature = true
tool_call = false
tool_call = true
structured_output = false
open_weights = true
@@ -14,8 +14,8 @@ input = 0.09
output = 0.29
[limit]
context = 32_768
output = 8_192
context = 262_144
output = 32_000
[modalities]
input = ["text"]
@@ -0,0 +1,22 @@
name = "Trinity Mini"
family = "trinity-mini"
release_date = "2025-12"
last_updated = "2026-02-25"
attachment = false
reasoning = true
temperature = true
tool_call = true
knowledge = "2024-10"
open_weights = true
[cost]
input = 0.045
output = 0.15
[limit]
context = 131_072
output = 131_072
[modalities]
input = ["text"]
output = ["text"]
@@ -0,0 +1,21 @@
name = "MM Poly 8B"
family = "mm-poly"
release_date = "2025-06"
last_updated = "2026-02-25"
attachment = true
reasoning = false
temperature = true
tool_call = false
open_weights = false
[cost]
input = 0.658
output = 1.11
[limit]
context = 32_768
output = 4_096
[modalities]
input = ["text", "image", "video"]
output = ["text"]
@@ -0,0 +1,21 @@
name = "DeepSeek OCR"
family = "deepseek"
release_date = "2025-10-20"
last_updated = "2026-02-25"
attachment = true
reasoning = false
temperature = true
tool_call = false
open_weights = true
[cost]
input = 0.20
output = 0.70
[limit]
context = 8_192
output = 8_192
[modalities]
input = ["text", "image"]
output = ["text"]
@@ -0,0 +1,21 @@
name = "MiniMax-M2.5 High Throughput"
family = "minimax"
release_date = "2026-02-12"
last_updated = "2026-02-25"
attachment = false
reasoning = true
temperature = true
tool_call = true
open_weights = true
[cost]
input = 0.30
output = 1.20
[limit]
context = 204_800
output = 131_072
[modalities]
input = ["text"]
output = ["text"]
@@ -0,0 +1,22 @@
name = "Ministral 3 14B Reasoning 2512"
family = "ministral"
release_date = "2025-12-01"
last_updated = "2025-12-12"
attachment = true
reasoning = true
temperature = true
tool_call = true
knowledge = "2025-12"
open_weights = true
[cost]
input = 2.50
output = 1.70
[limit]
context = 262_144
output = 262_144
[modalities]
input = ["text", "image"]
output = ["text"]
@@ -0,0 +1,21 @@
name = "Ministral 3 3B Reasoning 2512"
family = "ministral"
release_date = "2025-12"
last_updated = "2026-02-25"
attachment = true
reasoning = true
temperature = true
tool_call = true
open_weights = true
[cost]
input = 1.039
output = 0.54825
[limit]
context = 262_144
output = 262_144
[modalities]
input = ["text", "image"]
output = ["text"]
@@ -0,0 +1,21 @@
name = "GPT OSS 120B High Throughput"
family = "gpt-oss"
release_date = "2025-08-05"
last_updated = "2026-02-25"
attachment = false
reasoning = true
temperature = true
tool_call = true
open_weights = true
[cost]
input = 0.09
output = 0.36
[limit]
context = 131_072
output = 16_384
[modalities]
input = ["text"]
output = ["text"]
@@ -0,0 +1,21 @@
name = "GPT OSS 20B"
family = "gpt-oss"
release_date = "2025-08-05"
last_updated = "2025-12-12"
attachment = false
reasoning = true
temperature = true
tool_call = true
open_weights = true
[cost]
input = 0.045
output = 0.18
[limit]
context = 131_072
output = 16_384
[modalities]
input = ["text"]
output = ["text"]
@@ -0,0 +1,22 @@
name = "Qwen3 Coder 30B A3B Instruct"
family = "qwen"
release_date = "2025-07-31"
last_updated = "2026-02-12"
attachment = false
reasoning = false
temperature = true
tool_call = true
knowledge = "2025-04"
open_weights = true
[cost]
input = 0.11458
output = 0.74812
[limit]
context = 262_144
output = 65_536
[modalities]
input = ["text"]
output = ["text"]
@@ -1,17 +1,17 @@
name = "K EXAONE 236B A23B"
family = "exaone"
name = "Qwen3 30B A3B Instruct 2507"
family = "qwen"
release_date = "2025-07-30"
last_updated = "2026-02-25"
attachment = false
reasoning = true
reasoning = false
temperature = true
tool_call = true
structured_output = true
temperature = true
release_date = "2025-12-31"
last_updated = "2026-01-08"
open_weights = true
[cost]
input = 0
output = 0
input = 0.30
output = 0.50
[limit]
context = 262_144
@@ -1,20 +1,20 @@
name = "EXAONE 4.0.1 32B"
family = "exaone"
name = "Qwen3 30B A3B Thinking 2507"
family = "qwen"
release_date = "2025-07-31"
last_updated = "2026-02-25"
attachment = false
reasoning = true
temperature = true
tool_call = true
structured_output = true
temperature = true
release_date = "2025-07-31"
last_updated = "2025-12-23"
open_weights = true
[cost]
input = 0.6
output = 1
input = 0.36
output = 1.30
[limit]
context = 131_072
context = 262_144
output = 131_072
[modalities]
+5
View File
@@ -0,0 +1,5 @@
name = "Clarifai"
env = ["CLARIFAI_PAT"]
npm = "@ai-sdk/openai-compatible"
api = "https://api.clarifai.com/v2/ext/openai/v1"
doc = "https://docs.clarifai.com/compute/inference/"
@@ -0,0 +1,22 @@
name = "MiniMax-M2.5"
family = "minimax"
release_date = "2026-03-05"
last_updated = "2026-03-05"
attachment = false
reasoning = true
temperature = true
tool_call = true
knowledge = "2026-01"
open_weights = true
[cost]
input = 0.30
output = 1.20
[limit]
context = 196_000
output = 196_000
[modalities]
input = ["text"]
output = ["text"]
@@ -0,0 +1,28 @@
name = "GPT-5.2 Codex"
family = "gpt-codex"
release_date = "2025-12-11"
last_updated = "2025-12-11"
attachment = true
reasoning = true
temperature = false
knowledge = "2025-08-31"
tool_call = true
structured_output = true
open_weights = false
[cost]
input = 1.75
output = 14.00
cache_read = 0.175
[limit]
context = 400_000
input = 272_000
output = 128_000
[modalities]
input = ["text", "image", "pdf"]
output = ["text"]
[provider]
npm = "ai-gateway-provider"
@@ -0,0 +1,28 @@
name = "GPT-5.3 Codex"
family = "gpt-codex"
release_date = "2026-02-05"
last_updated = "2026-02-05"
attachment = true
reasoning = true
temperature = false
knowledge = "2025-08-31"
tool_call = true
structured_output = true
open_weights = false
[cost]
input = 1.75
output = 14.00
cache_read = 0.175
[limit]
context = 400_000
input = 272_000
output = 128_000
[modalities]
input = ["text", "image", "pdf"]
output = ["text"]
[provider]
npm = "ai-gateway-provider"
@@ -0,0 +1,28 @@
name = "GPT-5.4"
family = "gpt"
release_date = "2026-03-05"
last_updated = "2026-03-05"
attachment = true
reasoning = true
temperature = false
knowledge = "2025-08-31"
tool_call = true
structured_output = true
open_weights = false
[cost]
input = 2.5
output = 15.00
cache_read = 0.25
[limit]
context = 1_050_000
input = 922_000
output = 128_000
[modalities]
input = ["text", "image", "pdf"]
output = ["text"]
[provider]
npm = "ai-gateway-provider"
@@ -0,0 +1,22 @@
name = "GLM-4.7-Flash"
family = "glm-flash"
release_date = "2026-01-19"
last_updated = "2026-01-19"
attachment = false
reasoning = true
temperature = true
tool_call = true
knowledge = "2025-04"
open_weights = true
[cost]
input = 0.06
output = 0.40
[limit]
context = 131_072
output = 131_072
[modalities]
input = ["text"]
output = ["text"]
@@ -0,0 +1,25 @@
name = "GLM-4.7-Flash"
family = "glm"
release_date = "2025-08-08"
last_updated = "2025-08-08"
attachment = false
reasoning = true
temperature = true
tool_call = true
knowledge = "2025-04"
open_weights = true
[interleaved]
field = "reasoning_content"
[cost]
input = 0.09
output = 0.53
[limit]
context = 203_000
output = 203_000
[modalities]
input = ["text"]
output = ["text"]
+25
View File
@@ -0,0 +1,25 @@
name = "Kimi K2.5"
family = "kimi-thinking"
release_date = "2026-01-27"
last_updated = "2026-01-27"
knowledge = "2025-01"
attachment = false
reasoning = true
temperature = true
tool_call = true
open_weights = true
[cost]
input = 0.55
output = 2.76
[limit]
context = 256_000
output = 256_000
[modalities]
input = ["text", "image", "video"]
output = ["text"]
[interleaved]
field = "reasoning_content"
@@ -0,0 +1,28 @@
# https://deepinfra.com/MiniMaxAI/MiniMax-M2.5
name = "MiniMax M2.5"
family = "minimax"
release_date = "2026-02-12"
last_updated = "2026-02-12"
attachment = false
reasoning = true
temperature = true
tool_call = true
knowledge = "2025-06"
open_weights = true
[cost]
input = 0.27
output = 0.95
cache_read = 0.03
cache_write = 0.375
[limit]
context = 204_800
output = 131_072
[modalities]
input = ["text"]
output = ["text"]
[interleaved]
field = "reasoning_content"
@@ -1,17 +1,19 @@
name = "Kimi K2 Instruct-0905"
# https://deepinfra.com/moonshotai/Kimi-K2-Instruct-0905
name = "Kimi K2 0905"
family = "kimi"
release_date = "2025-09-05"
last_updated = "2025-09-05"
attachment = false
reasoning = false
temperature = true
knowledge = "2025-09"
tool_call = true
knowledge = "2024-10"
open_weights = true
[cost]
input = 1.0
output = 3.0
input = 0.40
output = 2.00
cache_read = 0.15
[limit]
context = 262_144
@@ -0,0 +1,27 @@
# https://deepinfra.com/zai-org/GLM-4.6
name = "GLM-4.6"
family = "glm"
release_date = "2025-09-30"
last_updated = "2025-09-30"
knowledge = "2025-04"
attachment = false
reasoning = true
temperature = true
tool_call = true
open_weights = true
[interleaved]
field = "reasoning_content"
[cost]
input = 0.43
output = 1.74
cache_read = 0.08
[limit]
context = 204_800
output = 131_072
[modalities]
input = ["text"]
output = ["text"]
@@ -0,0 +1,26 @@
# https://deepinfra.com/zai-org/GLM-4.6V
name = "GLM-4.6V"
family = "glm"
release_date = "2025-09-30"
last_updated = "2025-09-30"
knowledge = "2025-04"
attachment = true
reasoning = true
temperature = true
tool_call = true
open_weights = true
[interleaved]
field = "reasoning_content"
[cost]
input = 0.30
output = 0.90
[limit]
context = 204_800
output = 131_072
[modalities]
input = ["text", "image"]
output = ["text"]

Some files were not shown because too many files have changed in this diff Show More